This blog was written by Stefanus Du Toit at RapidMind. He writes about the difference between SMP and multi-core. He concludes that multi-core is not a choice, but a given. Is he right? What do you think?
"That brings me to the fundamentally important difference between SMP and multi-core. SMP is a choice, that some applications chose to (and still choose to!) take advantage of. Multi-core is a given, that all applications must react to in order to continue to scale up performance."
His bio: Stefanus DuToit is a co-founder and chief architect at RapidMind. He has led the development and
evolution of the RapidMind platform since 2003. Stefanus has extensive
experience in the areas of graphics, GPGPU, systems programming, and
compilers. Stefanus holds a Bachelors of Mathematics degree in Computer
He is absolutely right. Multicore is the most efficient way to scale performance above 1-2GHz once all the usual architectural techniques have been implemented (pipelining, caching, multi-threading etc.), so this is a given if software is to scale with performance. In fact software really need to be written for multicore to benefit from hardware multi-threading as well.