Theory of Distributed Computing

Fall 2014

Office: Lassonde Building, room 3042

Email: [my last name] @cse.yorku.ca

Telephone: (416) 736-2100 ext. 33979

Facsimile: (416) 736-5872

Lectures: Mondays and Wednesday 11:30-13:00 in room 0009 of the Technology Enhanced Learning (TEL) Building

Office Hours: Mondays 13:30-14:30 and Thursdays 14:30-15:30 in my office, or by appointment, or just drop by when I'm in.

Usually, the best way to contact me is by email. Please use your cse account when sending me email, and start your subject line with "[6117]". Send messages in plain text, without attachments.

- (Oct 22) The deadline for assignment 6 is moved to November 3.
- (Oct 10) For assignment 5, before answering part (b), it might be helpful to think about whether or not the problem is solvable for the special case of n=3 and f=1. (Can you come up with an algorithm for this special case or prove that this special case is unsolvable?)
- (Oct 2) For assignment 4, question 2: every process should output the xor of all the input bits, and you can assume that there are no failures. The algorithm you design in part (b) should be deterministic.
- (Sep 26) There was a typo on assignment 3: "how may" should be "how many".

- shared-memory and message-passing models of distributed systems,
- mutual exclusion,
- agreement problems (consensus, leader-election, Byzantine agreement, approximate agreement),
- broadcast and multicast algorithms,
- impossibility results and lower bounds,
- the consensus hierarchy,
- implementing shared data structures,
- randomization in distributed computing,
- self-stabilization, and
- a theoretical model for mobile computing.

Marking scheme

Homework exercises | 80% |

Class presentation | 20% |

The presentation will be a 25-minute talk summarizing the results of a research paper on the theory of distributed computing that you find in the literature. We will have some checkpoints along the way before the presentations. (More information on this to come.) Good places to look for a paper include PODC or DISC conference proceedings or the journal Distributed Computing. This survey paper has a bibliography containing lots of papers that would be suitable to choose. If you have a topic in mind, I might be able to help you find a good paper if you come talk to me.

Important Dates

First class | September 8 |

Thanksgiving (university closed) | October 13 |

Co-curricular days (no lectures) | October 29 to November 2 |

Last class | December 3 |

The references below are intended for students who want to read more about the topics discussed in class. Sometimes the readings might be helpful for the assignments. Sometimes they will extend the ideas covered in lectures.

- September 8: Introduction describing what the course is about. Two Generals problem. (See these notes from an earlier year.)
- September 10: Dijkstra's mutual exclusion algorithm. [Dij65], some notes
- September 15: Modelling distributed systems. [LL90]
- September 17: I/O Automata. [Lyn96, chapter 8]
- September 22: Flooding to achieve broadcasting and building a spanning tree [AW04, Chapter 2.2-2.3 or Lyn96, Chapter 15.3 or San06, Chapter 1.5, 2.1]
- September 24: Distributed MST algorithm [GHS83 or Lyn96, Chapter 15.5]
- September 29: Leader Election [AW04, chapter 3]
- October 1,6: Byzantine Agreement [AW04, chapter 5.2][Lynch96, chapter 6].
- October 8: Synchronous consensus with halting failures [AW04, chapter 5.1]
- October 15: Time lower bound on synchronous consensus with f halting failures [AW04, chapter 5.1]
- October 20: sequential specifications, linearizability, implementing swsr registers from message passing [HW90, ABD95 and these notes].
- October 22: swmr registers from swsr registers, sw snapshot objects. [AW04, chapter 10.2-10.3; AADGMS93]
- October 27: mwmr registers from sw snapshots. mw snapshots.
- November 3: implementing counters from registers, impossibility of implementing fetch&inc counters from registers. For this and subsequent lectures, you can refer to these slides
- November 5: Wait-free consensus [FLP85, AW04 Section 5.3.1]
- November 10: Wait-free consensus continued [Her91]
- November 12: Universal construction [Her91]
- November 17: Non-blocking data structures: stack [Tre86, HS08 chapter 11], BST [EFRV10]
- November 19: Bakery algorithm for mutual exclusion [Lam74, Lyn96 chap 10.7]
- November 24: A brief introduction to population protocols [survey article]. Presentation by Amir on Fault-tolerant gathering algorithms for autonomous mobile robots by Agmon and Peleg
- November 26: Presentations:
- December 1:
- Mehrnaz: A protocol for implementing byzantine storage in churn-prone distributed systems by Baldoni, Bonomi and Soltani Nezhad
- Mihai: Fast and unconditionally secure anonymous channels by Garay et al.
- Rostislav: Skip graphs by Aspnes and Shah

