Syllabus

Course Objectvies

After completing this course, students will be able to write blazingly fast and scalable applications for modern parallel systems. They will be able to identify the best hardware architectures and programming models for their application of interest, and implement and debug them for performance.

Schedule

Week Date Topic Reading/Homework
1 Sep. 27 Intro to Parallel Computing
Sep. 29 Performance Amdahl’s Law, Gustafson’s Law, Isoefficiency
2 Oct. 2 Performance II Ninja Performance Gap
Oct. 4 Architecture I Cray-1
Oct. 6 Architecture II Cray-1
3 Oct. 9 Architecture III, Talapas OpenMP Tutorial
Oct. 11 Fork-Join Model and OpenMP Homework 01 assigned
Oct. 13 OpenMP II
4 Oct. 16 OpenMP III MPI Tutorial
Oct. 18 (Travel) OpenMP IV
Oct. 20 (Travel) OpenMP V
5 Oct. 23 Parallel Patterns
Oct. 25 GPUs and CUDA Homework 02 assigned
Oct. 27 CUDA II
6 Oct. 30 CUDA III
Nov. 1 CUDA IV Homework 04 assigned, CUDA Programming Guide
Nov. 3 CUDA V
7 Nov. 6 Collectives and MPI
Nov. 8 MPI II Homework 05 assigned
Nov. 10 (Veteran’s Day Holiday)
8 Nov. 13 (Travel) Advanced Optimizations
Nov. 15 (Travel) Optimizations II
Nov. 17 (Travel) Optimizations III
9 Nov. 20 Optimizations IV
Nov. 22 Optimizations V
Nov. 24 Thanksgiving
10 Nov. 27 (Online) Project Presentation I
Nov. 29 (Oline) Project Presentation II
Dec. 1 (Online) Project Presentation III