" The geniuses at Intel decided to add more processors and gave birth to the Dual Core and Quad Core Processors seen today..."
Gordon Moore - the man who proposed Moore's law
Trivia: Did you know ?
The first Intel chip brought out in 1971 had a processor speed of 740KHz, while today's processors easily touch 3 GHz - an increase of 4000 times in 30 years!
This is being counteracted by building smaller transistors which will generate lesser heat. But how much smaller can it get? The latest 45-nm Intel chips deal with transistors around 200 atoms in width (A silicon atom has a diameter of .2 nanometres). At these lengths, quantum effects creep in and make it very hard to construct predictable systems. This means that we cannot make the processors any faster without overheating them unless we find an effective way to cool them down.
Intel Penryn 45nm chip
But that did not stop the geniuses at Intel/AMD from coming up with new ways to extend Moore’s Law. They decided to add more processors and gave birth to the Dual Core and Quad Core processors we see today. But does this really make your computer faster? Of course, you might think that more processors mean more computing power. Indeed, it means more potential computing power. How much of this is used?
Let us take an example. Say you have 2 processors which can do 2 “jobs” per second. You have 4 jobs. Of course, you can give 2 jobs to each processor and finish your work twice as fast (assuming the jobs are independent). Now, what if you have only 1 job? Does the second processor help? It could, if we can split the job into smaller steps. Let us assume each job consists of 4 “steps” A, B, C and D as shown in the diagram (also called a Directed Acyclic Graph for those of you who remember CS1102 J). But you need to do A first, and with the answer you get from A, you can do B and C and when both are done, you need to do D. How will you distribute this among the 2 processors?
Directed Acyclic Graph showing splitting of a job
Typical Grid farm
We can ask processor 1 (lets call it P1) to do A (and P2 remains idle). Then we do B and C simultaneously. But wait! P2 does not know the answer to A. So, we send the information over from P1 to P2. But remember this takes time. Then, when P1 is done with B, it has to wait for P2 (because of the time wasted in transferring the answer). When P2 is done, it sends the information back to P1 (which again takes time) and P1 does D using the results of B and C.
Algorithms to split jobs are crucial in Grid Computing.
The job was definitely done faster; But definitely not twice as fast. And both processes remained idle for significant times, so their efficiency was not all that great. Unfortunately, most “jobs” in real life are heavily interdependent and cost of transferring resources might be significant. Now imagine how complex this would get if you had 8 processors and how much processing power would be wasted! So, in this case, more is NOT always better as everyone would make you believe. Algorithms have been developed to solve this problem. In fact, developing algorithms to split jobs between processors is currently an active area of research, especially in Grid computing where a large number of processors are separated by the internet and the cost of transferring resources is very significant. The algorithms cannot be so time consuming that you take more time to decide where to run something than actually running it!
Trivia: Did you know
In a basic Grid computing system, every computer can access the resources of every other computer belonging to the network.
I hope this helped you understand why your Core 2 Duos with the same GHz number are not anywhere near twice as fast as your Pentium 4s.
Anyways once again the day is saved, thanks to some good marketing and determination and Moore’s Law continues to hold. But how long will it last? We have to wait and see!