Fall 2024 Course Descriptions
CS 151-04 Parallel and High-Performance Computing
This course is structured to train students to reason about the design and implementation of efficient parallel programs. The focus areas of the class will be on the modeling, implementation and evaluation of distributed, message-passing interface (MPI) based programs, shared-memory thread-based OpenMP programs, and hybrid (MPI/OpenMP) programs. Almost all examples will be aligned with numerical scientific computing. This course is appropriate for those that want to transform serial algorithms into parallel algorithms, want to modify currently existing parallel algorithms, or want to write parallel algorithms from scratch. The assignments/projects will be parallelized using OpenMP and MPI (Message Passing Interface). Students should have a basic understanding of partial differential equations, linear algebra, sequential algorithms, and data structures, as well as reasonable programming skills (preferably C/C++ or Fortran) and familiarity with Linux or Unix.
Prerequisite: CS 15, MATH 42, and MATH 70 or graduate standing