Friday, September 9, 2011

Amdahl's Law in the Multicore Era

Almost all commodity processors are going multi-core, not only desktop processors, but also embedded ones. And no one is doubtful about the trend. Going multi-core implies a important challenges; how can we exploit parallelism to fully utilize the power of multiple cores? The classic Amdahl's raw (An instructor who taught me a grad architecture class said it is the only equation in Computer Architectures that I should memorize) says your speedup will be eventually limited by the amount of portion you can parallelize. Free lunches that have been enjoyed with ever increasing CPU clocks does not exist anymore.

This paper gives a thought-provoking question about the future of multicore design. While it is obvious that N cores will never give speedup of N, how should we design CPUs? A few powerful cores? Or many cores, each of which is kind of wimpy? Or somewhere between them, either statically or dynamically?

I am somewhat skeptical of "many-core" processors, especially in cloud computing. Considering the fact modern data centers heavily are relying on commodity hardware (for economy of scale), the adoption of many-core processors in cloud computing will depend on how popular will many-core processors be in the desktop market.

Since 2008, I have used a quad-core (logically eight CPU cores with HyperThreading) machine for my personal use. Now I got two brand new computers, but surprisingly, the one is dual-core and the other is quad-core. What? Over the last three years, nothing has been improved? This is simply because more CPU cores give little benefits for current desktop workloads. There is no enough demand to drive the market.

Of course, for the high-end server market, there has been improvement. One can get a 32-core system (four octa-core CPUs in it) today very easily, but it comes with a very ridiculous price. This kind of processors is basically for enterprise or legacy (dumb) datacenters.

So, if many-core processors are not viable for commodity market, what will processors look like? My bet is for asymmetric multi-core processors. And (less) surprisingly, they are already here! About 99% desktops, if not 100%, already have asymmetric processors, in the name of APU or GPU. Someone can argue that GPU and CPU is not on the same die, but who cares? It just works.

No comments:

Post a Comment