More Speed or More Cores?

This is a common question for everyone about to buy new computer hardware.  From a regular Joe to a multi national corporation, everyone has to think about it.  I would like to give my take on this topic from both point of views and also on why this topic is more relevant than ever.

Nowadays we have very fast processors clocked most commonly at 2.2-2.4 GHz range but can even go to 3.46 GHz (i7 extreme).  With turbo boost you might even reach  3.73GHz.  The math is simple here. The more faster your CPU clock runs, the more instructions it can run and hence your video is converted much faster.  Same is the case with your mp3 conversion or any other operation one is trying to do.   But that generates more heat and consumes more power which is very bad for computers in general and laptops in specific.   If this is happening in a data center, the cooling costs increase by even large amount (As the relation between temperature increase and energy needed to cool it is not linear).

The advent of the multi-core processors, solves just that issue.  That is one can process data more faster without increasing the clock speed.  However a dual core 1.5GHz is not equal to a single core 3GHz.  Only of the operations are done in parallel one can achieve better performance using multi core processor. By having dual core some sets of operations can be done faster. i.e. If they are very independent tasks and the data fits in the L1 cache and do not need to load L2 and L3 cache from memory very frequently.  This will happen only if the applications and the operating system are designed with that in mind.  ex: An audio encoding application might have two threads, one reading the data in format 1 from a CD and the second thread is converting in memory data form format 1 to format 2.

Not all applications are designed to suit multi-core as doing that is more complicated and hence is costly.  With apple's Grand Central Dispatch (GCD) some of that responsibility is being shifted from the application to the OS.  That is a welcome change.  Applications that make use of GCD perform better better.  I hope other platforms do something like that soon.

Today this more speed vs more cores discussion is even more relevant due to the advent of smartphones and mobile devices. The iPhones, iPads  and the numerous androids out there are doing a lot more processing that mobile phones 3 years ago.  If they have to perform much better they need more CPU speed. But of that is increased too much, the battery life will go down and the device gets too hot.  Recently devices like iPad 2 and Motorola XOOM started having dual cores.  It is a welcome change.  I am not sure how many applications currently make use of the dual cores but I can see that one day 'hopefully' soon everyone will make applications with that in mind.

So by now it must be clear that all we need is more cores and just we have to make sure that the OS and the applications are made to use them.  When someone is building their own data center they would have already taken care of it.  A normal consumer just has to pick the OS that has built in support for that.
This is yet another way to Go Green!

So what will we have future? Maybe in the next 5 years or so we will have a multi-processor system (not just a multi-core) and the OS (ex:- Haiku) would be able to handle more than one processor very easily.


Please leave a line if this helps!