Colorado
State University Computer Science Department


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

Class meets: Tu-Th 2:00-3:15 PM in NESB B101
Labs meet: M 12:00 - 12:50 or M 2:00 - 2:50 (labs are required)

Announcements:

Watch this space, the Schedule Page and Lab Schedule Page for last minute information. There is also a page for announcements specific to distance students

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 eloquently 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

  1. write a number of programs (in C);
  2. run them on the CS department's Unix platforms and on a large scale supercomputer;
  3. measure the running time as a function of two parameters (problem size and number of processors);
  4. analyze your observations; and
  5. write reports on your observations and analyses.
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 also posted there. 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