Course Schedule
The class will follow this tentative schedule. Updates will be posted here and on the class Slack!
Topic titles link to the slides for each class and lecture videos are available here.
Date 
Topic 
Preclass 
Homework 
Notes 
9/3 
Introduction to the course 
PCA 0 


9/8 
GitHub/Singleprocessor computing 
PCA 1 
HW 1 

9/10 
Singleprocessor computing 
PCA 2 


9/15 
Singleprocessor review 

HW 2 
HW1 due 
9/17 
Parallel computing theory 
PCA 3 


9/22 
Parallel programming 
PCA 4 
HW 3 
HW2 due 
9/24 
Network Topologies 
PCA 5 


9/29 
The Seven Dwarfs 
PCA 6 
HW 4 
HW3 due 
10/1 
Intro to MPI, functional parallelism 
PCA 7 


10/6 
Collective communication 
PCA 8 
HW 5 
HW4 due 
10/8 
Collective communication 
PCA 9 


10/13 
Pointtopoint communication 
PCA 10 
HW 6 
HW5 due 
10/15 
Pointtopoint communication 
PCA 11 


10/20 
Data types, communicators 

HW 7 
HW6 due 
10/22 
Getting started with OpenMP 
PCA 12 


10/27 
OpenMP, regions, loops 
PCA 13 
HW8 
HW7 due 
10/29 
Worksharing, thread data, reductions 
PCA 14 


11/3 
CANCELLED 



11/5 
Synchronization, tasks 
PCA 15 

HW8 due 
11/10 
Onesided communication 
PCA 16 
HW 9 

11/12 
I/O, HDF5 
PCA 17 


11/17 
Affinity, memory models, shared memory MPI 
PCA 18 
HW 10 

11/19 
SIMD, OpenMP review 
PCA 19 
HW11 
HW9 due 
11/24 
OpenMP 4.5 GPU 
PCA 20 


11/26 
No class! 



12/1 
Project work day 


HW10 due 
12/3 
GPUs, CUDA 
PCA 21 


12/8 
CANCELLED 



12/10 
Review 


Projects due! 
12/17 
Final Project Review (10 am  12 pm) 


Peer reviews due! 