Introduction to High Performance Computing (CS 455)1
Course Description
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 will cover fundamental HPC architecture concepts and parallel computing systems software techniques. The course will give students of other domains the needed knowledge to use supercomputers as a vital tool in their quest for new knowledge. The content includes fundamental architecture aspects of shared-memory and distributed-memory systems, as well as paradigms, algorithms, and languages used to program parallel systems. Students will complete several assignments investigating the use of parallel processing systems.
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
Material Covered
- History of High Performance Computing
- High Performance Computing Systems (Hardware)
- Shared-memory systems
- Distributed-memory systems
- Benchmarking
- Resource Management
- Parallel Programming Models (Software)
- OpenMP
- Message Passing Interface (MPI)
- Parallel Algorithms
- Performance Analysis and Tuning
- Debugging
- Checkpointing
- Visualization
- Performance/System
- Scientific
- Future Systems
Grading
- 50% homeworks
- 30% exams
- 20% quizzes and class participation
-
Was taught as CS 494 in the Spring of 2023 and 2024. ↩