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 
