Basic information

CS 5220, Fall 2011
Time: TTh 8:40-9:55
Location: Phillips 219

Course description

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

Because our examples will be drawn primarily from engineering and scientific computations, we will assume some prior exposure to numerical methods (e.g. at the level of CS 3220). Students should also be able to read and write serial programs written in C. Prior exposure to parallel programming is not required, and non-CS students from fields involving simulation are particularly welcome!

Staff and office hours

Professor: David Bindel
425 Gates Hall
Phone: 607-255-5395
Open office hours are: W 1:30-2:30, Th 10:00-11:00, or by appointment.

TA: Nicolas Savva
Office hours are M 4:30-5:30 (Gates G19) and Tues 5:30-6:30 (Gates G11).

Course discussion system

This term we will be using Piazza for class discussion. Rather than emailing me questions, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email

Find our class page at:


The class will be taught from lecture notes, which will be posted as the class proceeds. Supplementary reading materials will also be posted.


Graded work will be weighted as follows:

  • Individual homework: 10%
  • Small-group assignments: 60%
  • Final project: 30%

Individual homework assignments will involve short programming and analysis exercises, and should be done alone. Most of the class work will involve a sequence of short programming assignments done in groups of 1 to 3 students; students may wish to team up with others who have complementary skill sets. The class will culminate in written report on a final project, which may be done by small teams or individually. Students are encouraged to discuss their own final project ideas with the instructor or with other faculty; those who do not have their own idea for a final project will be assigned one.

Emergency procedures

In the event of a major campus emergency like an H1N1 flu outbreak, course requirements, deadlines, and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. Any such announcements will be posted to Piazza.