Spring 2021, 483:691
Instructor: Tyler Simon
Time: Tuesdays and Thursdays 5:30 - 6:45pm
Location: Online
Overview
This is a senior and graduate level course on parallel programming for high performance computing architectures. We cover programming models, software performance engineering, distributed algorithms and properties of HPC applications. We will complete several programming assignments and a semester project chosen by the student on some topic in parallel or distributed computing.
Course Textbook (recommended)
- Introduction to Parallel Computing 2nd ed. by Gram Gupta, Karypis, and Kumar
Resources
- Designing and Building Parallel Programs by Ian Foster
- Introduction to High Performance Scientific Computing by Viktor Eijkhout
- Multithreaded Algorithms by Cormen, Leiserson, Rivest & Stein
- MPI Reference
- OpenMP Reference
- MPI Tutorial from LLNL
- Chapel Tutorial from Software Carpentry
- NVIDIA CUDA zone
- Parallel programming utilities
- Parallel Programs