Single Core Systems are History

! Warning: this post hasn't been updated in over three years and so may contain out of date information.

Recently, I’ve been reading a fair bit recently about parallelism in software. It has become a real hot topic in many quarters. Microsoft have been making lots of noises about their alpha release of the Task Parallel library for example and Ted Neward recently waxed lyrically on a recent .NET Rocks! show about multi-threading in Java. He recommended that every Java developer should read “Java Concurrency in Practice” (ISBN 978-0321349606). So why is concurrency becoming such an important topic? The answer is simple: single code systems are rapidly becoming a thing of the past, and the number of cores is predicted to rise exponentially over the next few years.

I stumbled across an article on the Dr Dobbs site today on this subject. As an aside, I was amazed that Dr Dobbs was still going; it was a must-read magazine twenty years ago, but I’d assumed it had long since vanished. The article does read like a Sun advert, but is interesting none the less. The UltraSPARC T2 Plus processor that Sun is shipping in its servers today has eight cores, each of which is capable of concurrently executing eight threads. And two such processors can exist on a single server. That means that we have servers capable of running 128 concurrent threads available now in 2008.

Anyone who thinks that concurrency is an optional aspect of programming, really needs to wake up and smell the coffee. As I’m changing jobs soon and will be switching to a Java development role, Java Concurrency in Practice” is already on my essential book list. Perhaps it should be on yours too?