This course will focus on the principles of parallel and distributed systems, and the associated implementation and performance issues. We will examine programming interfaces to parallel and distributed computing; interprocess communication, synchronization, and consistency models; memory management techniques and parallel program optimization; distributed process management, fault tolerance and reliability; multiprocessor architectures; and the interaction of the compiler, run-time, and hardware architecture. For 2008 there will be particular emphasis on issues of importance to emerging multicore architectures.
Students taking this course at the 400 level will be required to complete additional readings and/or assignments.
Prerequisites: CSC 252 or equivalent, and C/C++ programming experience under Unix. (Usually in the Spring; may not be offered every year.)
Last changed 1/18/2008 (marty@cs.rochester.edu)