CS 455: Introduction to High Performance Computing
Introduction to high performance computing covering fundamental HPC architecture concepts, parallel computing systems software techniques, and hands-on experience with supercomputers.
Course Overview
This course aims to introduce students to high performance computing (HPC) in a general way that is useful to computer science students and all STEM fields. The course covers fundamental HPC architecture concepts and parallel computing systems software techniques. Students will complete several assignments investigating the use of parallel processing systems.1
Course Material
- R. Robey and Y. Zamora, Parallel and High Performance Computing, Manning Publishers, 2021
- T. Sterling, M. Anderson, and M. Brodowicz, High-Performance Computing Modern Systems and Practices, Morgan Kaufmann Publishers, 2018
Grading
- 50% Homeworks
- 30% Exams
- 20% Quizzes and Class Participation
-
Was taught as CS 494 in the Spring of 2023 and 2024. ↩
Schedule
| Week | Topic |
|---|---|
| 1 | History of High Performance Computing |
| 2 | HPC Systems: Shared-Memory Architecture |
| 3 | HPC Systems: Distributed-Memory Architecture |
| 4 | Benchmarking |
| 5 | Resource Management |
| 6 | Parallel Programming: OpenMP |
| 7 | Parallel Programming: OpenMP (continued) |
| 8 | Parallel Programming: MPI |
| 9 | Parallel Programming: MPI (continued) |
| 10 | Parallel Algorithms |
| 11 | Performance Analysis and Tuning |
| 12 | Debugging and Checkpointing |
| 13 | Visualization: Performance/System and Scientific |
| 14 | Future Systems |