Scalability Metrics
Speedup, efficiency, and scalability quantify how well a parallel program uses added processors, making performance claims comparable and honest.
Defining the terms
Speedup S(N) is the serial run time divided by the parallel run time on N processors; ideal speedup is N. Parallel efficiency is S(N) divided by N, expressed as a fraction or percent; ideal is 1.0. Efficiency below one measures the overhead, communication, synchronization, imbalance, that keeps a code from perfect scaling.
Strong and weak
These metrics apply differently to the two scaling regimes. Strong-scaling efficiency uses a fixed problem and falls as overheads grow relative to shrinking work. Weak-scaling efficiency grows the problem with the machine and stays high if communication does not outpace computation. A complete report states which was measured.
What good numbers look like
- Near-linear speedup up to a knee, then a plateau (strong scaling)
- Flat or gently rising run time as size and processors grow together (weak scaling)
- Efficiency reported honestly, including where it degrades
Common ways numbers mislead
Speedup measured against a slow, unoptimized serial baseline inflates the result; a fair baseline is the best serial code. Reporting only the favorable regime, or only small processor counts, hides where scaling breaks. Superlinear speedup sometimes appears when the problem, split up, suddenly fits in cache, a real effect but one to explain rather than tout.
Why honesty matters
Scalability numbers guide where to run and how much hardware to request. Overstated scaling wastes allocations and effort. Credible reporting names the baseline, the problem size, the precision, and the processor range, and shows the curve, including its limits, not just its best point.