Principles of Distributed Computing (FS 2020)
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 online.
-
Exercises organized by Darya Melnyk and Pál András Papp (for Prof. Wattenhofer's part),
and Manuela Fischer, Julian Portmann, and Václav Rozhoň (for Prof. Ghaffari's part)
- Exercise A: Wednesdays 13-15 online.
- Exercise B: Wednesdays 15-17 online.
- Both exercise sessions offer identical content. Please visit the exercise session which better fits your personal schedule.
News
- March 05, 2020: Dates for the first graded homework assignment have been announced.
- March 11, 2020: The first graded homework assignment is available on the moodle course homepage.
- March 12, 2020: We've set up a discussion forum on the moodle course homepage.
- April 07, 2020: All future lectures and exercise classes will be held online. Recorded videos can be accessed through the moodle course homepage. You are welcome to ask questions about the course in the discussion forum.
- April 08, 2020: The first graded homework assignment has been corrected. The results are available on the moodle course homepage.
- April 09, 2020: Dates for the second graded homework assignment have been announced.
- April 29, 2020: The second graded homework assignment is available on the moodle course homepage.
- June 25, 2020: Information about the exam has been added.
- June 28, 2020: Updated solutions for lecture 12.
- July 22, 2020: Information about the exam and the Q&A session has been updated.
Exam
- The exam will take place on Thursday, August 13, from 3pm to 6pm in HIL F 15.
- 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,...).
- Like last year, 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(with solutions), 2018(with solutions), 2019(with solutions).
- 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 are going to host a question & answer session where you can ask questions about the lecture and exercises.- The Q&A session will take place on Friday, August 7, from 2pm to 5pm over Zoom.
- Please use this form to submit your questions by July 31. 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.
- Alternatively, you can discuss your questions with your colleagues in the moodle forum.
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.
First Graded Homework Assignment
Corrections of the first graded assignment are now available in moodle. You will find the grading table in the homework description.
Second Graded Homework Assignment
Corrections of the second graded assignment are available in moodle. You will find the grading table in the homework description.
Discussion Forum
We have set up a discussion forum on the moodle course homepage. You can use this forum to ask questions about the homework assignment as well as questions about the lecture. As this is a discussion forum, feel free to also answer the questions of your colleagues.Lecture Material
Chapter Title | Lecturer | Lecture Notes | Exercises | Responsible Assistant | Additional Material |
---|---|---|---|---|---|
Chapter 0 Introduction 19.02.2020 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
[peleg] Preface, Chapter 1 | ||
Chapter 1 Vertex Coloring 19.02.2020 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 | Exercises Solutions |
Henri | [peleg] Chapter 7 Slides by S.Schmid, TU Berlin |
Chapter 2 Tree Algorithms 26.02.2020 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 | Exercises Solutions |
Ye | [peleg] Chapter 3-5 [hkpru] Chapter 7 Slides by S.Schmid, TU Berlin |
Chapter 3 Coloring General Graphs 04.03.2020 |
Mohsen Ghaffari | Sections 1.4.1 & 1.4.2 of these notes | Exercises Solutions |
Vaclav | |
Chapter 4 Locality-Based Lower Bounds 11.03.2020 |
Mohsen Ghaffari | Section 1.2.2 of these notes | Exercises Solutions |
Vaclav | |
Chapter 5 Maximal Independent Set 18.03.2020 |
Mohsen Ghaffari | Sections 1.6 of these notes | Exercises Solutions |
Vaclav | |
Chapter 6 Network Decomposition 25.03.2020 |
Mohsen Ghaffari | Sections 1.5.1 & 1.5.4 of these notes | Exercises Solutions |
Vaclav | |
Chapter 7 Shared Objects 01.04.2020 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
Pankaj | Slides by S.Schmid, TU Berlin Video recordings of the lecture: Part 1 and Part 2 |
Chapter 8 Distributed Sorting 08.04.2020 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions Bonus Exercise |
Zeta | [leighton] Chapter 1.6 & 3.5 [clr] Chapter 28 Slides by S.Schmid, TU Berlin Video recordings of the lecture: Part 1 and Part 2 |
Chapter 9 Global Problems 1 22.04.2020 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
Béni | Slides some additional Slides Animation of APSP Algorithm by Jukka Suomela Video recordings of the lecture: Part 1 and Part 2 |
Chapter 10 Global Problems 2: Minimum Spanning Tree 29.04.2020 |
Mohsen Ghaffari | Section 2.2 of these notes | Exercises Solutions |
Julian | |
Chapter 11 Global Problems 3: Minimum Cut 06.05.2020 |
Mohsen Ghaffari | Section 2.3 of these notes | Exercises Solutions |
Julian | |
Chapter 12 Distributed Computing via All-to-All Communication 13.05.2020 |
Mohsen Ghaffari | Sections 3.1 and 3.2 of these notes | Exercises Solutions |
Julian | |
Chapter 13 Wireless Protocols 20.05.2020 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
András | Video recording of the lecture |
Chapter 14 Labeling Schemes 27.05.2020 |
Roger Wattenhofer | PDF 1:1 PDF 2:1 |
Exercises Solutions |
Jakub | Video recording of the lecture |
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 |