Sunday, April 04, 2010

What would you do with 12 cores?

It's not simply AMD releasing 8 and 12 core Opterons, Intel has also released 8 core processors for the server. The crucial point to realise is that desktops will soon follow. Already 6 cores by Intel are available albeit at a hefty premium. AMD's own processors are expected to follow next month, if the rumors are to be believed.

Yet with the release of processors with more cores comes the inevitable question: Do you need so many cores? It's true that most software now barely utilise 4 cores let alone 6. The situation is expected to change with time, of course, but there's no perceived need for more than 4 cores right now on the desktop.

Physics - Be it games physics or a scientific simulation, parallelising physics calculations would be one way of making use of more cores. Most games don't make use of more than 2 cores but as quad core goes mainstream so will support for these number crunchers.

Audio/video transcoding - Another obvious place to make use of multiple cores would be in audio/video. Video streams, in particular, are highly parallelisable and efforts are underway to take advantage of the available resources.

Secure hash - md6, the successor to md5, is designed with multicore in mind.

Compression - WinRAR makes good use of available cores, so that's another way of making use of more computing resources to speed things up.

Multithreaded virus scanning - AVG scales pretty well to multiple cores. Other antivirus vendors will eventually follow in their footsteps.

Networking - P2P networks typically involve hundreds of connections. While network speed doesn't increase with faster CPUs, you still need processing power to maintain all those connections and fully utilise the network. Multicore CPUs make light work of this.

Artificial Intelligence - Game AI essentially runs on CPU rather than GPU silicon. More cores means better AI can be made to challenge the gamer. Various AI algorithms from emergent systems to neural networks look like they could really benefit from having multiple cores.

Virtualization - The buzzword that's been on just about everybody's lips these days. Having more cores means more VMs can be up and running at the same time with less resource contention. That's a definite plus for hardware consolidation.

Encryption - Somewhat related to hashing above, security is a major focus in today's software. Intel's higher end chips even support hardware accelerated AES.

Computer boot up - Sounds like a mundane task? Mundane, yes. But it's also the very task that every computer must do before you get to use you multicore machine. A parallelised boot sequence can reduce downtime a bit. Just a bit. Interdependencies between various services mean that there's only so much you can run in parallel. Your hard disk's read speed will also not scale up to the CPUs speed anyway. Still, today's computers can boot up super fast. Just look at a recent Ubuntu release.

Operating system - The OS on your computer will definitely benefit from multicore. While individual software not optimised for multiple cores may not be able to take advantage of your hardware, the overall system responsiveness should still improve. Compute intensive tasks can hog an entire core while the rest runs off another thereby maintaining acceptable performance. The more cores the merrier, I say.

There's just so many things that can benefit from having multiple cores. Not all software will be able to benefit. Even so, the consumer's overall computing experience improves tremendously from having multiple cores.