High Performance Computing
Title  High Performance Computing (51087) 

Quarter  Winter 2016 
Instructor  Andrew Siegel (siegela@uchicago.edu) 
Website  
Syllabus  Course Description This is a fastpaced applied programming course aimed at students with general interest in high speed computing and with significant development experience in either C, C++, or FORTRAN. No specific prior specialized knowledge is assumed. Students should, however, have both an interest and some previous experience in either algorithmic development, numerical methods, applied mathematics, or perhaps any physics or engineeringtype discipline. A brief overview of parallel computing will be presented at the outset, but the course will be less a survey of HPC architectures and more a practicum on algorithmic implementation and performance tuning. The goal of the course it to give students experience in developing efficient, scalable parallel algorithms both for distributed memory (using MPI) and shared memory models architectures(using OpenMP and CUDA). Assignments will be designed with some flexibility to allow students to explore applying parallel techniques to applications in their own field of interest. Course Contents The topics will interleave program model studies with application exemplars designed to gain experience in implementing these parallel programming strategies
Coursework Textbook

Prerequisites (Courses)  MPCS 51040  C Programming 
Prerequisites (Other)  
Satisfies  High Performance Computing Specialization 
Time  Mondays 5:30  8:30 
Location  Young 302 