Many Cores, Concurrency and CEP

Tim Bray has been thinking hard about concurrency lately. He predicts that more and more machines will be built with large numbers of relatively low-speed CPUs, and that programming these machines is going to be one of the big challenges of the next 10-15 years.

Over the last two years he's had an 8-core Sun machine set up with a parallel logfile processing benchmark, the Wide Finder. (Numerous attempts have been run and logged — the C++ and OCaml entrants showing impressive performance — and both the Wide Finder and Concur.next series are worth reading to get a sense of how these problems are being addressed.

I happen to agree with Mr Bray's predictions, though I'm not as sure that the machines in question will look like 8 or 16 or 32 core Sun servers. Intel has already announced a 64-core graphics processor, and there are sprightly young companies like Tilera producing single chips with 100+ cores. My guess is that making it easy, or even reasonable, to exploit these architectures will be even bigger problem than we currently know.

As I've written before, one of the advantages of a platform like the Aleri Engine is that it's already tuned to make good use of multi-core hardware via a carefully designed and relatively lockless threaded dataflow architecture. I really look forward to benchmarking our system on a massively multi-core Linux machine sometime in 2010.