everything.study
18.437

Distributed Algorithms

3-0-9 units · Graduate

See description under subject 6.5250J.

Fall 2009

Topics

  • Course overview. Synchronous networks. Leader election in synchronous ring networks.
  • Leader election in rings. Basic computational tasks in general synchronous networks: leader election. Breadth-first search. Broadcast and convergecast. Shortest paths.
  • Spanning trees. Minimum spanning trees.
  • Fault-tolerant consensus. Link failures: the two generals problem. Process failures (stopping, Byzantine). Algorithms for agreement with stopping and Byzantine failures. Exponential information gathering.
  • Number-of-processor bounds for Byzantine agreement. Weak Byzantine agreement. Time bounds for consensus problems.
  • k -set-agreement. Approximate agreement. Distributed commit.
  • Asynchronous distributed computing. Formal modeling of asynchronous systems using interacting state machines (I/O automata). Proving correctness of distributed algorithms.
  • Non-fault-tolerant algorithms for asynchronous networks. Leader election, breadth-first search, shortest paths, broadcast and convergecast.
  • Spanning trees. Gallager et al . minimum spanning trees.
  • Synchronizers. Synchronizer applications. Synchronous vs. asynchronous distributed systems.
  • Time, clocks, and the ordering of events. State-machine simulation. Vector timestamps.
  • Stable property detection. Distributed termination. Global snapshots. Deadlock detection.
  • Asynchronous shared-memory systems. The mutual exclusion problem. Mutual exclusion algorithms.
  • More mutual exclusion algorithms. Bounds on shared memory for mutual exclusion. Resource allocation. The Dining Philosophers problem.
  • Shared-memory multiprocessors. Contention, caching, locality. Practical mutual exclusion algorithms. Reading/writing locks.
  • Impossibility of consensus in asynchronous, fault-prone, shared-memory systems.
  • Atomic objects
  • Atomic snapshot algorithms. Atomic read/write register algorithms.
  • List algorithms: locking algorithms, optimistic algorithms, lock-free algorithms, lazy algorithms.
  • Transactional memory: obstruction-free and lock-based implementations.
  • Wait-free computability. The wait-free consensus hierarchy.
  • Wait-free vs. f -fault-tolerant atomic objects. Boosting fault-tolerance.
  • Asynchronous network model vs. asynchronous shared-memory model. Impossibility of consensus in asynchronous networks. Failure detectors and consensus. Paxos consensus algorithm.
  • Self-stabilizing algorithms
  • Timing-based systems. Modeling and verification. Timing-based algorithms for mutual exclusion and consensus. Clock synchronization.

