Recognizing that manual threading is error-prone, Quinn dedicates sections to OpenMP. Here, the "Theory" is the concept of loop-level parallelism and data dependence. The "Practice" is using compiler directives:
#pragma omp parallel for reduction(+:sum)
for (int i = 0; i < N; i++) sum += array[i];
Quinn explains how the reduction clause solves a theoretical race condition without explicit locks. Parallel Computing Theory And Practice Michael J Quinn Pdf
Quinn defines the goals of parallelization through strict metrics: Quinn explains how the reduction clause solves a
Before one writes a single line of parallel code, Quinn insists on classifying the hardware. The book exhaustively covers: Recognizing that manual threading is error-prone
Quinn categorizes the communication topologies essential for distributed computing:
For clusters, MPI is the lingua franca. Quinn excels here by explaining SPMD (Single Program, Multiple Data) models. He contrasts blocking sends (MPI_Send) vs. non-blocking sends (MPI_Isend), tying those functions back to the theory of latency hiding. Classic algorithms covered include:
Quinn grounds the text in a rigorous classification of hardware, moving beyond the von Neumann model. The text utilizes Flynn’s Taxonomy as the primary sorting mechanism, focusing heavily on the two practical categories: