Principles of Distributed Computing (FS 2019)
Course catalogue • Previous year • PODC lecture collection
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 and Mohsen Ghaffari, Wednesdays 8-10 in CAB G 11
- Exercises organized by Darya Melnyk (for Prof. Wattenhofer's part), and Sebastian Brandt, Manuela Fischer, and Julian Portmann (for Prof. Ghaffari's part)
News
- February 27, 2019: Lecture notes, Algorithm 1.17 has been updated.
- February 28, 2019: Dates for the first graded homework assignment have been announced.
- March 15, 2019: The first graded homework assignment is available on the moodle course homepage.
- April 18, 2019: The second graded homework assignment is available on the moodle course homepage.
- April 18, 2019: Corrections of the first homework assignment are available on the moodle course homepage.
- May 20, 2019: Information about the Q&A session has been updated
- May 29, 2019: Corrections of the second homework assignment are now available on the moodle course homepage.
- May 31, 2019: Information about the exam has been added
- May 31, 2019: Page 2 in the "Labeling Schemes" lecture notes has been updated. Besides minor adjustments, a new theorem (13.3) has been added which reflects a discussion in the lecture.
Exam
- The exam will take place on Monday, August 12, from 9am to 12am .
- You are allowed to bring any written material you like (lecture notes, books, personal notes,...), but no electronic devices whatsoever (no calculator, phone, laptop, headphones,...).
- Unlike in the past years, this exam will last 3 hours and consist of 180 points.
- Here are some old exams from previous years: 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2016, 2017, 2018.
- Please be aware that the topics covered in this course have changed several times over the years. Therefore, some questions in these exams don't match the content of this year's course.
Exam preparation
The following parts of the lecture notes have not been covered in the lecture and are therefore not relevant for the exam:- Chapter 7: Read/Write Caching (Algorithm 7.7 and Theorem 7.8) is not relevant.
- Chapter 8: From Section 8.3 (Counting Networks), only the basic definitions are relevant.
Q&A Session
We will have a Q&A session on July 15, tentatively 14:00 to 18:00. The details, including location, will be announced later. Please use this form to submit your questions by July 10. Your questions should be as concrete as possible. Questions of the type "please re-explain lecture 7" will not be addressed in this Q&A session. We will collect all your questions on July 10, and cluster them based on the topic. Then, in the Q&A session on July 15, we will go over the questions according to the number of students who asked about a particular topic.Graded Homework Assignment
We will have two graded homework assignments (compulsory continuous performance assessment). Each graded homework assignment will account for 10% of the final grade, the main exam will be 80% of the final grade.Second Graded Homework Assignment
Corrections of the second graded assignment are now available in moodle. You will find the grading table in the homework description.Lecture Material
Chapter Title | Lecturer | Lecture Notes | Exercises | Responsible Assistant | Additional Material |
---|---|---|---|---|---|
Chapter 0 Introduction 20.02.2019 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
[peleg] Preface, Chapter 1 | ||
Chapter 1 Vertex Coloring 20.02.2019 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
Pankaj | [peleg] Chapter 7 Slides by S.Schmid, TU Berlin |
Chapter 2 Tree Algorithms 27.02.2019 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
Darya | [peleg] Chapter 3-5 [hkpru] Chapter 7 Slides by S.Schmid, TU Berlin |
Chapter 3 Coloring General Graphs 06.03.2019 |
Mohsen Ghaffari | Sections 1.4.1 & 1.4.2 of these notes | Exercises Solutions |
Sebastian | |
Chapter 4 Lower Bounds for Coloring 13.03.2019 |
Mohsen Ghaffari | Sections 1.2.2 of these notes | Exercises Solutions |
Sebastian | |
Chapter 5 Maximal Independent Set 20.03.2019 |
Mohsen Ghaffari | Sections 1.6 of these notes | Exercises Solutions |
Sebastian | |
Chapter 6 Network Decomposition 27.03.2019 |
Mohsen Ghaffari | Sections 1.5.1 & 1.5.3 of these notes | Exercises Solutions |
Julian | |
Chapter 7 Shared Objects 03.04.2019 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
András | Slides by S.Schmid, TU Berlin |
Chapter 8 Distributed Sorting 10.04.2019 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
Zeta | [leighton] Chapter 1.6 & 3.5 [clr] Chapter 28 Slides by S.Schmid, TU Berlin |
Chapter 9 Global Problems 1 17.04.2019 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
Aryaz | Slides some additional Slides Animation of APSP Algorithm by Jukka Suomela |
Chapter 10 Global Problems 2: Minimum Spanning Tree 08.05.2019 |
Mohsen Ghaffari | Exercises Solutions |
Julian | ||
Chapter 11 Global Problems 3: Minimum Cut 15.05.2019 |
Mohsen Ghaffari | Exercises Solutions |
Julian | ||
Chapter 12 Distributed Computing via All-to-All Communication 22.05.2019 |
Mohsen Ghaffari | Exercises |
Manuela | ||
Chapter 13 Labeling Schemes 29.05.2019 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
Jakub |
References
These books are available at CS text book collection.
[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 |