(Originally recorded 2019-05-07)
In this lecture we take a detailed look at parallelizing a simple algorithm: numerical quadrature for computing the value of \(\pi\). We apply the Mattson et al patterns approach to parallelizing the algorithm and examine correctness as well as performance issues.
An unexpected error arises (or can arise) from concurrent accesses to shared variables: race condition. We discuss the critical section problem and a couple of approaches for solving it.
Scalabiity is a fundamental concept in high-performance computing. We introduce scalability via Amdahl’s law and Gustaffson’s law (strong and weak scaling, respectively).