Computer Science 561 - Introduction to Distributed Algorithms
Course Summary
Today's dual and quad-core processors are the norm for standard desktop computers. The near future promises machines with hundreds of CPUs on a single chip. Expertise for parallel software design lags far behind the potential hardware.
While parallelism offers opportunities to speed up computation, the asynchrony of these systems also raises new challenges. Designing algorithms for asynchronous systems is difficult and errorprone. Therefore it is essential to establish the correctness of our solutions.
In this course we learn how to design and establish the correctness of algorithms for fundamental problems of asynchronous multiprocessor systems. Topics include synchronizing executions, ensuring mutual exclusive access to resources, designing powerful shared objects from registers, taking global memory snapshots, reaching consensus, and designing shared data structures.
Textbook
The Art of Multiprocessor Programming,
Maurice Herlihy and Nir Shavit,
Morgan Kaufmann Publishers 2008.
ISBN 978-0-12-370591-4.
Prerequesites
CPSC 413
Time Table
Lectures: TR 14:00-15:15 (MS 217)
Tutorials: TR 16:00-16:50 (MS 217)
Contact
See Lisa's and Philipp's homepage.
Office Hours
Lisa: Mondays, 16:00-17:00 (ICT 614), or by appointment.
Philipp: Thursdays, 11:00-12:00 (ICT 655), or by appointment.