CSc 522 -- Parallel and Distributed Computing

Fall, 2006 -- Tuesday and Thursday, 2:00-3:15, Gould-Simpson 701


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.

Instructor

Greg Andrews, Gould-Simpson 705
Office Hours: Tuesday and Thursday, 10:00-11:00, and by appointment
Email: greg

Grader: Somu (Somasundaram Perianayagam)
Office Hours: To be determined
Email: somu

Textbook

Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming, Addison Wesley, 2000. The book's Web site contains a lot of material that you might find useful. The errata page contains several minor corrections as well as a few larger ones. Click on the cover to the right for a larger image.

Syllabus and Reading List

The syllabus contains the lecture plan, schedule of assignments and examinations, class policies, and information on electronic resources.

The reading list contains information on the papers we will be discussing and links to those that are available online.

Hardware Platforms and Software Tools

You will be using the Pthreads and MPI libraries in your assignments and project. You will be executing your programs on Lectura and/or Parallel. The tools page contains information and useful links for the libraries, as well as for the Java, MPD, and SR languages. The processors page contains information on the processors we will be using in this class.

Handouts, Homework, and Exams

Below are links to PDF copies of papers, homeworks and exams as they are assigned. You should be able to view these, but if not, install Adobe Acrobat Reader and configure your browser to use it.

"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