Readings

  • The primary source will be the book Distributed Algorithms by Prof. Nancy Lynch.
    Required
  • [Lynch] = Lynch, Nancy. Distributed Algorithms . Burlington, MA: Morgan Kaufmann, 1996. ISBN: 9781558603486.
    Required
  • [Attiya and Welch] = Attiya, Hagit, and Jennifer Welch. Distributed Computing: Fundamentals, Simulations, and Advanced Topics . 2nd ed. New York, NY: Wiley-Interscience, 2004. ISBN:9780471453246.
    Recommended
  • This is another textbook on distributed algorithms, initially published a little after the Lynch book. It now has a second edition. The material covered overlaps quite a lot with the Lynch book, though Attiya and Welch do cover some topics, like clock synchronization, that Lynch does not cover. The style is a little less formal.
    Recommended
  • [Herlihy and Shavit] = Herlihy, Maurice, and Nir Shavit. The Art of Multiprocessor Programming . Burlington, MA: Morgan Kaufmann, 2008. ISBN: 9780123705914.
    Recommended
  • This undergraduate textbook covers basic algorithms and techniques for multiprocessor programming.
    Recommended
  • [Guerraoui and Kapalka] = Guerraoui, Rachid, and Michal Kapalka. Transactional Memory: The Theory . San Rafael, CA: Morgan and Claypool, 2010. ISBN: 9781608450114.
    Recommended
  • Recommended
  • Kaynar, Disun, Nancy Lynch, Roberto Segala, and Frits Vaandrager. The Theory of Timed I/O Automata . 2nd ed. San Rafael, CA: Morgan and Claypool, 2010. ISBN: 9781608450022.
    Recommended
  • Recommended
  • SES #: 1 · TOPICS: Course overview. Synchronous networks. Leader election in synchronous ring networks. · READINGS: [Lynch] Chapters 1 and 2, sections 3.1 to 3.5.
    Reading assignment
  • SES #: 2 · TOPICS: Leader election in rings. Basic computational tasks in general synchronous networks: leader election. Breadth-first search. Broadcast and convergecast. Shortest paths. · READINGS: [Lynch] Section 3.6, and sections 4.1 to 4.3.
    Reading assignment
  • SES #: 3 · TOPICS: Spanning trees. Shortest paths (Bellman-Ford). Minimum spanning trees. Maximal independent sets (summary). · READINGS: [Lynch] Sections 4.3 to 4.5 (skip 4.5.3).
    Reading assignment
  • SES #: 4 · TOPICS: Fault-tolerant consensus. Link failures: the two generals problem. Process failures (stopping, Byzantine). Algorithms for agreement with stopping and Byzantine failures. Exponential information gathering. · READINGS: [Lynch] Sections 5.1 and 6.1 to 6.3.
    Reading assignment
  • Aguilera, Marcos Kawazoe, and Sam Toueg. “A Simple Bivalency Proof that t -Resilient Consensus Requires t +1 Rounds.” Information Processing Letters 71, nos. 3-4 (August 1999): 155-158.
    Listed reading
  • Recommended
  • 6 · k -set-agreement. Approximate agreement. Distributed commit. · [Lynch] Chapter 7.
    Recommended
  • 7 · Asynchronous distributed computing. Formal modeling of asynchronous systems using interacting state machines (I/O automata). Proving correctness of distributed algorithms. · [Lynch] Chapter 8.
    Recommended
  • 8 · Non-fault-tolerant algorithms for asynchronous networks. Leader election, breadth-first search, shortest paths, broadcast and convergecast. · [Lynch] Chapters 14 and 15.
    Recommended
  • 9 · Spanning trees. Gallager et al . minimum spanning trees.
    Recommended
  • Gallager, R. G., P. A. Humblet, and P. M. Spira. “A Distributed Algorithm for Minimum-Weight Spanning Trees.” ACM Transactions on Programming Languages and Systems 5, no. 1 (January 1983): 66-77.
    Recommended
  • 10 · Synchronizers. Synchronizer applications. Synchronous vs . asynchronous distributed systems. · [Lynch] Chapter 16.
    Recommended
  • [Lynch] Chapter 18.
    Recommended
  • Recommended
  • Mattern, Friedemann. “Virtual Time and Global States of Distributed Systems.” In Parallel and Distributed Algorithms: Proceedings of the International Workshop on Parallel and Distributed Algorithms (Chateau de Bonas, Gers, France, October, 1988) . Edited by Michel Cosnard, et al. Amsterdam, The Netherlands: North Holland, 1989, 215-226. ISBN: 9780444873675. Reprint, Yang, Zhonghua, and T. Anthony Marsland, eds. “Virtual Time and Global States of Distributed Systems.” In Global States and Time in Distributed Systems . Los Alamitos, CA: IEEE Computer Society Press, 1994, pp. 123-133. ISBN: 9780818653001.
    Recommended
  • 12 · Stable property detection. Distributed termination. Global snapshots. Deadlock detection. · [Lynch] Chapter 19.
    Recommended
  • 13 · Asynchronous shared-memory systems. The mutual exclusion problem. Mutual exclusion algorithms: Dijkstra’s algorithm, Peterson’s algorithm, and Lamport’s Bakery algorithm. · [Lynch] Chapter 9 and sections 10.1 to 10.7.
    Recommended
  • [Herlihy and Shavit] Chapter 7.
    Recommended
  • [Lynch] Chapter 11.
    Recommended
  • Mellor-Crummey, John M., and Michael L. Scott. “Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors.” ACM Transactions on Computer Systems 9, no. 1 (February 1991): 21-65.
    Recommended
  • Magnussen, Peter, Anders Landin, and Erik Hagersten. “Queue Locks on Cache Coherent Multiprocessors.” Proceedings of the 8th International Symposium on Parallel Processing , 1994, pp. 165-171.
    Recommended
  • [Lynch] Chapters 11 and 12.
    Recommended
  • Fischer, Michael J., Nancy A. Lynch, and Michael S. Paterson. “Impossibility of Distributed Consensus with One Faulty Process.” Journal of the Association for Computing Machinery 32, no. 2 (April 1985): 374-382.
    Recommended
  • 17 · Atomic objects · [Lynch] Chapter 13 (sections 13.1 and 13.2).
    Recommended
  • 18 · Atomic snapshot algorithms. Atomic read/write register algorithms. · [Lynch] Chapter 13 (sections 13.3 and 13.4).
    Recommended
  • 19 · List algorithms: locking algorithms, optimistic algorithms, lock-free algorithms, lazy algorithms. · [Herlihy and Shavit] Chapter 9.
    Recommended
  • [Herlihy and Shavit] Chapter 18.
    Recommended
  • [Guerraoui and Kapalka] Chapters 1 to 4.
    Recommended
  • Herlihy, Maurice. “Wait-Free Synchronization.” ACM Transactions on Programming Languages and Systems 13, no. 1 (January 1991): 124-149.
    Recommended
  • [Attiya and Welch] Chapter 15.
    Recommended
  • 22 · Wait-free vs. f -fault-tolerant atomic objects. Boosting fault-tolerance.
    Recommended
  • Borowsky, Elizabeth, Eli Gafni, Nancy Lynch, and Sergio Rajsbaum. “The BG Distributed Simulation Algorithm.” Distributed Computing 14 (2001): 127-146.
    Recommended
  • Attie, Paul, Rachid Guerraoui, Petr Kouznetsov, Nancy Lynch, and Sergio Rajsbaum. “The Impossibility of Boosting Distributed Service Resilience.” Submitted for journal publication, September 2009.
    Recommended
  • Chandra, Tushar D., Vassos Hadzilacos, Prasad Jayanti, and Sam Toueg. “Generalized Irreducibility of Consensus and the Equivalence of t -Resilient and Wait-Free Implementations of Consensus.” SIAM Journal on Computing 34, no. 2 (2004): 333-357.
    Recommended
  • [Lynch] Chapter 17.
    Recommended
  • Lamport, Leslie. “The Part-Time Parliament.” ACM Transactions on Computer Systems 16, no. 2 (May 1998): 133-169. Also available as Research Report 49, Digital Equipment Corporation Systems Research Center, Palo Alto, CA, September 1989.
    Recommended
  • 24 · Self-stabilizing algorithms · [Dolev] Chapter 2.
    Recommended
  • [Lynch] Chapters 23 to 25.
    Recommended
  • [Attiya and Welch] Section 6.3 and chapter 13.
    Recommended
  • In each of the years 2000-2009, a prize has been awarded to a research paper that has had a strong impact on research in the area of distributed algorithms. The prize was originally called the “PODC Influential Paper Award.” After the death of Edsger Dijkstra, one of the pioneers of the field, in August 2002, the prize was renamed the “Dijkstra Prize.”
    Listed reading
  • Listed reading
  • Fischer, Michael J., Nancy A. Lynch, and Michael S. Paterson. “Impossibility of Distributed Consensus with One Faulty Process.” Journal of the Association for Computing Machinery 32, no. 2 (April 1985): 374-382.
    Listed reading
  • Dijkstra, Edsger W. “Self-Stabilizing Systems in Spite of Distributed Control.” Communications of the Association for Computing Machinery 17, no. 11 (November 1974): 643-644.
    Listed reading
  • Herlihy, Maurice. “Wait-Free Synchronization.” ACM Transactions on Programming Languages and Systems 13, no. 1 (January 1991): 124-149.
    Listed reading
  • Gallager, R. G., P. A. Humblet, and P. M. Spira. “A Distributed Algorithm for Minimum-Weight Spanning Trees.” ACM Transactions on Programming Languages and Systems 5, no. 1 (January 1983): 66-77.
    Listed reading
  • Listed reading
  • Mellor-Crummey, John M., and Michael L. Scott. “Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors.” ACM Transactions on Computer Systems 9, no. 1 (February 1991): 21-65.
    Listed reading
  • Dwork, Cynthia, Nancy Lynch, and Larry Stockmeyer. “Consensus in the Presence of Partial Synchrony.” Journal of the Association for Computing Machinery 35, no. 2 (April 1988): 288-323.
    Listed reading
  • Awerbuch, Baruch, and David Peleg. “Sparse Partitions.” Proceedings of the 31st Annual IEEE Symposium on Foundations of Computer Science, St. Louis, Missouri, October, 1990, pp. 503-513.
    Listed reading
  • Halpern, Joseph, and Yoram Moses. “Knowledge and Common Knowledge in a Distributed Environment.” Journal of the Association for Computing Machinery 37, no. 3 (July 1990): 549-587.
    Listed reading
  • Listed reading
  • Mattern, Friedemann. “Virtual Time and Global States of Distributed Systems.” In Parallel and Distributed Algorithms: Proceedings of the International Workshop on Parallel and Distributed Algorithms (Chateau de Bonas, Gers, France, October, 1988) . Edited by Michel Cosnard, et al. Amsterdam, The Netherlands: North Holland, 1989, 215-226. ISBN: 9780444873675. Reprint, Yang, Zhonghua, and T. Anthony Marsland, eds. “Virtual Time and Global States of Distributed Systems.” In Global States and Time in Distributed Systems . Los Alamitos, CA: IEEE Computer Society Press, 1994, pp. 123-133. ISBN: 9780818653001.
    Listed reading
  • Fidge, Colin. “Logical Time in Distributed Computing Systems.” IEEE Computer 24, no. 8 (August 1991): 28-33.
    Listed reading
  • Chaudhuri, Soma. “More Choices Allow More Faults : Set Consensus Problems in Totally Asynchronous Systems.” Information and Computation 105, no. 1 (July 1993): 132-158.
    Listed reading
  • The following paper and thesis chapter present a new, fundamental lower bound for the time required to achieve mutual exclusion.
    Listed reading
  • Fan, Rui, and Nancy Lynch. “An Ω*(n log n)* Lower Bound on the Cost of Mutual Exclusion.” Proceedings of the Twenty-Fifth Annual Symposium on Principles of Distributed Computing (PODC'06), Denver, Colorado, (July 22-26, 2006). Best Student Paper Award.
    Listed reading
  • Fan, Rui. “Mutual Exclusion.” Chapter 4 in Lower Bounds in Distributed Computing. PhD dissertation, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA, February 2008.
    Listed reading
  • Jayanti, Prasad. “Robust Wait-Free Hierarchies.” Journal of the Association for Computing Machinery 44, no. 4 (July 1997): 592-614.
    Listed reading
  • Chandra, Tushar D., Vassos Hadzilacos, Prasad Jayanti, and Sam Toueg. “Generalized Irreducibility of Consensus and the Equivalence of t -Resilient and Wait-Free Implementations of Consensus.” SIAM Journal on Computing 34, no. 2 (2004): 333-357.
    Listed reading
  • Borowsky, Elizabeth, Eli Gafni, Nancy Lynch, and Sergio Rajsbaum. “The BG Distributed Simulation Algorithm.” Distributed Computing 14 (2001): 127-146.
    Listed reading
  • Attie, Paul, Rachid Guerraoui, Petr Kouznetsov, Nancy Lynch, and Sergio Rajsbaum. “The Impossibility of Boosting Distributed Service Resilience.” Submitted for journal publication, September 2009.
    Listed reading
  • Chandra, Tushar Deepak, and Sam Toueg. “Unreliable Failure Detectors for Reliable Distributed Systems.” Journal of the Association for Computing Machinery 43, no. 2 (March 1996): 225-267.
    Listed reading
  • Lamport, Leslie. “The Part-Time Parliament.” ACM Transactions on Computer Systems 16, no. 2 (May 1998): 133-169. Also available as Research Report 49, Digital Equipment Corporation Systems Research Center, Palo Alto, CA, September 1989.
    Listed reading
  • Chandra, Tushar Deepak, Vassos Hadzilacos, and Sam Toueg. “The Weakest Failure Detector for Solving Consensus.” Journal of the Association for Computing Machinery 43, no. 4 (July 1996): 685-722.
    Listed reading
  • Guerraoui, Rachid, Maurice Herlihy, Petr Kouznetsov, Nancy Lynch, and Calvin Newport. “On the Weakest Failure Detector Ever.” Distributed Computing 21, no. 5 Special Issue (February 2009): 353-366.
    Listed reading
  • The brand-new Herlihy-Shavit textbook covers the principles of multiprocessor programming quite thoroughly:
    Listed reading
  • Herlihy, Maurice, and Nir Shavit. The Art of Multiprocessor Programming . Burlington, MA: Morgan Kaufmann, 2008. ISBN: 9780123705914.
    Listed reading
  • Magnussen, Peter, Anders Landin, and Erik Hagersten. “Queue Locks on Cache Coherent Multiprocessors.” Proceedings of the 8th International Symposium on Parallel Processing , 1994, pp. 165-171.
    Listed reading
  • Guerraoui, Rachid, and Michal Kapalka. Transactional Memory: The Theory . San Rafael, CA: Morgan and Claypool, 2010. ISBN: 9781608450114.
    Listed reading
  • Dolev, Shlomi. Self-Stabilization . Cambridge, MA: MIT Press, 2000. ISBN: 9780262041782.
    Listed reading
  • The Attiya-Welch book contains a chapter on basic clock synchronization algorithms:
    Listed reading
  • Attiya, Hagit, and Jennifer Welch. Distributed Computing: Fundamentals, Simulations, and Advanced Topics . 2nd ed. New York, NY: Wiley-Interscience, 2004. ISBN: 9780471453246.
    Listed reading
  • The following paper and thesis contain a lower bound on “gradient” clock synchronization. The thesis chapter is more up-to-date than the journal paper.
    Listed reading
  • Fan, Rui, and Nancy Lynch. “Gradient Clock Synchronization.” Distributed Computing 18, no. 4 (March 2006): 255-266.
    Listed reading
  • Fan, Rui. “Gradient Clock Lower Bound.” Chapter 2 in Lower Bounds in Distributed Computing . PhD dissertation, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA, February 2008.
    Listed reading
  • Kaynar, Disun, Nancy Lynch, Roberto Segala, and Frits Vaandrager. The Theory of Timed I/O Automata . 2nd ed. San Rafael, CA: Morgan and Claypool, 2010. ISBN: 9781608450022.
    Listed reading
  • Readings that cover the material for each class will be announced ahead of time. For most classes, these will be sections from the textbook. For some classes, they will be research papers from the supplementary reading list. Reading a research paper will generally take more time than reading sections from the textbook, so be prepared to put in the extra time. We expect students to read the assigned material ahead of time and to come to class prepared to discuss it.
    Listed reading

Prerequisites & course information

Same subject as 6.5250J Prereq: 6.1220[J] Acad Year 2027-2028: G (Fall) Acad Year 2028-2029: Not offered 3-0-9 units

Sources