Basic information

CS 5220, Spring 2010
Time: MW 8:40-9:55
Location: Snee 1120

Course description

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

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!

Instructor and office hours

David Bindel
5137 Upson Hall
Phone: 607-255-4428

Office hours are Tues and Weds, 2-3 pm, or by appointment. Or drop in if the door is wide open.

TA: Nikos Karampatziakis
4156 Upson Hall
OH: Mon 3-4, Thurs 3-4


The class will be taught from lecture notes, which will be posted as the class proceeds. Supplementary reading materials will be listed here closer to the start of classes, and will be placed on reserve in the engineering library.


Graded work will be weighted as follows:

Individual homework assignments will involve short programming 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 the course home page.