Channels ▼

Cameron and Tracey Hughes

Dr. Dobb's Bloggers

Of Course The Transformers are Multicore with SMT technology

July 01, 2009

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.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.