G63.2011.001/G22.2945.001, Fall 2008:

High Performance Scientific Computing

Marsha Berger
David Bindel
Tues, 5:10-7:00 pm. 312 Warren Weaver Hall.

Course Description

This class will cover the important aspects of parallel scientific computing. These include the programming models and architectures for distributed and shared memory machines; the programming frameworks in most common use (MPI and OpenMP); and performance issues such as load balance, communication, and synchronization overhead. Representative parallel numerical algorithms will also be studied. Since a pre-requisite for good parallel performance is good serial performance, the class will begin with this aspect of high-performance computing.

This will be a hands-on class, with several parallel (and serial) computing assignments. There will be a final project at the end. Students who have code they want to parallelize are encouraged to attend, and use that for their final project.

Pre-requisites for the course are (serial) programming experience with C/C++ or FORTRAN and some familiarity with numerical methods.