CS 331: Parallel Machines and Their Algorithms

Spring 2006

Instructor:

P. Takis Metaxas
Office: SCI E116 (x-3054)
Office hours: M, W, Th 8:30 - 9:30AM
(And by appointment.)

Lectures:

Place: SCI 104 (above the SCI library)
Time: Tuesdays, Fridays 9:50 -- 11:00 AM

Purpose and Description:
This course is an introduction to parallel and distributed computing that studies problem solving using a large number of interconnected processors. It is divided into three parts. First, it discusses the need for parallel computation and describes some of the fundamental algorithmic techniques. The second part surveys some of the popular interconnection networks employed or simulated by parallel and distributed computers. In the third part, several parallel algorithms are being designed and implemented in MPI. Prerequisite: CS 231.

NOTE: Since we will program in C on a UNIX environment, some experience using C on UNIX will be important. We will provide tutorials for basic C on UNIX during the first few class periods. If you are not fluent in either of those, it is imperative that you attend these tutorials.

Course Materials

We will be using the book Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers by Barry Wilkinson and Michael Allen (either edition 1 or edition 2 would do). We will also use A User's Guide to MPI by Peter S. Pacheco (in PDF). A number of other tutorials on MPI is available from the Argonne National Lab. The full book by Pacheco on MPI is also highly recommended.

In addition we will use notes, handouts and animations of parallel algorithms. There are several related books, tapes and CDs on reserve in the Science Library. Reading assignments from some of these material will be given during the course.

 

Course Logistics

Accounts and Programming
For programming we will use both your puma accounts and Boston University's IBM pSeries 655. Accounts to the parallel machine will be given early in the semester.

Grade Assignment

  • There will be 6 homework assignments (roughly one every other week) carrying 50% of the grade,
  • a Midterm exam on Friday, March 31 (20% of the grade),
  • and a self-scheduled Final Exam (20% of the grade).
  • The remaining 10% will reflect class participation (attendance, constructive contribution in class, helping other students outside class).

Late assignment submission policy
No credit will be given for work that is submitted late. Homework and project assignments are due in the beginning of the class on the day they have been assigned for
In addition to correct programs, I will be looking for nice programming style, good testing and clear documentation.

Collaboration Policy and the Honor Code
I believe that collaboration is an effective way to learn, both by interacting with your colleagues and by trying out your hand on programming. On the other hand, asking for or looking at someone else's solution will not help you learn. You are allowed - in fact, encouraged - to discuss the homework problems with other students in the class, BUT YOU ABSOLUTELY HAVE TO SOLVE AND WRITE UP YOUR HOMEWORK SOLUTIONS, CODE UP, DEBUG AND TEST YOUR OWN PROGRAM.

Students with Special Needs:
I encourage students with disabilities, including "invisible" ones like chronic diseases and learning disabilities, to visit me during my office hours and discuss with me appropriate accommodations that might be helpful to them.


 

[ Syllabus | Instructor | Schedule | Homework | Students | Home ]