High-Performance Computing
This course explores the design, implementation, and evaluation of computer programs for applications in which performance is a central issue. Three board categories will be examined: performance in sequential execution, parallel execution, and hardware accelerators. In the sequential setting topics include: memory management and cache memory; pipelining; compilation; and ISA extensions. In the parallel case topics include: multiprocessing and multithreading; task and data parallelism; design and analysis of algorithms for parallel execution; and parallel design patterns. Graphics Processing Units (GPUs) will be the primary hardware accelerator of interest and focus will be on General Purpose GPU (GPGPU) computing. Additional topics include: the role of computing hardware on software performance; profiling, benchmarking, and evaluation; performance tuning; and parallel programming models (e.g. OpenMP, Cilk). CALENDAR NOTES: To be successful in this course, students are expected to be able to program in C/C++ and have an introductory understanding of operating systems, analysis of algorithms, and computer architecture. EXCLUSIONS: CSCI 4125
Sources
Catalogue variants
- High-Performance Computing · 3 · Graduate