Colorado
State University Computer Science Department


CS 475: Parallel Programming
GRAD 510: High Performance Computing
Fall 2007

Class meets: MWF 10:00-10:50 in Military Science 200
Labs meet: M 12:00 - 12:50 or M 2:00 - 2:50 (labs are required)

Announcements:

Watch this space (and the Schedule Page and Lab Schedule Page) for last minute information.

Course Overview

Parallel programming is becoming increasingly critical for a computer scientist/engineer. Tomorrow, all machines are all going to be parallel, and a sequential program will be a slow program. Dave Patterson's keynote talk at LCPC 2006 elquently makes that argument that we are at the end of the "La-Z-Boy Programming" era.

This course will train you to be ready for this challenge. It will teach you the basic concepts of writing, debugging, analyzing, benchmarking, and designing parallel programs. It covers the two main paradigms: shared memory, and message passing. We will also examine a number of parallel algorithms for a range of problems. The class is intended to be very hands-on: you will write a number of programs (in C), run them on the CS department's Unix platforms and on CSU's CoGrid node, measure the running time as a function of two parameters (problem size and number of processors), and write reports on your observations.

Because this class is a capstone course for the undergraduate Computer Science curriculum, there is a significant writing component. This will be in the form of detailed lab reports, and a term paper, for which you will receive critical feedback on your writing and expository skills.

Prerequisites: CS 370 System Architecture and Software or instructor consent. Another key prerequisite is intellectual curiosity.

Tentative Syllabus & Schedule

The tentative schedule of lecture topics, titles and due dates of the Homework and Lab assignments and the associated reading material is posted here. Note that it is tentative and we may not be able to cover all topics. The table will be modified as the course proceeds.

Details