Massive parallelism in a single CPU

Posted April 12, 2006

I've always loved multi-processor systems, and most of my desktop machines have have dual CPUs for a while now. In the immortal words of Be's founder, "One processor per person is not enough." The trend today is to extend that down to the individual CPU too: one processor core per chip is not enough. Still, while there's a big difference between one CPU and "more than one", why should you stop at just two?

The guys at Rapport are thinking the same way, and are designing chips with hundreds or thousands of processor cores on the same piece of silicon, along with extra logic to reconfigure how they work. Granted, the individual cores aren't nearly as complicated as a Pentium or PowerPC processor, but for many applications that doesn't matter a whole lot.

Why would you want to do this? Power consumption is one big consideration: the faster you try to shove electrons around, the more juice it takes. So if you can do the same work with 10 transistors running at 1MHz instead of 1 at 10MHz, you can come out ahead. The other consideration is ease of design: to double the clock rate of a complicated processor is a massive undertaking, but if all you have to do is slap on another bunch of cores you've already designed...

In any case, I like the idea, and I like the sort of programming challenges that writing efficient code for such a chip would provoke. People have had to think about these issues a lot in the context of supercomputing, so it's about time that we can get a Connection Machine on our desks.