Gustafson's Law (Scaled Speedup)

Also known as Gustafson law · Gustafson-Barsis law · scaled speedup · weak scaling · scaled parallel speedup

S=(1p)+pNS = (1 - p) + p\,N

Enter your known values, leave one input blank, and solves for the missing one. Try different units for next level excitement!

Learning zone

Amdahl assumes the job stays the same size while the machine grows. John Gustafson pointed out in 1988 that nobody actually works that way. Give a scientist a machine ten times bigger and they run a finer mesh, not the same mesh ten times faster. Under that assumption the speedup is S=(1p)+pNS = (1-p) + pN, which is linear in the processor count and has no ceiling at all: 95% parallel on 21 processors gives exactly 20x, and on 1000 processors it gives 950x.

The two laws are not in conflict, and this is where people get confused. They measure pp at different moments. Amdahl's pp is the parallel fraction of the ORIGINAL serial run; Gustafson's is the parallel fraction of the run time on the LARGE machine, after the problem has been scaled up. Feed one law the other's number and you will get a confidently wrong answer. The engineering names for the two regimes are strong scaling and weak scaling, and a benchmark that does not say which one it measured is not telling you anything.

What follows from this is less obvious than the algebra. Gustafson's law says the value of a big machine depends on whether your problem has a knob you can turn. Rendering, climate models and training runs all do. A build system, a database migration or a nightly report usually does not, and for those Amdahl is the law that applies and the extra cores sit idle.

Gustafson's Law (Scaled Speedup)
S=(1p)+pNS = (1 - p) + p\,N
Where
  • SS= Scaled speedup
  • pp= Parallel fraction
  • NN= Processors