Amdahl's Law
Encyclopedia : A : AM : AMD : Amdahl's Law
Amdahl's law, named after computer architect Gene Amdahl, is used to find the maximum expected improvement to an overall system when only part of the system is improved. It is often used in parallel computing to predict the theoretical maximum speedup using multiple processors.
Amdahl's law can be interpreted more technically, but in simplest terms it means that it is the algorithm that decides the speedup not the number of processors. You eventually reach a place where you can not parallelise the algorithm any more.
Amdahl's law is a demonstration of the law of diminishing returns: while one could speed up part of a computer a hundred-fold or more, if the improvement only affects 12% of the overall task, the best the speed-up could possibly be is [\frac = 1.136] times faster.
More technically, the law is concerned with the speed-up achievable from an improvement to a computation that affects a proportion P of that computation where the improvement has a speedup of S. (For example, if an improvement can speed up 30% of the computation, P will be 0.3; if the improvement makes the portion affected twice as fast, S will be 2). Amdahl's law states that the overall speedup of applying the improvement will be
- [\frac}].
Here's another example. We are given a task which is split up into four parts: P1 = .11 or 11%, P2 = .18 or 18%, P3 = .23 or 23%, P4 = .48 or 48%, which add up to 100%. Then we say P1 is not sped up, so S1 = 1 or 100%, P2 is sped up 5x, so S2 = 5 or 500%, P3 is sped up 20x, so S3 = 20 or 2000%, and P4 is sped up 1.6x, so S4 = 1.6 or 160%. By using the formula [\frac + \frac + \frac + \frac], we find the running time is [ + \frac + \frac + \frac} = .4575] or a little less than 1/2 the original running time which we know is 1. Therefore the overall speed boost is [\frac = 2.186] or a little more than double the original speed using the formula [\frac + \frac + \frac + \frac}]. Notice how the 20x and 5x speedup don't have much effect on the overall speed boost and running time when over half of the task is only sped up 1x, (i.e. not sped up), or 1.6x.
Parallelisation
In the special case of parallelisation, Amdahl's law states that if F is the fraction of a calculation that is sequential (i.e. cannot benefit from parallelisation), and (1 − F) is the fraction that can be parallelised, then the maximum speedup that can be achieved by using N processors is
- [\frac].
As an example, if F is only 10%, the problem can be sped up by only a maximum of a factor of 10, no matter how large the value of N used. For this reason, parallel computing is only useful for either small numbers of processors, or problems with very low values of F: so-called embarrassingly parallel problems. A great part of the craft of parallel programming consists of attempting to reduce F to the smallest possible value.
Amdahl's Rule Of Thumb
Amdahl's Rule Of Thumb is that 1 byte of memory and 1 byte per second of I/O are required for each instruction per second supported by a computer.
References
- Gene Amdahl, "Validity dfgdfgof the Single Processor Approach to Achieving Large-Scale Computing Capabilities", AFIPS Conference Proceedings, (30), pp. 483-485, 1967.
See also
External links
From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.
