6.852/18.437 Distributed Algorithms
Fall 2011
Instructor: Nancy Ann Lynch
TA: Prasant Anumanchipalli
Lecture: TR11-12.30 (2-105)
What is this course about?:
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, then
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.
Theoretical results about distributed algorithms appear in research
conferences such as PODC (Principles Of Distributed Computing),
DISC (International Symposium on DIStributed Computing), OPODIS
(International Conference on Principles of Distributed Systems),
and SPAA (ACM Symposium on Parallelism in Algorithms and
Architectures). They also appear in general theoretical computer
science conferences such as FOCS (Foundations of Computer Science)
and STOC (Symposium on Theory of Computing), and in broad
conferences involving distributed computing, such as ICDCS
(International Conference on Distributed Computing Systems).
What do distributed algorithms researchers do? They (we) define
various kinds of distributed computing environments, including
shared-memory and network-based environments, and identify problems
to be solved in those environments. They design new algorithms for
these problems, and analyze the correctness, performance, and
fault-tolerance of their algorithms. They also prove lower bounds
and other impossibility results, which explain why certain tasks
cannot be carried out in certain kinds of distributed settings, or
cannot be carried out within certain cost constraints. Researchers
typically study problems that arise in practical distributed
systems, including problems of communication, data management,
resource management, synchronization, and distributed agreement.
Sometimes, the results have impact on practical distributed system
design.
The ``core'' of the material will consist of basic
distributed algorithms and impossibility results, as covered in
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.
6.852 is a graduate-level course that is intended to do two things:
provide an introduction to the most important basic results in the
area of distributed algorithms, and prepare interested students to
begin independent research or take a more advanced course in
distributed algorithms. Usually, the students who take the course
are a mixture of PhD students and MEng students. Since the course
is run at a PhD level, most MEng students should find it
challenging.
Prerequisites:
To take 6.852, you should have:
-
``Mathematical maturity''. In particular, you should be very good at reading and writing mathematical proofs.
-
General knowledge about some distributed systems. For instance, MIT's undergraduate course 6.033, Computer Systems Engineering, would be good background.
-
Experience with sequential algorithms and their analysis. MIT's undergrad course 6.046 is sufficient.
-
(Desirable, but not essential) Experience with formal models of computation. MIT's course 6.045 or 6.840 would be fine for this.
Announcements
HKN Evaluation
It is often, both, helpful and useful to fill out the HKN evaluations towards the end of the semester. Please take some time and fill out 6.852's evaluation at
https://sixweb.mit.edu/student/evaluate/6.852-f2011
Announced on 02 December 2011 5:05 p.m. by Prasant Anumanchipalli
Sign-up for Grading
Best,
Prasant
Announced on 24 September 2011 10:32 a.m. by Prasant Anumanchipalli
A one hour tempo tutorial
To make this as easy as possible, Peter Musial will hold a tutorial to help students to get started with the software. The tutorial will be held at two alternative times:
Friday, September 30, 3-4PM
Monday, October 3, 4-5PM
Both sessions will be held in 32G-575 (in the Stata Center).
Bring your laptop.
Announced on 23 September 2011 7:19 p.m. by Prasant Anumanchipalli