CS 5220

Applications of Parallel Computers

Location: Zoom
Meeting: TR 8:00-9:15
Backup meeting: TR 1:25-2:40 (in Gather.town)
Discussion: Piazza
Course material: GitHub


2020-12-09: Instructions for final project presentation and report are posted.

2020-11-09: No project 3. Please submit final project proposal by 11/17.

2020-10-17: Project 2 is posted! Groups are on CMS.

2020-09-30: Please use n2-highcpu-2 rather than e2-micro instances for timing/tuning the matrix multiply project.

2020-09-17: Alternate meeting time for the non-8AM folks who still want the group experience is TR 1:25-2:40 in the Gather.town office. I will be there Thurs 2-4 for office hours.

Older news »


CS 5220 is an introduction to performance tuning and parallelization, particularly for scientific codes. Topics include:

  • Single-processor architecture, caches, and serial performance tuning
  • Basics of parallel machine organization
  • Distributed memory programming with MPI
  • Shared memory programming with OpenMP
  • Parallel patterns: data partitioning, synchronization, and load balancing
  • Examples of parallel numerical algorithms
  • Applications from science and engineering

Students should be able to read and write serial programs written in C or a related language. Because our examples will be drawn primarily from engineering and scientific computations, some prior exposure to numerical methods is useful, though not necessary. Prior exposure to parallel programming is not required, and non-CS students from fields involving simulation are particularly welcome!

See the syllabus for more information on enrollment and course logistics.