|1||Course overview. Synchronous networks. Leader election in synchronous ring networks.||[Lynch] Chapters 1 and 2, sections 3.1 to 3.5.|
|2||Leader election in rings. Basic computational tasks in general synchronous networks: leader election. Breadth-first search. Broadcast and convergecast. Shortest paths.||[Lynch] Section 3.6, and sections 4.1 to 4.3.|
|3||Spanning trees. Shortest paths (Bellman-Ford). Minimum spanning trees. Maximal independent sets (summary).||[Lynch] Sections 4.3 to 4.5 (skip 4.5.3).|
|4||Fault-tolerant consensus. Link failures: the two generals problem. Process failures (stopping, Byzantine). Algorithms for agreement with stopping and Byzantine failures. Exponential information gathering.||[Lynch] Sections 5.1 and 6.1 to 6.3.|
|5||Number-of-processor bounds for Byzantine agreement. Weak Byzantine agreement. Time bounds for consensus problems.|| |
[Lynch] Sections 6.4 to 6.7.
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.
Keidar, Idit, and Sergio Rajsbaum. "A Simple Proof of the Uniform Consensus Synchronous Lower Bound." Information Processing Letters 85, no. 1 (January 2003): 47-52.
|6||k-set-agreement. Approximate agreement. Distributed commit.||[Lynch] Chapter 7.|
|7||Asynchronous distributed computing. Formal modeling of asynchronous systems using interacting state machines (I/O automata). Proving correctness of distributed algorithms.||[Lynch] Chapter 8.|
|8||Non-fault-tolerant algorithms for asynchronous networks. Leader election, breadth-first search, shortest paths, broadcast and convergecast.||[Lynch] Chapters 14 and 15.|
|9||Spanning trees. Gallager et al. minimum spanning trees.|| |
[Lynch] Sections 15.3 to 15.5.
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.
|10||Synchronizers. Synchronizer applications. Synchronous vs. asynchronous distributed systems.||[Lynch] Chapter 16.|
|11||Time, clocks, and the ordering of events. State-machine simulation. Vector timestamps.|| |
[Lynch] Chapter 18.
Lamport, Leslie. "Time, Clocks, and the Ordering of Events in a Distributed System." Communications of the Association for Computing Machinery 21, no. 7 (July 1978): 558-565. (PDF)
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.
|12||Stable property detection. Distributed termination. Global snapshots. Deadlock detection.||[Lynch] Chapter 19.|
|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.|
|14||More mutual exclusion algorithms. Bounds on shared memory for mutual exclusion. Resource allocation. The Dining Philosophers problem.||[Lynch] Sections 10.6 to 10.8, and 10.9.|
|15||Shared-memory multiprocessors. Contention, caching, locality. Practical mutual exclusion algorithms. Reading/writing locks.|| |
[Herlihy and Shavit] Chapter 7.
[Lynch] Chapter 11.
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.
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.
|16||Impossibility of consensus in asynchronous, fault-prone, shared-memory systems.|| |
[Lynch] Chapters 11 and 12.
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.
|17||Atomic objects|| |
[Lynch] Chapter 13 (sections 13.1 and 13.2).
|18||Atomic snapshot algorithms. Atomic read/write register algorithms.||[Lynch] Chapter 13 (sections 13.3 and 13.4).|
|19||List algorithms: locking algorithms, optimistic algorithms, lock-free algorithms, lazy algorithms.||[Herlihy and Shavit] Chapter 9.|
|20||Transactional memory: obstruction-free and lock-based implementations.|| |
[Herlihy and Shavit] Chapter 18.
[Guerraoui and Kapalka] Chapters 1 to 4.
|21||Wait-free computability. The wait-free consensus hierarchy.|| |
Herlihy, Maurice. "Wait-Free Synchronization." ACM Transactions on Programming Languages and Systems 13, no. 1 (January 1991): 124-149.
[Attiya and Welch] Chapter 15.
|22||Wait-free vs. f-fault-tolerant atomic objects. Boosting fault-tolerance.|| |
Borowsky, Elizabeth, Eli Gafni, Nancy Lynch, and Sergio Rajsbaum. "The BG Distributed Simulation Algorithm." Distributed Computing 14 (2001): 127-146.
Attie, Paul, Rachid Guerraoui, Petr Kouznetsov, Nancy Lynch, and Sergio Rajsbaum. "The Impossibility of Boosting Distributed Service Resilience." Submitted for journal publication, September 2009.
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.
|23||Asynchronous network model vs. asynchronous shared-memory model. Impossibility of consensus in asynchronous networks. Failure detectors and consensus. Paxos consensus algorithm.|| |
[Lynch] Chapter 17.
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.
|24||Self-stabilizing algorithms||[Dolev] Chapter 2.|
|25||Timing-based systems. Modeling and verification. Timing-based algorithms for mutual exclusion and consensus. Clock synchronization.|| |
[Lynch] Chapters 23 to 25.
[Attiya and Welch] Section 6.3 and chapter 13.