Skip to content
GK LibraryA home for curious minds
English

The Formula That Sets the Limits of Parallelism: Amdahl’s Law

It is easy to expect that doubling or quadrupling processors and cores will make a program finish that much faster. Yet when you actually run it, the speed you feel often rises far less than expected. The insight that the parts you cannot split into parallel work hold back the overall speed is known as Amdahl’s Law.

Put simply, Amdahl’s Law says that when you improve or parallelize only part of a task, the overall speedup is capped by the serial portion you could not touch. Computer scientist Gene Amdahl laid out this argument in his paper “Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities,” presented at the 1967 AFIPS Spring Joint Computer Conference.

In this article, we will look in turn at what speedup means under Amdahl’s Law, how the serial fraction sets the ceiling, everyday analogies such as cooking and assembly lines alongside the reality of multicore chips, and how the law differs from Gustafson’s Law and how to use it.


The Limits of Parallelism According to Amdahl’s Law

What Speedup and the Serial Portion Mean

A bright server room aisle lined with softly glowing server racks

Amdahl’s Law is originally a general principle about how much overall performance rises when you improve one part of a system, and today it is used most often to predict the theoretical speedup of parallel computing. The key is not to scale the whole job at once, but to separate the part that can be split into parallel work from the part that must be done in order.

If p is the fraction of total execution time that can be parallelized and N is the number of processors (or cores), the theoretical speedup is 1 divided by ((1 − p) + p/N). Written with the serial fraction s instead, the speedup is 1 divided by (s + (1 − s)/N). As N grows, the parallel portion matters less and less, but the serial portion s stays exactly where it is. Even with infinitely many processors, the speedup can never exceed 1/s.

  • Speedup: execution time before the improvement divided by execution time after it.
  • Serial Fraction: the share of time that cannot be split up and must be processed in order.
  • Parallel Fraction: the share of time that can be divided among several processors and run at once.

Why Adding Cores Feels Like So Little

A close-up of a multicore CPU and motherboard on a bright electronics workbench

The formula alone can feel abstract, so it helps to picture the ceilings people often cite. If only half of a task can be parallelized, the overall speedup tops out at two times no matter how many cores you add. Even if 95 percent can be parallelized, the theoretical ceiling is twenty times, because the remaining 5 percent of serial work holds back the whole.

(1) Diminishing Returns Arrive Quickly
With the same fraction of serial work, the gain from going from 2 cores to 4 and then 8 keeps shrinking. Once the parallel portion has already become short, the serial portion turns into the bottleneck.

(2) Communication and Synchronization Are Close to Serial
When you actually split work across cores, time is spent gathering results, taking locks, and keeping memory consistent. These costs lie outside the formula’s assumption of “perfect parallelism,” so the speedup you feel tends to fall even below the theoretical value.

(3) A Single-Lane Bottleneck Decides Everything
Even short serial code such as reading files, initialization, or a final summation can cut the ceiling sharply if its share is not small. That is why, when designing for multicore CPUs and GPU acceleration, engineers first ask “where does serial work remain?” before asking “what should we parallelize?”


Everyday Analogies: Cooking and Assembly Lines

A bright kitchen where several people prep vegetables at once while a single oven runs in the back

Amdahl’s Law shows up with the same structure outside computers. Imagine preparing dinner for ten guests. Chopping and stir-frying vegetables get faster with more helpers, but the time something spends baking in the oven does not shrink no matter how many people are there. If the oven is the serial portion, the total dinner prep time stays tied to it however many hands you add.

A factory assembly line is similar. Even if many stations fit parts together at the same time, when final inspection or packing runs in a single line, that line’s throughput sets the overall speed. In meetings, too, research can be divided up, but the one round of agreement that produces a decision is hard to carry out all at once.

Points to Notice in Daily Life
  • Bottleneck: the slowest serial stage governs the entire flow.
  • Parallel Work: the parts that can proceed independently and simultaneously.
  • Coordination: the cost of gathering results and putting things in order also eats into the speed you feel.

Reading It Alongside Gustafson’s Law

A bright lab where simulations run across several monitors, conveying work on a larger problem

Amdahl’s Law shows the ceiling when you add processors while keeping the problem size fixed. Gustafson’s Law, formulated by John Gustafson around 1988, takes a different view: as processors increase, you also grow the problem itself and do bigger work in the same amount of time. Finishing a fixed assignment faster and running a more detailed simulation within the same deadline are different questions.

(1) Amdahl Is Sharp for Fixed-Size Problems
When the goal is “faster” with the same data and the same resolution, reducing the serial fraction is what matters. Changing the algorithm, cutting I/O, and removing unnecessary synchronization all belong here.

(2) Gustafson Helps When You Scale Up
For problems where you can add grid points or samples, such as weather and scientific computing, the amount of work digested in parallel grows along with the core count, so the practical gain can become large.

(3) Don’t Pit Them Against Each Other
Rather than one of them being the wrong formula, they are different scenarios about what to hold fixed and what to grow. When building a product, first decide whether the goal is cutting latency or expanding throughput and scale, then use the lens that fits.

Rather than raising expectations from core-count advertising, it is important to first measure where serial work remains in your own task. The success of parallelization depends less on how many cores you bought than on how much of the indivisible time you managed to cut.


Amdahl’s Law is the principle that even if you improve only the parts that can be parallelized, the overall speedup is capped by the share of the serial portion. Finding and shrinking the serial bottleneck reaches the performance ceiling more directly than adding cores.

Measuring the indivisible time before counting processors—that is the first step toward using Amdahl’s Law wisely in practice.