## Modern Distributed Computing

### Elective in Computer Networks II

### (A. A. 2012/2013)

### Syllabus

Distributed computing is essential in modern computing and communications systems. Examples are large-scale networks such as the Internet, low-power hand multiprocessors such as your new multi-core smartphone and tiny scale smart embedded devices distributed in our cities. Designing, engineering, deploying and operating current and future systems requires an understanding of the fundamental and practical aspects of distributed computation.

The course presents fundamental results of theoretical computer science establishing a solid basis on what is computational feasible, and providing essential algorithmic ideas and lower bound techniques.

The course is organized in the following parts:

- Part 1:
*Static Synchronous Networks*: Synchronous Message-passing Model, Definitions, Anonymous Leader Election, Impossibility Results, Symmetry Breaking Algorithms, Probabilistic Algorithms, Leader Election Algorithms, Broadcast, Convergecast, Lower Bounds. - Part 2:
*Failures*: Link failures, Node failures, Impossibility Results, Agreement, Byzantine Failures, Failures in Asynchronous Systems. - Part 3:
*Static Asynchronous Networks*: I/O Automata Model, Distributed Data Structures, Time, Clocks and Ordering of Events, Synchronizers, Global Predicates, Termination Detection. - Part 4:
*Dynamic Synchronous Networks*: Dynamic Graph Model, Causal Influence, T-interval connectivity, Instantaneous Connectivity, Possibly Connected, Anonymous Networks, Unknown Networks, Counting, Naming. - Part 5:
*Stabilization*: Definitions, Mutual Exclusion, Breadth First Search, Power Supply Technique.

### Material

#### Slides

- Lecture 1: Tuesday, March 5, 2013. Lecture Slides in PDF
- Lecture 2: Tuesday, March 12, 2013. Lecture Slides in PDF
- Lecture 3: Tuesday, March 19, 2013. Lecture Slides in PDF
- Lecture 4: Tuesday, March 26, 2013. Lecture Slides in PDF
- Lecture 5: Tuesday, April 9, 2013. Lecture Slides in PDF
- Lecture 6: Tuesday, April 16, 2013. Lecture Slides in PDF
- Lecture 7: Tuesday, April 23, 2013. Lecture Slides in PDF
- Lecture 8: Tuesday, April 30, 2013. Lecture Slides in PDF
- Lecture 9: Tuesday, May 7, 2013. Lecture Slides in PDF
- Lecture 10: Tuesday, May 14, 2013. Lecture Slides in PDF
- Lecture 11: Tuesday, May 21, 2013. Lecture Slides in PDF

#### References

- Nancy A. Lynch, "Distributed Algorithms", Morgan Kaufmann Publishers, Inc., ISBN 1558603484 (a previous version of the material presented in the book is also available here)
- Hagit Attiya and Jennifer Welch, "Distributed Computing Fundamentals, Simulations, and Advanced Topics", McGraw-Hill Publishing Company, ISBN 0471453242
- Shlomi Dolev, "Self-Stabilization", The MIT Press, ISBN 0262041782
- O.Michail, I.Chatzigiannakis and P.Spirakis: New Models for Population Protocols. Synthesis Lectures on Distributed Computing Theory, edited by N.Lynch, Morgan & Claypool Publishers, ISBN 1608455890
- A.D. Kshemkalyani, M. Singhal, Distributed Computing: Principles, Algorithms, and Systems, Cambridge University Press, ISBN: 9780521189842