COMP 364: High-Performance Computing
This course is motivated by the realization that cpu speeds are levelling off at between 3GHz and 5GHz. The need for programs to be faster and more efficient is all the more important at a time when applications are getting increasingly larger and more complex. We will introduce techniques to gain performance boost in Java programs and C++ (or C) programs by discussing the use of multiple processors. This course will use two kinds of hardware platforms we have in the department, two IBM symmetric multiprocessors with 4 CPUs each and 4 GB of memory and a cluster of AMD machines all running Linux. We will study shared memory (OpenMP), message passing (MPI) and hybrid models of programming the high-performance machines. This course will use a blend of foundational understanding as well as a set of practical tools to gain insight into performance engineering of software.