clock menu more-arrow no yes

Filed under:

Circuit Breaker

Why would you want a 1,000 core processor?

New, 27 comments

Are you familiar with the highly influential piece for programmers by Herb Sutter called "The Free Lunch Is Over"? He wrote it in 2004, just when CPU clock speeds were at a zenith. Back in those days, software developers could count on Moore's Law double the speed of their software every couple years. They could write something, wait a little while, and all of a sudden it was blazing fast. But Herb Sutter correctly predicted the end of this performance gain. The technical definition of Moore's Law continued — transistor counts kept doubling — but it has become more and more difficult to translate those transistors into actually faster apps.

Instead, much of the past decade of computing has been about stuffing those extra transistors into multi-core processors and GPUs. See, GPUs are fast because they're massively parallel (the GeForce GTX 1080 has 2560 "cores" running at a measly 1600–1700MHz), and programmers create software that can easily be broken up into little chunks and processed all at once (like games, or science stuff).

It has become more and more difficult to translate more transistors into faster apps.

CPUs haven't been so lucky, however. Much of what we do on a computer (like almost all web browsing) is still single-threaded — which is why a four core computer isn't ever four times as fast as a single core variant. That's kind of the fault of physics, kind of the fault of programmers who haven't optimized their software for multi-core, and kind of the fault of the fact that some tasks are just difficult to break up into simultaneously processed chunks.

But multi-core is the future all the same. It's just too hard to make CPUs much faster through the traditional means of cranking the clock speed. And we'll have to rethink a lot about computers to get there. Which brings us to today's topic: this insane 1,000 CPU core KiloCore project from UC Davis.

The architecture of this chip is actually kind of weird, and is probably a good illustration of why multi-core requires rethinking almost everything about how we build computers. Each core is almost its own separate island, and they talk to each over a sort of network. So that would be really hard to program for. Thankfully, this is an idea a lot of people are already thinking about — the KiloCore architecture reminds me of the architecture in Adapteva's Parallella 64-core processor.

The biggest win is insane power efficiency — the UC Davis teams says KiloCore is about 100 times more efficient than a laptop processor, and it can be powered by a single AA battery. Unfortunately, you’re not going to run Crysis on this, but maybe you can model some of that scientific data you have laying around.

So, to answer my own question: why would you want a 1,000 core processor? Well, the answer is you probably don't. We all want a 100GHz Core i7, deep down in our hearts. But, sadly, it's physics that wants a 1,000 core processor, and it's up to programmers of the future to figure out how to make software that thrives in that environment.