Distributed Computing
ETH Zurich

Principles of Distributed Computing (FS 2012)

This page is no longer maintained. Up-to-date versions of lecture and exercise material can be found here.

Distributed computing is essential in modern computing and communications systems. Examples are on the one hand large-scale networks such as the Internet, and on the other hand multiprocessors such as your new multi-core laptop. This course introduces the principles of distributed computing, emphasizing the fundamental issues underlying the design of distributed systems and networks: communication, coordination, fault-tolerance, locality, parallelism, self-organization, symmetry breaking, synchronization, uncertainty. We explore essential algorithmic ideas and lower bound techniques, basically the "pearls" of distributed computing. We will cover a fresh topic every week.

You can take a look at your corrected exam starting from the 3rd of September until the 21st of September. To do so, please visit our secretary Tanja Lantz (office ETZ G88) on Monday, Tuesday, or Friday mornings.

Course pre-requisites: Interest in algorithmic problems. (No particular course needed.)

Course language: English.

Lecture by Roger Wattenhofer, Wednesday 8.15-10.00 @ CAB G 51.

Exercises organized by Philipp Brandes, Wednesday 10.15-12.00 @ CAB G 56.

Reading Assignment. A reading assignment (PDF) complements the course. The content covered in the assignment will be part of the exam.

Testat. For the students whose exam question did not meet our criteria, we are offering a third and last chance.
Your task is to create an exam question including a solution for one of the topics. See here for detailed information.

29.05.2012: Revised versions of chapters 10, 11 and 13 are online.

Sample exams: 2003, 2004, 2005, 2006, 2007, 2009
Please note that the topics covered in this course change from year to year and thus some of the questions in those exams are not covered this year.

Lecture material


Title Lecture Notes Exercises Responsible Assistant References

Chapter 0
Introduction
PDF 1:1
PDF 2:1
[peleg] Preface, Chapter 1
  •  

Chapter 1
Vertex Coloring
PDF 1:1
PDF 2:1
Exercises
Solutions
Philipp Brandes
[peleg] Chapter 7
Slides by S.Schmid, TU Berlin
  •  

Chapter 2
Leader Election
PDF 1:1
PDF 2:1
Exercises
Solutions
Philipp Brandes
[aw] Chapter 3
[hkpru] Chapter 8
Slides by S.Schmid, TU Berlin
  •  

Chapter 3
Tree Algorithms
PDF 1:1
PDF 2:1
Exercises
Solutions
Klaus-Tycho Förster
[peleg] Chapter 3-5
[hkpru] Chapter 7
Slides by S.Schmid, TU Berlin
  •  

Chapter 4
Distributed Sorting
PDF 1:1
PDF 2:1
Exercises
Solutions
Jochen Seidel
[leighton] Chapter 1.6 & 3.5
[clr] Chapter 28
  •  

Chapter 5
Shared Memory
PDF 1:1
PDF 2:1
Exercises
Solutions
Stephan Holzer
[aw] Chapter 4
  •  

Chapter 6
Shared Objects
PDF 1:1
PDF 2:1
Exercises
Solutions
Jara Uitto
  •  

Chapter 7
Maximal Independent Set
PDF 1:1
PDF 2:1
Exercises
Solutions
Stephan Holzer
[peleg] Chapter 8
Slides by R. Wattenhofer
Slides by S.Schmid, TU Berlin
  •  

Chapter 8
Locality Lower Bounds
PDF 1:1
PDF 2:1
Exercises
Solutions
Klaus-Tycho Förster
[peleg] Chapter 7.5
Slides by S.Schmid, TU Berlin
Ramsey Theory Slides by J. Suomela
Alternative Version thanks!
  •  

Chapter 9
Social Networks
PDF 1:1
PDF 2:1
Exercises
Solutions
Philipp Brandes
Slides by S.Schmid, TU Berlin
  •  

Chapter 10
Synchronizers
PDF 1:1
PDF 2:1
Exercises
Solutions
Jara Uitto
[peleg] Chapter 6 & 25
[aw] Chapter 11
  •  

Chapter 11
Hard Problems
PDF 1:1
PDF 2:1
Exercises
Solutions
Stephan Holzer
Slides some additional Slides
  •  

Chapter 12
Stabilization
PDF 1:1
PDF 2:1
Exercises
Solutions
Barbara Keller
  •  

Chapter 13
Wireless Protocols
PDF 1:1
PDF 2:1
Exercises
Solutions
Philipp Brandes
  •  

Chapter 14
Peer-to-Peer Computing
PDF 1:1
PDF 2:1
Exercises
Solutions
Klaus-Tycho Förster
[peleg] Chapter 7
Slides by S.Schmid, TU Berlin
Slides from a talk at P2P
  •  

All Chapters
Principles of Distributed Computing
PDF 1:1
PDF 2:1


References

Books:

[peleg] Distributed Computing: A Locality-Sensitive Approach
David Peleg.
Society for Industrial and Applied Mathematics (SIAM), 2000, ISBN 0-89871-464-8
[aw] Distributed Computing: Fundamentals, Simulations and Advanced Topics
Hagit Attiya, Jennifer Welch.
McGraw-Hill Publishing, 1998, ISBN 0-07-709352 6
[hkpru] Dissemination of Information in Communication Networks
Juraj Hromkovic, Ralf Klasing, Andrzej Pelc, Peter Ruzicka, Walter Unger.
Springer-Verlag, Berlin Heidelberg, 2005, ISBN 3-540-00846-2
[leighton] Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes
Frank Thomson Leighton.
Morgan Kaufmann Publishers Inc., San Francisco, CA, 1991, ISBN 1-55860-117-1
[clr] Introduction to Algorithms
Thomas Cormen, Charles Leiserson, Ronald Rivest.
The MIT Press, 1998, ISBN 0-262-53091-0 oder 0-262-03141-8

Articles chapter by chapter:

Chapter 0: Introduction

Chapter 1: Vertex Coloring

Chapter 2: Leader Election

Chapter 3: Tree Algorithms

Chapter 4: Distributed Sorting

Chapter 5: Shared Memory

Chapter 6: Shared Objects

Chapter 7: Maximal Independent Set

Chapter 8: Locality Lower Bounds

Chapter 9: Social Networks

Chapter 10: Synchronizers

Chapter 11: Hard Problems

Chapter 12: Stabilization

Chapter 13: Wireless Protocols

Chapter 14: Peer-to-Peer Computing