- Dec 3:
- Qiyi: A lazy concurrent list-based set algorithm by Heller et al., and the follow up paper Formal verification of a lazy concurrent list-based set algorithm by Colvin et al.
- Nasim: Scalable atomic visibility with RAMP transactions by Bailis et al.
- Johannes: Of malicious motes and suspicious sensors: on the efficiency of malicious interference in wireless networks by Gilbert, Guerraoui and Newport

- [AW04] Hagit Attiya and Jennifer Welch.
*Distributed Computing: Fundamentals, Simulations and Advanced Topics, 2nd edition*. Wiley, 2004. - [GR06] Rachid Guerraoui and Luís Rodrigues.
*Introduction to Reliable Distributed Programming.*Springer, 2006. - [HS08] Maurice Herlihy and Nir Shavit.
*The Art of Multiprocessor Programming*. Morgan Kaufmann, 2008 - [Lyn96] Nancy A. Lynch.
*Distributed Algorithms*. Morgan Kaufmann, 1996. - [San06] Nicola Santoro.
*Design and Analysis of Distributed Algorithms*. Wiley, 2006. - [Tau06] Gadi Taubenfeld.
*Synchronization Algorithms and Concurrent Programming*. Pearson Education, 2006.

- [AADGMS93] Yehuda Afek, Hagit Attiya, Danny Dolev, Eli Gafni, Michael Merritt and Nir Shavit. Atomic snapshots of shared memory.
*J. of the ACM*, 40(4), pages 873-890, September 1993. - [Ang80] D. Angluin. Local and global properties in networks of processors. In
*Proc. 12th ACM Symposium on Theory of Computing*, pages 82-93, 1980. - [AADFP06] Dana Angluin, James Aspnes, Zoë Diamadi, Michael J. Fischer and René Peralta. Computation in networks of passively mobile finite-state sensors.
*Distributed Computing*, 18(4), pages 235-253, 2006. - [ABD95] Hagit Attiya, Amotz Bar-Noy and Danny Dolev, Sharing memory robustly in message-passing systems.
*J. of the ACM*, 42, p124-142, 1995. - [ABDPR90] Hagit Attiya, Amotz Bar-Noy, Danny Dolev, David Peleg and Rüdiger Reischuk. Renaming in an asynchronous environment.
*J. of the ACM*, 37(3), pages 524-548, July 1990. - [AGPV90] Baruch Awerbuch, Oded Goldreich, David Peleg and Ronen Vainish. A trade-off between information and communication in broadcast protocols.
*J. of the ACM*, 37(2), pages 238-256, April 1990. - [BG93] P. Berman and J. Garay. Cloture votes: n/4-resilient distributed consensus in t+1 rounds.
*Mathematical Systems Theory*26(1), pages 3-19, 1993. - [BW01] Saâd Biaz and Jennifer L. Welch. Closed form bounds for clock synchronization under simple uncertainty assumptions.
*Information Processing Letters*, 80, pages 151-157, 2001. - [Dij65] E. W. Dijkstra. Solution of a problem in concurrent programming control .
*Communications of the ACM*, 8(9), page 569, September, 1965. A very early paper on mutual exclusion. - [Dij74] Edsger W. Dijkstra. Self-stabilizing systems in spite of distributed control.
*Communications of the ACM*, 17(4), pages 643-644, November 1974. - [DM90] Cynthia Dwork and Yoram Moses. Knowledge and common knowledge in a Byzantine environment: Crash failures.
*Information and Computation*, 88(2), pages 156-186, October 1990. - [EFR08] Faith Ellen, Panagiota Fatourou and Eric Ruppert. The space complexity of unbounded timestamps.
*Distributed Computing*, 21(2), pages 103-115, 2008. - [EFRV10] Faith Ellen, Panagiota Fatourou, Eric Ruppert and Franck van Breugel. Non-blocking Binary Search Trees. In
*Proc. 29th ACM Symposium on Principles of Distributed Computing*, pages 131-140, 2010. - [FR03] Faith Fich and Eric Ruppert. Hundreds of impossibility results for distributed computing. In
*Distributed Computing*, 16(2-3), pages 121-163, 2003. - [FLP85] Michael J. Fischer, Nancy A. Lynch and Michael S. Paterson. Impossibility of distributed consensus with one faulty process.
*Journal of the ACM*, 32(2), pages 374-382, April 1985. - [GHS83] R. G. Gallager, P. A. Humblet and P. M. Spira. A distributed algorithm for minimum-weight spanning trees.
*ACM Transactions on Programming Languages and System Sciences*, 5(1), pages 66-77, 1983. - [HMM85] Joseph Y. Halpern, Nimrod Megiddo and Ashfaq A. Munshi. Optimal precision in the presence of uncertainty.
*Journal of Complexity*, 1, pages 170-196, 1985. - [Her91] Maurice Herlihy. Wait-free synchronization.
*ACM Transactions on Programming Languages and Systems*, 13(1), pages 124-149, January 1991. - [HR95] Maurice Herlihy and Sergio Rajsbaum. Algebraic topology and distributed computing: A primer. In
*Computer Science Today: Recent Trends and Developments*, pages 203-217. Springer, 1995. - [HS99] Maurice Herlihy and Nir Shavit. The topological structure of asynchronous computability.
*Journal of the ACM*, 46(6), pages 858-923, November 1999. - [HW90] Maurice P. Herlihy and Jeannette M. Wing. Linearizability: A correctness condition for concurrent objects.
*ACM Transactions on Programming Languages and Systems*, 12(3), pages 463-492, July 1990. - [Lam74] Leslie Lamport. A new solution of Dijkstra's concurrent programming problem.
*Communications of the ACM*, 18(8), pages 453-455, August 1974. - [LL90] Leslie Lamport and Nancy Lynch. Distributed Computing: Models and methods. In
*Handbook of Theoretical Computer Science*, Volume B, Chapter 18, Elsevier, 1990. (On reserve in Steacie Library.) A good, brief introduction to the area. It describes aspects of distributed models and surveys some important early results. - [LM85] Leslie Lamport and P. M. Melliar-Smith. Synchronizing clocks in the presence of faults.
*J. of the ACM*, 32(1), pages 52-78, 1985. - [MA94] Mark Moir and James H. Anderson. Fast, Long-Lived Renaming. In
*Proc. of the 8th International Workshop on Distributed Algorithms*, pages 141-155, 1994. (There have been several better versions of adaptive renaming algorithms published afterwards, but I just want to cover the most basic version of the splitter algorithm. See Mark Moir's page for some of the improvements.) - [Tau04] Gadi Taubenfeld. The black-white bakery algorithm and related bounded-space, adaptive, local-spinning and FIFO algorithms. In
*Distributed Computing, 18th International Conference*, pages 56-70, 2004. - [Tre86] R.K. Treiber. Systems programming: Coping with parallelism. Tech report RJ5118, IBM Almaden Research Center, 1986.

- The ACM Symposium on Principles of Distributed Computing (PODC) and the International Symposium on Distributed Computing. These are the main conferences for the theory of distributed computing.

*This page was last updated on November 24, 2014
*