Prof. Nancy Lynch 6.852J / 18.437J Distributed algorithms are
algorithms designed to run on multiple processors, without tight
centralized control. In general, they are harder to design and
harder to understand than single-processor sequential
algorithms. Distributed algorithms are used in many practical
systems, ranging from large computer networks to multiprocessor
shared-memory systems. They also have a rich theory, which forms
the subject matter for this course. The core of the material
will consist of basic distributed algorithms and impossibility
results, as covered in Prof. Lynch's book Distributed
Algorithms. This will be supplemented by some updated material
on topics such as self-stabilization, wait-free computability,
and failure detectors, and some new material on scalable shared-
memory concurrent programming.