Search This Blog

Wednesday, June 27, 2007

Amdahl's Law

Bigger is not better, faster is not quicker. This is the theme of this post.
The Law of diminishing returns is not exactly a new phenomenon, it was originally noticed in parallel computers by IBM engineer Gene Amdahl, one of creators of the IBM System 360 Architecture. The original describes the problem in parallel computing terms however this simplified version pretty much describes the problem in terms of any modern computer system:

"Each component of a computer system contributes delay to the system If you make a single component of the system infinitely fast...
...system throughput will still exhibit the combined delays of the other components." [3]

As the clock speeds goes upwards the actual performance of the CPU does not scale exactly with the clock speed. A 2GHz CPU is unlikely to be twice the speed of a 1GHz CPU, indeed on everyday tasks people seem to have some difficulty telling the difference between these speeds.

The reason for the lack of scaling is the fact that memory performance has not scaled with the CPU so the CPU is sitting doing nothing for much of it's time (HP estimate this at 70% for server CPUs). Additionally the latency of memory has barely improved at all so any program which requires the CPU to access memory a lot will be effected badly by memory latency and the CPU will not reach anything near it's true potential. The CPU memory cache can alleviate this sort of problem to a degree but it's effectiveness depends very much on the type of cache and software algorithm used.

Many of the techniques used within x86 CPUs may only boost performance by a small amount but they are used because of the need for AMD and Intel to outdo one another. As the clock speed increases ever higher the scaling problem increases further meaning that the additional effort has less and less effect on overall performance. Recent SPEC marks for two Dell workstations show that a greater than 50% increase in CPU speed and the addition of hyper-threading results in only a 26% increase in SPEC marks [2]. Yet when the Itanium 2 CPU got an 11% clock speed boost and double the cache the SPEC mark increased by around 50%

Of course there are other factors which effect the performance of CPUs such as the cache size and design, the memory interface, compiler & settings, the language it's programmed in and the programmer who wrote it. Changing the language can in fact be shown to have a much greater effect than changing the CPU [4]. Changing the programmer can also have a very large effect [5].

This is why computing as you know today is not sustainable. Technology vs Hype. Unfortunately we all know who wins this game...

No comments:

Post a Comment