A seismic-wave finite-difference code is run on a cluster of many-core nodes.
PHYSICS · Multi-part · Fermi University Physics · Computational Physics · High-performance and data-driven computational physics · High-performance and data-driven computational physics
Scientific Computing for Physicists, Ch Many processors: speed-up, decomposition and the cost of communication
Problem
A seismic-wave finite-difference code is run on a cluster of many-core nodes.
((a)) Profiling shows a fraction f=0.90 of the one-process run time parallelises perfectly; the rest is serial set-up and output. Using Amdahl's law, compute the speed-up S(16) on 16 processes and the ceiling S(∞).
((b)) The same code is run instead in weak-scaling mode, holding the work per process fixed, with f′=0.98 of the run time on 32 processes spent in the part that shares out. Compute Gustafson's scaled speed-up S(32) on 32 processes.
((c)) The domain is decomposed into slabs, exchanging one halo row with each of two neighbours every step; one halo message carries 32768B. A ping-pong test gives latency αlat=2.0μs and bandwidth βnet=1.0×1010Bs−1. Find the time spent in the two halo messages each step, and express it as a percentage of a slab update measured at 4.20ms.
((d)) The rows i=0,…,N−1 of a triangular pair loop (i<j) are split into P=8 equal contiguous ranges, one per process. The first of P equal ranges holds a fraction (2P−1)/P2 of all the i<j pairs. Find that fraction for P=8 and the resulting bound on the speed-up from this decomposition.