| Lecture | Slides |
| Lecture 1 – Intro to HPC | lec1-intro |
| Lecture 2 – Analysis of Parallel Algorithms | lec2-parallel-analysis |
| Lecture 3 – Analysis of Multithreaded Algorithms | lec3-mtalg |
| Lecture 4 – More parallelism, Caching and cache-efficient algorithms | lec4-cache-pt1 |
| Lecture 5 – Cache-oblivious algorithms | lec5-cache-pt2 |
| Lecture 6 – Introduction to MPI | lec6-mpi |
| Lecture 7 – Prefix sums | lec7-prefixsums |
| Lecture 8 – Applications of prefix sums | lec8-prefixapplications |
| Lecture 9 – Communication primitives | lec9-commprimitives |
| Lecture 10 – MPI communication primitives | lec10-mpiprimitives |
| Lecture 11 – Bitonic sort | lec11-bitonicsort |
| Lecture 12 – Sample sort | lec12-samplesort |
| Lecture 13 – Embeddings | lec13-embeddings |
| Lecture 14 – Dense matrix algorithms | lec14-densematrix |
| Lecture 15 – Dense matrix algorithms pt 2 | lec15-densematrix2 |
| Lecture 16 – MPI topologies / derived datatypes | lec16-mpitopologies |
| Lecture 17 – Fast Fourier transform | lec17-fft |
| Lecture 18 – Hierarchical methods for the N-body problem | lec18-nbody |
| Lecture 19 – PRAM models and interconnect networks | lec19-interconnects |
| Lecture 20 – Sparse matrix-vector multiplication | lec20-spmv |
| Lecture 21 – Graph algorithms | lec21-graphs |
| Lecture 22 – Graph optimization | lec22-graphoptimization |
Here is the schedule of topics: https://docs.google.com/spreadsheets/d/1DyvhR-lbPTPtkoH2w9pC5JH4A88iUcfDNTVs_mZcBjc/edit?gid=0#gid=0
and a syllabus: https://docs.google.com/document/d/1tFuX6fcwoKAPMeZpc15bcmQ_A625jioDHuwkHUwuY30/edit?usp=sharing