- Gustafson's law
Gustafson's Law (also known as Gustafson-Barsis' law) is a law in
computer engineeringwhich states that any sufficiently large problem can be efficiently parallelized. Gustafson's Law is closely related to Amdahl's law, which gives a limit to the degree to which a program can be sped up due to parallelization. It was first described by John L. Gustafsonin 1988.
where "P" is the number of processors, "S" is the
speedup, and the non-parallelizable part of the process.
Gustafson's law addresses the shortcomings of
Amdahl's law, which cannot scale to match availability of computing power as the machine size increases. It removes the fixed problem size or fixed computationload on the parallel processors: instead, he proposed a fixed time concept which leads to scaled speed up.
Amdahl's law is based on fixed workload or fixed problem size. It implies that the sequential part of a program does not change with respect to machine size (i.e, the number of processors). However the parallel part is evenly distributed by n processors.
The impact of the law was the shift in research to develop parallelizing compilers and reduction in the serial part of the solution to boost the performance of parallel systems.
Implementation of Gustafson's Law
Let "n" be a measure of the problem size.
The execution of the program on a parallel computer is decomposed into:
where "a" is the sequential fraction and "b" is the parallel fraction, ignoring overhead for now.
On a sequential computer, the relative time would be , where "p" is the number of processors in the
Speedup is therefore:
: (parallel, relative to sequential )
where is the serial function.
Assuming the serial function diminishes with problem size "n", then
speedupapproaches "p" as "n" approaches infinity, as desired.
Thus Gustafson's law seems to rescue
parallel processingfrom Amdahl's law.
Gustafson's law argues that even using massively parallel computer systems does not influence the serial part and regards this part as a constant one. In comparison to that, the hypothesis of
Amdahl's lawresults from the idea that the influence of the serial part grows with the number of processes.
A Driving Metaphor
Suppose a car is traveling between two cities 60 miles apart, and has already spent one hour traveling half the distance at 30 mph.
Amdahl's Law approximately suggests:
Gustafson's Law approximately states:
Some problems do not have fundamentally larger datasets. As example, processing one data point per world citizen gets larger at only a few percent per year.
Nonlinear algorithms may make it hard to take advantage of parallelism "exposed" by Gustafson's law. Snyder points out an O(N3) algorithm means that double the concurrency gives only about a 9% increase in problem size. Thus, while it may be possible to occupy vast concurrency, doing so may bring little advantage over the original, less concurrent solution.
* [http://www.scl.ameslab.gov/Publications/Gus/AmdahlsLaw/Amdahls.html Reevaluating Amdahl's Law] - the paper in which John Gustafson first described his Law. Originally published in
Communications of the ACM31(5), 1988. pp. 532-533
* * [http://www.scl.ameslab.gov/Publications/Gus/AmdahlsLaw/Amdahls.html Reevaluating Amdahl's Law]
* [http://www.cis.temple.edu/~shi/docs/amdahl/amdahl.html Reevaluating Amdahl's Law and Gustafson's Law] - a paper in which Yuan Shi proves that both laws are equivalent: Gustafson just used a different definition of s (the serial part)
* [http://www.cs.washington.edu/homes/snyder/TypeArchitectures.pdf] -- Lawrence Snyder, "Type Architectures, Shared Memory, and The Corrolary of Modest Potential"
Wikimedia Foundation. 2010.