Of Course The Transformers are Multicore with SMT technology
Moore's Law, Amdahl's Law, Murphy's Law. It's getting to be a bit much.
Some want to make faster chips, while others think that slower chips in greater quantity are the ticket. The arguments over power consumption vs. performance vs. cost can become very squirrly. I just want to know whether the Decepticons and Autobots are multicore -- and if they are multicore, what operating systems do they run and what programming languages were used in the process of getting them to do what they do so fast.
After all, the Decepticons and Autobots are probably a bigger factor in where the parallel question is leading than any of those Laws. I know that sounds a little on the far side of complexity, but just think about it. It will make complete sense in the morning. However, I can say this that our insatiable appetite for immersion will always require more processing power than we currently have, no matter how much processing power that is. Massive parallelism is a necessary inevitability and the Decepticons and Autobots are the proof in the pudding.
If I had to be the one to program the Decepticons and Autobots, I would undoubtedly use C++. In particular, a C++ implementation that is based on the new ISO standard for C++. For now the new standard is referred to as C++0x. It will probably be considered "official" later this year or in 2010, with the final ISO blessing somewhere late 2010 or early 2011. I would use a new C++ implementation because the new C++ standard has direct support for concurrency by way of threading facilities, atomic classes/operations, and other goodies. Also, I would venture to guess that to program the Decepticons and Autobots I would have to talk directly to the hardware at some point and C++ is a good language when you have both high-level and low-level programming (hardware) on the menu. The other reason that I would pick C++ is that it supports multiparadigm programming. Meaning that I'm not stuck with any one programming metaphor. I can use object-oriented, generic, structured, and logic programming techniques along with Spaghetti code (where required). Because of the template library approach that C++ takes, it can also support programming paradigms that haven't been thought of yet. This is good because many of the new paradigms necessary to handle massive parallelism are still on the drawing board. C++ is designed to be extensible which makes it the prime candidate for getting Optimus Prime to do what we need him to do.
C++ and it's STL are also the basis for the STAPL, short for the "Standard Template Adaptive Parallel Library". STAPL (when it gets here) is going to support powerful parallelism and distributed programming models. We could look at the Transformers as autonomous agents in a distributed cluster operating in parallel. In which case STAPL would be just what the doctor ordered. We will have more to say about STAPL but at the moment the new C++ concurrency support and tuple container support has Tracey and I in a tizzy, albeit a good tizzy. GCC is adding support for the new C++ standard, we were just dabbling in GCC 4.3 and there were bits and pieces of the new standard implemented (for experimental use mainly).
Although our focus for the moment is on Level 1 parallelism and deconstructing the complexity of the problem model in Level 1, at some point we do get to the nitty gritty and at that point C++ is always in the mix (beware there are others). If in fact the Decepticons and Autobots are multicore (and we think that has to be the case) then we vote for C++ as the most realistic choice for the heavy lifting.
Parallel Pattern 5: Stencil
All memory addresses used for reads are expressed as offsets
Distributing Work Across Cores Using .NET
A roll-your-own ThreadPool implementationLooking For The Lost Packets: Part 2
Looking For The Lost Packets: Part 1
- Intel Parallel Studio; Download the free eval today!
- Parallelism Breakthrough Video Series; Watch and learn more about Intel® Parallel Studio
- 2009 Intel Software Webinar Series; View On-Demand webinars
- Coding for Multi-core Processes; Intel® Compiler Pro eBook
- Performance Through Parallelism; Intel® Tuning for Vista eBook
- Intel® Software Network; Connect with developers and Intel engineers
-
February 18, 2010
Lock Contention, Using Intel Parallel Studio to Improve Performance
Speaker: Vasanth Tovinkere, Software Engineer, Intel Corporation (Bio)Vasanth Tovinkere is a software engineer in the Developer Products Division (DPD) at Intel. His current role involves defining novel approaches to understanding and visualizing parallel performance and consulting with strategic customers to help them prepare and deliver code for the multicore world. Vasanth has been involved in the development of automatic semantic event detectors for digital sports technologies in Intel Labs. He also has been awarded three patents and has two patents pending.
Abstract:
Discover how easy it is to use the power of Microsoft Visual Studio and Intel Parallel Studio to find performance issues due to lock contention in threaded applications. This ensures that shipped applications can take better advantage of multicore processors. In this webcast, we provide live demonstrations that show how to identify lock contentions issues with Visual Studio and Intel Parallel Studio, an add-in to Visual Studio that helps developers create fast, reliable code on multicore processors.t.



