Distributed Algorithms (CS-451)
Master course, Fall 2023
Prerequisites: none.
Distributed algorithms are fundamental and ubiquitous in the modern computing landscape. In essence, these algorithms enable computing over several machines, in a local IP-like network, a cloud or in a P2P network. Failures are common and computations need to proceed despite partial failures of machines or communication links. This course will cover the foundations of reliable distributed computing with an emphasis on broadcast and agreement algorithms. The following video discusses the main topics investigated in the course.
Main topics of the course
Reliable channels, Failure detectors, Reliable broadcast, Causal broadcast, Total order broadcast, Consensus, Terminating reliable broadcast, Atomic commit, Virtual synchrony, Byzantine agreement, Blockchain, Distributed machine learning
Moodle
The course page is available on Moodle. We encourage students to register on Moodle, in order to get all the course announcements by email. Furthermore, students can use Moodle to ask questions about the exercise sessions and/or the project. All course updates will be posted exclusively on Moodle.
Slides from the course (2024)
Introduction: PDF
Reliable Broadcast: PDF
Causal Broadcast: PDF
Total Order Broadcast: PDF
Consensus: PDF
Consensus with Byzantine failures and asynchrony (by Pierre Civit): PDF
Terminating Reliable Broadcast: PDF
Distributed Systems Non-Blocking Atomic Commit: PDF
Group Membership and View Synchronous Communication: PDF
Byzantine-Robustness in Federated Learning (by Rafael Pinot & Nirupam Gupta): PDF
Proof-of-Work Blockchain Systems (by Matej Pavlovic): PDF
Old Algorithms for New Problems (by Adi Seredinschi) : PDF
Textbook
- Rachid Guerraoui and Luis Rodrigues - Introduction to Reliable Distributed Programming, available at 'La Fontaine' (with a student discount) or at amazon.de.
- Christian Cachin, Rachid Guerraoui and Luis Rodrigues - Introduction to Reliable and Secure Distributed Programming
Additional Material
- A Latex sample for algorithm implementation can be found here: alg-sample.tex
Previous year recordings (2020)
Warning! Some of those videos might be outdated! Following them instead of the actual lectures is at your own risk.
Lecture | Slides | Exercises | ||
---|---|---|---|---|
Introduction | Intro.pdf, video | Logic101.pdf, Gossip.pdf, video | ||
Reliable Broadcast | Reliable Broadcast.pdf, video | Reliable Broadcast.pdf, video | ||
Causal Broadcast | Causal Broadcast.pdf, video | Causal Broadcast.pdf, video | ||
Total Order Broadcast | Total Order Broadcast.pdf, video | Total Order Broadcast.pdf, video | ||
Consensus | Consensus.pdf, video | Consensus.pdf, Consensus (part 2).pdf, video | ||
NBAC & TRB | NBAC.pdf, TRB.pdf, video | NBAC&TRB.pdf, video | ||
Group Membership & View Synchronous Communication | Group Membership&View Synchronous Communication.pdf, video | GM&VSC.pdf, video | ||
Shared Memory | Shared Memory.pdf, video | Shared Memory.pdf, video, | ||
Demystifying Bitcoin | Demystifying Bitcoin.pdf, video | No exercises yet | ||
Planetary Scale Systems | Planetary Scale Systems.pdf | No exercises yet | ||
Distributed Machine Learning | Distributed Machien Learning.pdf | No exercises yet | ||
Byzantine Fault Tolerance | No lecture slides yet | No exercises yet |
Invited lectures (2020)
Lecture | Slides | |
---|---|---|
Byzantine Fault Tolerance and Blockchains (By Dr. Marko Vukolić, IBM Research Zurich) | BFT-and-Blockchains.pptx, video | |
Building the Internet Computer: A glimpse into an ambitious adventure (by Yvonne-Anne Pignolet, DFINITY) | pdf, video | |
Beyond Blockchains (by Adi Seredinschi, Informal Systems) | pdf, video (start at 0:47:40) | |
Real-Time Distributed Algorithms (by David Kozhaya, ABB) | pptx | |
Architecture trade-offs in a planet-scale queueing system (by Manos Karpathiotakis, Facebook) | ||