Parallel Computing Books Available at learnpdc.org
![]() |
![]() |
![]() |
![]() |
| Libby Shoop Macalester College |
Dick Brown St. Olaf College |
Joel Adams Calvin University |
Suzanne Matthews U.S. Military Academy |
| shoop@macalester.edu |
Curricular Guidelines: Parallel Computing needs to be included in courses at different levels
Instructors need
Students benefit from
As you see fit: as little or as much as you want to try
Outside reading: Chapter 0.1 - 0.3 as background.
Highlight parts of Chapter 0 reading in a mini lecture.
During one class:
students complete Chapter 1.0 – 1.3 as an activity. Demo
Assign a homework problem that uses OpenMP.
(Optional) During a second class: explore speedup with an activity.
Chapter 4 for the basics
Chapter 5 for a deeper dive using vector addition
Chapter 6 matrix multiply example
As above, Ch. 0, 1, 4, 5, 6 of Beginners, plus more from Intermediate PDC
Mini-lecture presentations given before activities from book or GitHub repo.
| Wk | HW/SW Topic | Reading Before Class |
In-Class Activity |
|---|---|---|---|
| 1 | Shared Mem OpenMP |
Beginners Ch 0.0 - 0.2, 0.4 Intermediate Ch.1.0-1.1 |
Intermediate Ch 2 program structure Demo
Fork-join, conductor-worker, barrier |
| 2 | Shared Mem OpenMP |
Beginners Ch 1.2 - 1.3, 0.3.1 - 0.3.3 |
Intermediate Ch 2: parallel for loop, race condition, reduction; trapezoidal rule scalability activity |
| 3 | Shared Mem OpenMP |
Intermediate Ch 3.1 |
Intermediate Ch 3.2 (random number generation) |
| 4 | Shared Mem OpenMP |
Intermediate Ch. 2, rest of patternlets | |
| 5 | Distributed Mem MPI |
Intermediate Ch. 4, Program Structure Patterns Message passing Patterns |
|
| 6 | Distributed Mem MPI |
Intermediate Ch. 4, Collective Communication Synchronization, code timing |
|
| 7 | Distributed Mem MPI |
Intermediate, Ch. 6, Monte Carlo and trapezoidal rule examples Additional MPI examples |
|
| 8 | Performance Ahmdal, Gustafson |
Beginners Ch 0.3.4-0.3.5 |
Catch up review, deeper look at scalability |
| 8 | GPU CUDA | Beginners, Ch. 4 CUDA Basics |
|
| 9 | GPU CUDA | Beginners Ch. 5 Matrix Multiply |
|
| 9 | GPU OpenACC |
Intermediate Ch. 7 OpenACC Basics |
|
| 10 | GPU OpenACC |
Intermediate Ch. 8 OpenACC next steps Matrix Multiply |
For questions or comments, please contact Libby Shoop at shoop@macalester.edu
The materials for learnpdc.org were developed under NSF grants DUE-1822480 / 1822486 / 1855761. Final development of PDC for Beginners and Intermediate PDC was sponsored by the United States Military Academy (USMA) and was accomplished under Cooperative Agreement Number W911NF-23-2-0044.