Gustafson’s Law Scaled Speedup Calculator for Parallel HPC

Gustafson's Law Scaled Speedup Calculator

Estimate the scaled parallel speedup of a program with Gustafson's Law, S(N) = N - (1 - P)(N - 1) = (1 - P) + P times N, where P is the parallel fraction of the scaled workload and N is the processor count. Because the problem grows with the machine, speedup rises almost linearly with no fixed ceiling. Compare it side by side with fixed-size Amdahl to watch the two diverge.

🚀Choose a Mode

🎯Real Scaled Workload Presets

📝Scaling Inputs

Share of the scaled workload that runs in parallel. Serial part is s = 100 - P percent.

Cores, threads, or nodes running the scaled problem in parallel.

Solve mode finds the processor count N needed to reach this speedup at fixed P.

Measured wall time on N processors. Used to estimate the equivalent serial time.

Amdahl assumes a fixed problem, so its speedup caps at 1 / (1 - P).

Controls rounding on every result card.

Gustafson Scaled Speedup 0x S(N) = N - (1 - P)(N - 1)
Parallel Efficiency 0% S(N) / N = P + (1 - P)/N
Equivalent Amdahl Speedup 0x fixed size, for comparison
Extra Speedup vs Amdahl 0x Gustafson gain over Amdahl

🔢Formula Snapshot

SN-(1-P)(N-1)
S(1-P) + P×N
EP + (1-P)/N
s1 - P serial

📊Gustafson Speedup by Parallel Fraction and N

Parallel PN = 2N = 4N = 8N = 16N = 64N = 256
50%1.50x2.50x4.50x8.50x32.50x128.50x
75%1.75x3.25x6.25x12.25x48.25x192.25x
90%1.90x3.70x7.30x14.50x57.70x230.50x
95%1.95x3.85x7.65x15.25x60.85x243.25x
99%1.99x3.97x7.93x15.85x63.37x253.45x
99.9%2.00x4.00x7.99x15.99x63.94x255.75x

🗃Gustafson vs Amdahl Divergence Grid

Parallel PN ProcsGustafson SAmdahl SAmdahl CapExtra Gain
90%1614.50x6.40x10.00x8.10x
90%256230.50x9.66x10.00x220.84x
95%1615.25x9.14x20.00x6.11x
95%256243.25x18.62x20.00x224.63x
99%6463.37x39.26x100.00x24.11x
99%256253.45x72.11x100.00x181.34x
99.9%256255.75x203.98x1000.00x51.77x
99.9%10241022.98x506.19x1000.00x516.79x

Parallel Efficiency Table

Parallel PN = 4N = 16N = 64N = 256
50%62.50%53.13%50.78%50.20%
75%81.25%76.56%75.39%75.10%
90%92.50%90.63%90.16%90.04%
95%96.25%95.31%95.08%95.02%
99%99.25%99.06%99.02%99.00%
99.9%99.93%99.91%99.90%99.90%

📏Serial Fraction and Percent Reference

Parallel PSerial s = 1 - PAs FractionAmdahl Ceiling 1/(1-P)
50%50%0.502x
75%25%0.254x
90%10%0.1010x
95%5%0.0520x
99%1%0.01100x
99.9%0.1%0.0011000x

Formula Breakdown

Scaled speedup S(N)Gustafson's Law is S(N) = N - (1 - P)(N - 1). With P = 0.95 and N = 16, S = 16 - 0.05 × 15 = 16 - 0.75 = 15.25x.
Equivalent formThe same law rewrites as S(N) = (1 - P) + P × N = s + P × N. So 0.05 + 0.95 × 16 = 0.05 + 15.20 = 15.25x, matching above.
Serial fraction sThe non-parallel part is s = 1 - P. At P = 95%, s = 0.05. Unlike Amdahl this serial slice does not scale with the problem, so it stays a fixed time cost.
Parallel efficiency EEfficiency is E = S(N) / N = P + (1 - P)/N. Here 0.95 + 0.05/16 = 0.9531, or 95.31%. As N grows, E approaches P from above.
Amdahl comparisonFixed-size Amdahl gives S = 1 / (s + P/N) = 1 / (0.05 + 0.95/16) = 9.14x, with a hard ceiling of 1 / (1 - P) = 20x no matter how many processors you add.
Why they divergeGustafson assumes bigger machines solve proportionally bigger problems, so speedup climbs nearly linearly with N and never saturates. Amdahl holds the problem fixed, so it stalls near its ceiling.
Solve for NTo hit a target scaled speedup S at fixed P, invert the law: N = (S - (1 - P)) / P. For S = 50 at P = 0.95, N = (50 - 0.05) / 0.95 = 52.58, so round up to 53 processors.

💡HPC Scaling Tips

Grow the problem, not just the machine: Gustafson only holds when the workload scales with N. If you keep a fixed 10-million-cell mesh but jump from 16 to 256 cores, expect Amdahl behavior near its 1 / (1 - P) ceiling, not the 230x that Gustafson predicts. Scale the mesh, time step count, or particle count up roughly in proportion to the core count to keep efficiency above 90%.
Shrink the serial fraction first: Moving P from 95% to 99% cuts the serial slice s from 0.05 to 0.01, a 5x reduction. At N = 256 that lifts scaled speedup from 243.25x to 253.45x and, more importantly, raises the Amdahl ceiling from 20x to 100x. Profile and parallelize the largest serial hotspots before spending budget on more nodes.

Think about how faster machines, double the cores, for example; will speed up your simulations. The classic solution is Amdahl’s Law, which says there is a brick wall defined by fraction of your program that can’t be run in parallel. This is valid reasoning if your program is fixed size. But in today’s world of large-scale computation, the size of the problem expands as the compute power does.

Gustafson’s Law flips this notion on its head: what happens if you increase the size of the problem as well? Then there is no ceiling on speedup which scales almost directly with machine. This website computes that for you. Play around and see how much more efficient you’ll be if you let the problem size grow to match compute resources at hand.

Why Gustafson’s Law Is Better for Big Computers

That’s a fairly simple equation, but one with wide consequences for systems design. You can think about it this way: scaled speedup equals (number of processors), (penalty for serial fraction of code x rest-of-cores). You can also say it this way: (serial part) + ((processor-count) x (parallel-fraction)). Both equations gets you to the same place, just with a slightly different understanding of what might be going wrong.

On 16 processors, you have 95% of your scaled workload running in parallel; so the serial slice accounts for five percent. From the speedup calculator, we find speedup of approximately fifteen point two five times, not the expected twenty times. The difference there is the price of code that cannot run in parallel no matter how many core you throw at it.

In that case, our efficiency behaves in an interesting way compared to the traditional scaling laws. Since the parallel work grows along with the machine, the efficiency metric converges towards the parallel fraction from above for increasing processors. As long as the serial part is sufficiently small, hardware use will remain high even on very large clusters. The tool calculates this efficiency and provides it to you automatically.

This allows you to get a clear signal whether you struggle with overhead or not, did your parallelization effort pay off? Does the number go down substantially below the parallel fraction? Then probably the distribution of work over nodes are wrong.

This is unlike Amdahl’s Law, which says supercomputers will hit a hard limit on speedup; instead, Gustafson’s Law explains why they don’t hit diminishing returns and can simply keep getting bigger and faster. In Amdahl’s world, there is a hard upper bound on speedup, determined purely by the amount of serial work in the task. Gustafson’s world assumes an ever-increasing problem size. That removes the limit entirely.

The calculator has a switch for displaying these results side-by-side. The discrepancy becomes obvious. When you have very little parallel work, the difference isn’t big. At high parallel fractions, the difference is staggering: you might get only ten times speedup with Amdahl but over two hundred times with Gustafson on the same hardware configuration.

It’s why we don’t see weather models and fluid dynamics simulations stall when ported to bigger computers. When using the presets, you get an instant idea about what to expect for typical types of work. Database queries may only hit 80 percent parallelism, whereas weather simulations often hit nearly ninety-eight. Why does this matter? These are realistic representations of your code’s architecture instead of theoretical perfection. Over-estimating the parallel fraction leads to overly optimistic estimates of speedup. Under-estimating it risks turning down hardware that could benefit you.

The tool can also be used to solve for processor count. Need a certain amount of speedup by X date? The tool reverses the equation and tells you how many cores you should of provision.

But more than math, this shows the power of how you look at things. Serial isn’t something you can eliminate from your code. But do you want it to feel like a tiny cost for huge potential? Or is it a wall stopping progress? As you scale the problem, that little bit of serial cost becomes negligible compared to the overall time. This is a real example of an otherwise-abstract idea. Instead of guessing at capacity, you have numbers you can trust to plan confidently. And you see that parallel computing is a must and not just an option if you want any real speedup.

Gustafson’s Law Scaled Speedup Calculator for Parallel HPC