2007-02-10

Manycore CPUs and parallelism

I don't remember where I first saw the link (I know the second place was AMK's journal), but some UC Berkeley professors have put out a tech report about parallelism along with a web site. Essentially they think that CPUs will go from multicore (2-32 core per die) to manycore (think 1000s). They also state that current programming models just plain suck for good parallelism in the face of 1000s of cores.

They seemed to like the idea of transactional memory, though (I did a blog post asking people about current parallel programming references in case you want to see some other ways to do things). They did realize that doing transactional memory in software is slow but doing it all in hardware is complicated. They seemed to advocate coming up with a mix of software and hardware to pull this off.

They also supported having multiple parallelism paradigms to let programmers get things done. They pointed out that some things don't require bare-metal optimizations (ala per-CPU delegation of processing like in OpenMP), but that some problems don't care about details. They correctly pointed out that most languages or libraries seem to support only a single paradigm and that was a bad thing.


Overall the tech report was an interesting read. There are some typos, but it is just a tech report. It is 51 pages, but it does not go into any great technical detail so it goes fast and is easy to pick up.