Weblog

Thoughts on multi-core processors, dual-core, quad-core and benchmarking

Clock IconDecember 10th, 2009

The release of the latest iMac line has also spawned a lot of discussions about the necessity of multi-core processors namely quad-core systems. Synthetic benchmarks show the improvements in processor technology but more often than not this does not translate into real world advantages. At least that is what most comments sum it up to. But multi-core especially quad-core systems make sense not just for video and 3D-applications. There is good reason to opt for quad-core instead of dual-core systems.

Many applications are not designed to thread their tasks enough to really saturate the resources that modern multi-core systems offer. So software developers are encouraged to make use of technologies like Grand Central which takes a lot of work out of the multi-core software design process.

There are two arguments that justify buying multi-core especially quad-core systems today. Why you ask? Because benchmarking never shows reality, even real world application benchmarks only measure the performance of a single application on a multi-core system. But this is not how most peoples systems get used. We are not only running a word processor and do nothing else. We use a lot of applications at the same time, be it iTunes running with some encoding or playback in the background, be it your favorite browser with a dozen of tabs each with quite some Flash content and Javascript applications each taking CPU cycles in the background. Then there is Skype, a development LAMP-stack running in the background, Time Machine doing a backup and so on. So there are quite a few applications which hopefully do not take up all of your system resources but all of these running concurrently will make use of a multi-core system.

The second argument, we are at a point in time where multi-core systems have become a standard. So it makes much more sense for developers to take their time to re-engineer their software to make use of this extra power. The advantage is not always that things go faster but also that applications become more responsive while working on tasks in the background. This change will accelerate rapidly now that multi-core support in development tools and operating systems is broadly available.