# Amdahl's law (1D FDTD) **Amdahl's law** describes how the serial portion of a workload limits parallel speedup. If a fraction $f$ of the original runtime can be parallelized across $p$ threads, the ideal speedup is: $$ S(p)=\frac{1}{(1-f)+f/p} $$ Even with arbitrarily many threads, the remaining serial fraction limits the result to $1/(1-f)$. For example, a workload that is 90% parallelizable has an ideal maximum speedup of ten. In FDTD OpenMP, the field loops are distributed among threads, while source callbacks and advancement of the time counter execute in a [[fdtd-openmp-single-thread-execution|single-thread block]]. That work remains part of every timed simulation run. Simulation construction and coefficient preparation are outside the benchmark's timed interval and should not be counted as its serial fraction. The formula assumes a fixed workload and ignores additional costs introduced by parallel execution. This kernel also pays for barriers and competes for shared memory resources. Amdahl's law therefore provides a useful baseline for understanding [[fdtd-openmp-speedup|speedup]], while actual measurements must account for synchronization and memory behavior too.