Amdahl's Law
August 01, 2020
Let’s say that you want to speed up 75% of your system’s execution time by three times. What is the overall speedup of the whole system? There’s a formula to solve this problem. It’s called Amdahl’s law and can be formulated as follows.
$$ S{\scriptsize max} = \frac{1}{(1-p) + \frac{p}{s}} $$
Where
- $S{\scriptsize max}$ is the maximum speedup of the system
- $p$ is part of the system that is improved
- $s$ is the speedup of $p$
If you speed up 75% if your system’s execution time by three times, the overall speedup of the whole system will be $$ S{\scriptsize max} = \frac{1}{(1-0.75) + \frac{0.75}{3}} = 2 $$
Amdahl’s law has few important implications:
- As $s$ approaches infinity, $\frac{p}{s}$ approaches zero. This means that no matter how far you optimize a system, the overall speedup is always limited by the part of the system that doesn’t benefit from the improvement ($\frac{1}{1-p}$).
- You should make the common case fast.