📐 Amdahl's Law (Parallel Speedup)
Compute theoretical speedup of program execution on multi-core systems using Amdahl's Law.
⚡ Fortran 90 Engine
Double Precision (IEEE 754)
✓ ISO / ASME Validated
Cfd
📊 Solver Telemetry
● ACTIVE
📥 Parallel Fraction & Core Count
📖 Mathematical Formulation (Amdahl, 1967):
$$S(N) = \frac{1}{(1 - f) + \frac{f}{N}}$$
$$E(N) = \frac{S(N)}{N} \times 100\%$$
$$S_{\text{max}} = \lim_{N \to \infty} S(N) = \frac{1}{1 - f}$$
12.55×
Parallel Speedup ($S$)
39.2%
Parallel Efficiency ($E$)
20.00×
Asymptotic Limit ($S_{\text{max}}$)
5.00%
Serial Fraction ($1-f$)
💡
HPC Scaling Diagnostic
On 32 cores with a parallel fraction of 95.0%, the solver runs 12.55 times faster than on 1 core. The remaining 5.00% serial portion strictly limits theoretical speedup to a maximum of 20.0×, regardless of how many additional cores are added.
📈 Strong Scaling Speedup Curve: $S(N)$ vs Cores
$S_{\text{max}} = 20.0\times$ Asymptote🔍 View Raw GNU Fortran Double-Precision Solver Output
MODE=1 MODE_NAME=Single Point F= 0.950000 N= 32 SPEEDUP= 12.5490 EFFICIENCY= 0.3922 S_MAX= 20.0000 SERIAL_FRAC= 0.050000 PAR_TIME= 0.029687 TOTAL_TIME= 0.079688
📘 Calculation Methodology: Amdahl's Law & Parallel Speedup
Mathematical Model & Theory
Amdahl's law defines the maximum theoretical speedup $S(N)$ of a fixed-size computational problem when scaled across $N$ parallel processors, governed by the strictly sequential fraction $(1-p)$:
$$S(N) = \frac{1}{(1 - p) + \frac{p}{N}}, \quad \lim_{N \to \infty} S(N) = \frac{1}{1 - p}$$
$$E(N) = \frac{S(N)}{N} = \frac{1}{N(1 - p) + p}$$
Assumptions
- Fixed total problem size (strong scaling).
- Zero inter-core network latency and memory bus contention.
Academic References
- Amdahl, G. M. (1967): Validity of the single processor approach, AFIPS.
- Pacheco, P.: An Introduction to Parallel Programming, Morgan Kaufmann.
Worked Engineering Example
Problem Statement:
A CFD solver has 95% parallelizable code ($p = 0.95$). Calculate speedup on 32 cores.
Step-by-step Solution:
1. $S(32) = 1 / (0.05 + 0.95/32) = 1 / 0.07969 \approx 12.55$.
2. Efficiency $E(32) = 12.55 / 32 = 39.2\%$.
Final Result:
Theoretical speedup is 12.55x (efficiency 39.2%).
A CFD solver has 95% parallelizable code ($p = 0.95$). Calculate speedup on 32 cores.
Step-by-step Solution:
1. $S(32) = 1 / (0.05 + 0.95/32) = 1 / 0.07969 \approx 12.55$.
2. Efficiency $E(32) = 12.55 / 32 = 39.2\%$.
Final Result:
Theoretical speedup is 12.55x (efficiency 39.2%).