|
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
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.
- Thinking and Programming in Parallel - CS 331 Course Notes
by P.Takis Metaxas. Available in PDF:
- Introduction to Parallel Algorithms and
Architectures by
F. Thompson Leighton. A Classic.
-
C Programming for the Absolute Beginner by Michael Vine.
Accessible online through the library's eBooks.
- A Crash Course in C by Anand Mehta. Useful for learning C in the beginning.
- Introductory Lectures on Data-Parallel Computing CD-ROM (P.T.
Metaxas, editor) This CD-ROM contains
several of lectures on the material that we will cover in class.
A copy of it is on reserve at the Science Library. Some of the lectures
are available online.
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 ] |