Amdahl's Law (Speedup from Parallelisation)

Also known as Amdahl law · parallel speedup · speedup formula · serial fraction limit · diminishing returns from more cores · maximum speedup

S=1(1p)+pNS = \frac{1}{(1 - p) + \dfrac{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

Split a program into the part that can run on many processors and the part that cannot, and the second part decides everything. If 90% of the work parallelises, ten processors get you 1/(0.1+0.09)=5.261/(0.1 + 0.09) = 5.26 times faster, not ten. The serial tenth was never going to speed up, and it now dominates: it is 53% of the new run time even though it was only 10% of the old one.

The ceiling is the part worth memorising. As NN goes to infinity the p/Np/N term vanishes and the speedup approaches 1/(1p)1/(1-p), full stop. Code that is 95% parallel can never exceed 20x however many cores you buy, and 99% parallel tops out at 100x. Gene Amdahl made this argument in 1967 as an attack on parallel computing, and for fixed-size problems it has never been refuted.

The classic mistake is measuring pp from a profiler on one core and expecting the prediction to hold. Real parallel runs add communication, synchronisation and cache contention that were not in the serial profile at all, so the measured speedup usually falls short of Amdahl even though Amdahl is already the optimistic bound. The honest use of the law is backwards: run on 2, 4 and 8 cores, solve for pp each time, and watch whether it drops. If it does, your overhead is growing with the machine and more cores will not save you.

Amdahl's Law (Speedup from Parallelisation)
S=1(1p)+pNS = \frac{1}{(1 - p) + \dfrac{p}{N}}
Where
  • SS= Speedup
  • pp= Parallel fraction
  • NN= Processors