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.
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
- Class meets: Monday, Wednesday, Friday 10:00 to 10:50, in
Military Science 200.
- Instructor: Sanjay
Rajopadhye USC 223, (email:
Sanjay.Rajopadhye@colostate.edu), (phone: 491-7323).
Office Hours: Please see Sanjay's weekly
schedule.
- Graduate Teaching Assistant: DaeGon Kim USC 2nd floor
North, Cubicle N2, (email: kim@cs.colostate.edu), (phone:
491-5937).
Office Hours: Tuesday 9-11 (2nd floor) and Friday 12:00-1:00 or
by appointment.
- Textbook: Parallel Programming in C with MPI and OpenMP,
Michael J. Quinn (Mc Graw Hill, 2004 ISBN 0-07-282256-2).
- Tentative Grading: Homework/Labs 50%, Midterms 30%, Final
Project 20%.
- Most homeworks will be labs involving writing and analyzing
programs, both analytically and empirically. Assignments must be
submitted at the beginning of class on the due date. Programming
assignments must be checked in by the time indicated. Late
assignments will not be accepted (exceptions may be announced in
class or posted).
- There will be two midterms and a project, but no final exam.
- Final Project For your final project, you will work with a
partner and parallelize an algorithm of your choice. More on this
later.
The university calendar has scheduled the final exam on
Tuesday, December 11, 9:10-11:10pm, in the classroom. We do not have
a final exam, but your project report will be due on this date at
10:00 am.
- Important Information: Be sure to read the Computer Science
Department Student Information
Sheet. You are expected to be aware of the policies outlined
there.