everything.study
CS 4230

Applied High-Performance and Parallel Computing

3.0 credits · Undergraduate

This course introduces performance tuning and parallelization, with an emphasis on scientific and data-intensive codes. Topics include single-processor architecture, caches, and serial performance tuning; performance modeling and analysis, including arithmetic intensity, the Roofline model, and strong and weak scaling; the organization of modern parallel machines; shared-memory programming with OpenMP; distributed-memory programming with MPI; single-GPU programming with CUDA; multi-GPU programming with NVSHMEM; and programming emerging accelerators such as the Cerebras CS-3. The course also covers recurring parallel patterns such as data partitioning, synchronization, and load balancing, and applies them to parallel numerical algorithms, parallel graph algorithms, and parallel algorithms arising in science and engineering. Students complete a sequence of programming assignments in which they parallelize and tune real codes on a leadership-class supercomputer, measure and analyze performance, take in-class quizzes, and carry out a substantial final project of their own design.

Topics

Official roster learning outcomes

Prerequisites & course information

CS 3410

Sources