Parallel programming is still the future

December 3rd, 2007

From Write Me a Small Program at freeshells.ch:

Don’t let me catch you saying anything like `The multi-core future’. Multi-core is not in the future. How many cores do you have in your current computer? How many in the computers being sold _right now_? How many CPUs? If you ever again say `future’ and `multi-core’ in the same paragraph, and I catch you.

Muli-core processors are becoming more popular every day, and that trend won’t end soon. Steam’s survey shows more than 1 in 3 users mave more than one core (this survey covers gamers, who tend to have more powerful computers than “average users”, so real-world usage rates are probably much lower). When I checked a couple months ago, it was about 1 in 4. Computers in the future will have more and more cores, and developers need to be aware of this. But as a developer, do you need to be actively thinking about it?

I say no.

And it’s not because of adoption rates. A user’s future is a developer’s now. Developers need to design their software for hardware that won’t be used for a year or two. But even if every user had multiple cores, most developers wouldn’t need to worry about it.

The reason is because most software doesn’t need multiple cores, and would not benefit from being multi-threaded. Other than game developers, most programmers don’t do anything that’s CPU-intensive. Most desktop- and web-apps run fine in a single process.

But applications are getting more complex, and eventually even “simple” programs will nned multiple threads. Does that mean developers will suddenly flock to Haskell? Again, no. Language designers are well aware of the situation. Sun and Microsoft are constantly working on improving the Java and .NET frameworks. And by the time the average programmer needs it, both will have plenty of support for easy threading.

If you want to stay ahead of the curve, then yes, you should learn all about parallel programming. The same goes if you’re making games or anything that requires a lot of CPU power. But chances are, it won’t help with what you’re working on now, so you don’t have to worry about it.

Leave a Reply

Name

Website

Comment