This class explores the principles and practice of parallel and distributed computing. We will cover six topics: background and basic concepts, formal semantics, concurrent programming with shared variables, concurrent programming with message passing, parallel computing, and distributed computing. The classroom format will be a mixture of lectures and discussions of important source papers. There will be small assignments for each source paper, three homeworks consisting of pencil-and-paper and small programming problems, a large parallel computing project, and a final examination.
Grader: Somu (Somasundaram Perianayagam)
Office Hours: To be determined
Email: somu
The reading list contains information on the papers we will be discussing and links to those that are available online.
"Software and the Concurrency Revolution" --
paper,
questions
Homework 1
"Algorithms for Scalable Synchronization in Shared-Memory Multiprocessors" --
paper,
questions for 9/12,
questions for 9/14
Semaphores papers and questions --
readers/writers,
split binary semaphore,
questions
"Monitors: An Operating Systems Structuring Concept" --
paper,
questions
Homework 2
"Nonblocking Algorithms and Preemption-Safe Locking ..." ---
paper,
questions
"Send-Receive Considered Harmful: Myths and Realities of Message Passing" ---
paper,
questions
"Communicating Sequential Processes" ---
paper,
questions
"JR: Flexible Distributed Programming in an Extended Java" ---
paper,
questions
"Generative Communication in Linda" ---
paper,
questions
Homework 3
"Parallelizing Compilers" ---
Section 12.2 of the textbook,
questions
"Data Parallel Algorithms" ---
paper,
questions
"Google Cluster Architecture ..." and "Map/Reduce ..." ---
architecture,
map/reduce,
questions
Parallel Computing Project
"What's Next in HPC?" and "... in Java for Grid Computing" ---
high-performance computing,
Java for grid computing,
questions
First set of papers on Peer-to-Peer computing ---
Special Section Overview,
Looking Up Data,
Promise of Internet Equality
questions
Second set of papers on Peer-to-Peer computing ---
Perspective on File-Sharing Systems,
Extracting Guarantees from Chaos,
questions
"The Model Checker SPIN" ---
paper,
questions
Final Examination
Last updated December 16, 2006