Course»Course 6»Fall 2011»6.852/18.437»Homepage

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:



Announcements

HKN Evaluation

Folks,

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

One of the important activities that you will be doing in this course is to grade one problem set. Over the years, we have observed that students have had several gains while performing this exercise. Students are required to grade at least once in order to get a grade. We typically have 3 graders for each problem set. You are free to sign up for any problem set (first come first serve basis). You may access the sign up sheet at http://tinyurl.com/3vam7sm

Best,
Prasant

Announced on 24 September 2011  10:32  a.m. by Prasant Anumanchipalli

A one hour tempo tutorial

Homework 2b, to be handed out next Thursday, will allow students to use the Tempo language to write algorithms.  (SUbsequent homeworks will require it.)

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