| Week | Date | Topic | Files |
| 1 | 1/25 | Introduction; why parallel computing? | Notes |
| 1/27 | Single processor architecture and memory | Notes, Slides | |
| 2 | 2/1 | Matrix multiply; tiling; serial tuning | Slides |
| 2/3 | Introduction to parallel machines and models | Slides | |
| 3 | 2/8 | Parallel machines and models; shared memory programming | Slides |
| 2/10 | Monte Carlo case study; OpenMP | Slides, Pthreads code, OpenMP code, RNG link | |
| 4 | 2/15 | Distributed memory; intro to MPI | Slides |
| 2/17 | MPI programming | Slides | |
| 5 | 2/22 | Locality and parallelism in simulation | Slides |
| 2/24 | Locality and parallelism in simulation II | Slides | |
| 6 | 3/1 | Locality and parallelism in simulation III | Slides |
| 3/3 | Dense linear algebra I | Slides | |
| 7 | 3/8 | Dense linear algebra II | Slides |
| 3/10 | Sparse linear algebra I | Slides | |
| 8 | 3/15 | Sparse linear algebra II | Slides |
| 3/17 | Sparse direct solvers | Slides | |
| 9 | 3/22 | Spring break | |
| 3/24 | Spring break | ||
| 10 | 3/29 | Scripting and steering | Slides, Monte Carlo example, Poisson code, Notes from setup |
| 3/31 | Unified Parallel C | Slides, UPC demo code | |
| 11 | 4/5 | Graph partitioning | Slides |
| 4/7 | Multigrid | Slides | |
| 12 | 4/12 | Tree codes | Slides |
| 4/14 | Load balancing | Slides | |
| 13 | 4/19 | Bone modeling | Slides |
| 4/21 | FFTs (guest lecture: Charlie Van Loan) | Slides | |
| 14 | 4/26 | Impact of floating point | Slides |
| 4/28 | GPU programming | Slides, vec add, reduction, Makefile | |
| 15 | 5/3 | Tools, trends, concluding thoughts | Slides |
| 5/5 | Short project presentations |