| Week | Topic | Reading | |
| Jan | 4 | Introduction to parallel computing and parallel hardware | Chapter 1, 2.1, 2.2, 2.3.1-2.3.3, 2.4, 2.5 |
| Jan | 11 | Introduction to MPI, collective communications | 3.1-3.4 |
| Jan | 18 | Caching, performance issues | Lecture notes |
| Jan | 25 | Communication cost, scalability. Parallel program design, tasks, critical path | Lecture notes, 2.6 |
| Feb | 1 | Nonblocking communications, understanding communications | Lecture notes |
| Feb | 8 | Introduction to parallel program analysis | Lecture notes |
| Feb | 15 | Midterm recess | |
| Feb | 22 | GPU programming | Youtube: OpenACC 1 OpenACC 2, lecture notes |
| Feb | 29 | OpenMP | |
| March | 7 | Data decomposition techniques | |
| March | 14 | Advanced MPI | |
| March | 21 | Parallel algorithms: matrix multiplication, communicators and topologies, parallel |
|
| March | 28 | Parallel algorithms: the traveling salesman problem, tree search | |
| April | 4 | Review | |