Principles of Distributed Computing (FS 2014)
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.
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 52 and Wednesday 13.15-15.00 @ LFW E 13
The exam will take place on Saturday, August 16 from 9am to 11am @ HIL F61
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.
You can take a look at your corrected exam on Wednesday, the 17th of September, and on Monday, the 22nd of September. To do so, please visit our secretary Friederike Brütsch(office ETZ G88) on one of these days from from 9:30am to 11am or 12:30pm to 3pm.
Lecture material
Title | Lecture Notes | Exercises | Responsible Assistant | Additional Material | ||
Chapter 0 Introduction |
PDF 1:1 PDF 2:1 |
|
||||
Chapter 1 Vertex Coloring |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Philipp Brandes |
|
||
Chapter 2 Leader Election |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Pascal Bissig |
|
||
Chapter 3 Tree Algorithms |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Pascal Bissig |
|
||
Chapter 4 Distributed Sorting |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Stephan Kollmann |
|
||
Chapter 5 Shared Memory |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Jara Uitto |
|
||
Chapter 6 Shared Objects |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Sebastian Brandt |
|
||
Chapter 7 Maximal Independent Set |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Tobias Langner |
|
||
Chapter 8 Locality Lower Bounds |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Klaus-Tycho Förster |
|
||
Chapter 9 Social Networks |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Michael König |
|
||
Chapter 10 Synchronizers |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Jochen Seidel |
|
||
Chapter 11 Hard Problems |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Sebastian Brandt |
|
||
Chapter 12 Wireless Protocols |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Philipp Brandes |
|
||
Chapter 13 Stabilization |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Barbara Keller |
|
||
Chapter 14 Peer-to-Peer Computing |
PDF 1:1 PDF 2:1 |
Exercises Solutions |
Michael König |
|
||
References
[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 |