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
- Wed Aug 27 (8:00 am): At the start of the semester, class
accounts on the department machines were created for everyone registered
for the class(es). Your login id is your last name (possibly truncated to
8 characters). In case of conflicts with existing logins your first
initial is added at the end (e.g., rajopads, in they needed to create an
account for my sibling whose first name starts with S). Your password is
your CSU id. If you can't figure it out please contact
sna@cs.colostate.edu. If you need a new account for other reasons, please
contact one of us.
- Tue Aug 26 (6:00 pm): This is the first time that the campus
and on-line versions of the class are being aligned. It is also the first
time that we are taping the campus lectures and making them available to
you as media files. Please bear with us during the transition. In
general, the lectures will be posted a few hours after the on-campus
lecture. PowerPoint slides will also be posted after the lectures.
Today, there were some technical glitches in the recording, so the lecture
itself will be posted only on Wednesday. The PowerPoint slides have been
posted.
- Tue Aug 26 (6:00 pm): a short description of the data plotting
techniques has been posted.
- Tue Aug 26 (6:00 pm): As stated earlier, most of the material
(taped lectures, PowerPoint slides, and reading material) will be posted
off the schedule page.
- Tue Aug 26 (6:00 pm): There is a page for announcements
specific to the on line section of the
course.
- Mon Aug 25 (7:40 pm): HW0 has been posted. It is due by
midnight Sunday.
- Sun Aug 24 (6:00 am): Please note there will be no lab this
week (as stated in the schedule page). See
you all on Tuesday in class (B101 NESB).
- Wed July 23 (11:00 am): Homework and Lab assignments will be
announced here but the details will usually be posted off
the Syllabus/Schedule page.
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
- write a number of programs (in C);
- run them on the CS department's Unix platforms and on a large scale
supercomputer;
- measure the running time as a function of two parameters (problem size
and number of processors);
- analyze your observations; and
- 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.
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
- Class meets: Tuesday, Thursday 2:00-3:15 PM in Clark A 206.
- Instructor: Sanjay
Rajopadhye USC 223, (email:
Sanjay.Rajopadhye@colostate.edu), (phone: 491-7323).
Office Hours: Please see Sanjay's weekly
schedule.
- Graduate Teaching Assistants: Tomofumi Yuki
(email: yuki@cs.colostate.edu)
and Kaustubh
Gadkari
(email: kaustubh@cs.colostate.edu)
Office Hours: Fri 10-12 in North Lab.
- Textbook: Parallel Programming in C with MPI and OpenMP,
Michael J. Quinn (Mc Graw Hill, 2003 ISBN 0-07-282256-2).
- Tentative Grading: Homework/Labs 50%, Midterms 30%, Final
Project 20%.
- Most homeworks will involve writing programs and analyzing them,
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 a complete application, or do a comparative
study of different approaches to parallel programming. More on this
later.
The university calendar has scheduled the final exam on
Thursday, December 18, 5:50-7:50 PM, in the classroom. We do not
have a final exam. Your final project report (the last thing that
you will turn in for this class) will be due on Wednesday, December
17 at 5:00 pm.
- Important Information: Be sure to read the Computer Science
Department Student Information
Sheet. You are expected to be aware of the policies outlined
there.