Williams College
Computer Science 338, Fall 2000
Parallel Processing


Instructor:Jim Teresco
Office:TCL 304, 597-4251
E-mail address:terescoj@cs.williams.edu
Class Hour:Tuesday and Thursdays, 9:55-11:10 AM, TCL 206
Office Hours (tentative):Tuesday 2-4, Wednesday 9-11, by appointment.
Textbook: Foundations of Multithreaded, Parallel, and Distributed Programming , Gregory Andrews (Addison-Wesley, 2000)
Class URL: http://www.cs.williams.edu/~terescoj/cs338_f00


Everything on this syllabus is subject to change.

Course objectives

This course is a broad introduction to parallel computing. We will consider parallel programming techniques, languages, and libraries, survery parallel architectures, and look at some of the theoretical and practical issues of parallel computation.


Lab/Homework Sets

Lab/homework assignments will be approximately weekly, normally due one week after being assigned. We will not have a formal lab meeting. Some assignments will include programs, to be written and executed on the Computer Science Lab's Unix systems. Although these assignments are only a small part of your grade, it is to your advantage to do them and understand them thoroughly.


There will also be several larger assignments. Projects involving programming are to be written and executed on the Computer Science Lab's Unix systems unless otherwise specified. Project writeups and answers to project questions are expected to be well-written. In many cases, the writeup is far more important (and worth a larger percentage of the grade) than the source code. This is especially true of the term project, which will require a formal proposal, research paper, and a presentation to the class in addition to the programming.


Details of the exams will be made available later in the semester. Makeup exams will only be given in extreme cases, and only with prior arrangements.


The breakdown is tentative, and is subject to change. Any such change will be announced in class.

Labs/Homework Sets20%
Assignments and projects are due at the start of class on the due date. Unless otherwise specified, late work may be turned in with a 20% per day penalty - no exceptions including missing class without prior arrangements. Solutions will be made available at that time, and work turned in after that time will not receive credit. All assignments and projects are to be submitted via electronic mail unless otherwise specified. Please submit plain text where appropriate and never submit MS Word-format documents. If in doubt about a file format, please check with me first. Keep a copy of all submissions (cc: yourself on the e-mail submission).

E-mail and Web Pages

Electronic mail will be used to send out course news, homework hints and other important information, so you will need to check your electronic mail on a regular basis. Important course information will also be made available on the class web page [http://www.cs.williams.edu/~terescoj/cs338_f00] .

Ground Rules - Honor Code

The homeworks and projects are designed to help each student learn the course material. For some assignments, you may be allowed to work in small groups. Any assignment which does not specifically state that groups are permitted must be done individually. Each student must have a complete understanding of the assignments in order to do well on the exams. Cheating (copying, sharing, or other unauthorized collaboration) is a violation of the Honor Code and will be dealt with appropriately. If in doubt, check with me before working together. Individuals or groups should ensure their files are "read-protected." Learn how to protect your files -- it is your responsibility.

Getting Help

Tentative Course Schedule
"A" indicates readings from Andrews. Additional readings will be given occasionally.
Week Date Topic and/or Event Readings
1 Sept. 7 Introduction. A1
2 Sept. 12 Programming with pthreads. Project 1 Out. -
Sept. 14 Processes and Synchronization. A2
3 Sept. 19 Critical Sections 1. A3
Sept. 21 Critical Sections 2. A4
4 Sept. 26 Critical Sections 3. Project 1 Due. -
Sept. 28 MPI Programming. Project 2 Out. -
5 Oct. 3 Message Passing 1. A7
Oct. 5 Message Passing 2. -
6 Oct. 10 Message Passing 3. -
Oct. 12 Parallel Architectures. Project 2 Due (10/13). handouts
7 Oct. 17 No class -- Fall Reading. -
Oct. 19 Field Trip. Project 2 Part 2 Due (10/20) handouts
8 Oct. 24 Catchup, Exam review. -
Oct. 26 Exam, Term Project Out. -
9 Oct. 31 Boo. Parallel Scientific Computing. A11
Nov. 2 Partitioning and Load Balancing Intro. Term Project Proposal Due. handouts
10 Nov. 7 Partitioning Algorithms, Partition Quality.
Nov. 9 Partitioning and Dynamic Load Balancing.
11 Nov. 14 Dynamic Load Balancing, Octrees, SFCs. A12
Nov. 16 Parallel Graph Partitioning, Monitors. A12
12 Nov. 21 Monitors, Parallelizing Compilers. Initial Draft of Research Paper Due. -
Nov. 23 No class -- Happy Thanksgiving. -
13 Nov. 28 Emerging architectures/State of Parallel Computing in 2000. handouts
Nov. 30 Guest Lecture on Multithreading in NT handouts
14 Dec. 5 Presentations. -
Dec. 7 Review, Presentations, Bonus Topics, Term Projects Due. -
15 Dec. 9-17 Self-scheduled exam. -

Jim Teresco