- title:
- Principles of Distributed Computing
Fondements du calcul distribué - manager:
- Carole Delporte
- ects:
- 3
- period:
- 1
- hours:
- 24
- weeks:
- 8
- hours-per-week:
- 3
- language:
- English and French
- lang:
- track:
- A
- themes:
- Parallel/Distributed Algo., Complexity, Algorithms
- number:
- 2.18.2
- year:
- 2024, 2025
- [podc]
- Principles of Distributed Computing
Fondements du calcul distribué
- Language:
- Period:
- 1.
- Duration:
- 24h (3h/week).
- ECTS:
- 3.
- Manager:
- Carole Delporte.
Enseignants pour l'année 2025-26 / Teachers in charge for 2025-26
- Jeremy Ledent (IRIF, Université Paris Cité)
- Lelia Blin (IRIF, Université Paris Cité)
Sommaire / Summary
Distributed computing concerns designing and understanding algorithms for sets of independent computing units that have to communicate to coordinate their activities. The problem space of distributed computing is vast and it would be impossible to undertake an exhaustive study within a single course. Even a small-scale distributed system may expose an amazingly complex behavior that would make it very challenging to formally reason about. But we have to meet the challenge! Due to inherent limitations of centralized computing, all computing systems nowadays is becoming distributed, ranging from Internet-scale services to multiprocessors. Therefore, understanding the principles of distribution and concurrency is indispensable in all aspects of designing and engineering modern computing systems. The main challenge here is to balance correctness of the system's executions with its availability and efficiency, in the presence of possible misbehavior of the system components and the environment (such as faults and asynchrony).
This course discusses how to design distributed algorithms, reason about their correctness, and derive matching complexity bounds. The primary focus of the module is on understanding of the foundations of distributed computing. This course focuses on the models in which computing units communicate through a shared memory. The related course 2.18.1 deals with distributed algorithms for synchronous networks.
Langue/Language
Lectures are given in French and/or in English.
Contenu/Contents
Tuesday, starting from 16/09/2024, 12h45-15h45, Bat. Sophie Germain, Room 1004.
In a first part, we discuss semantics of concurrent programs to prove correctness or impossibility results
- Linearizability: definition and examples
- Proofs of linearizability, Locality theorem
- Variants of linearizability
- Asynchronous computability theorem for 2 processes
- Modeling n-process computability with simplicial complexes
- Impossibility of k-set agreement
In a second part, we discuss of the self stabilizing approach to tolerates failures
- Introduction to self-stabilization: faults, models, schedulers
- Dijkstra's Token ring algorithm
- Self-stabilizing algorithms for coloration
- Self-stabilizing Tree construction
- Unisson
- Self-stabilizing Leader election (mutual exclusion)
Planning prévisionnel/Preliminary schedule
16/09/2025 | Linearizability: definition and examples | ||
23/09/2025 | Linearizability: locality theorem, progress conditions | ||
30/09/2025 | Asynchronous computability theorem for 2 processes | ||
7/10/2025 | Simplicial complexes and k-set agreement | ||
14/10/2025 | Introduction to self-stabilization, Dijkstra's Token ring algorithm | PDF, PDF | |
28/10/2025 | Self-stabilizing Tree construction | ||
04/11/2025 | Unisson | ||
11/11/2025 | Férié | ||
18/11/2025 | Self-stabilizing Leader election (mutual exclusion) | ||
Contrôle des connaissances/ knowledge control
Examen final
Pré-requis / Prerequisites
None, though some maturity in mathematical reasoning and algorithms is expected.
Livres conseillés / Literature
* Karine Altisen, Stéphane Devismes, Swan Dubois, Franck Petit: Introduction to Distributed Self-Stabilizing Algorithms. Synthesis Lectures on Distributed Computing Theory, Morgan & Claypool Publishers 2019
* Hagit Attiya and Jennifer Welch. Distributed Computing: Fundamentals, Simulations, and Advanced Topics. John Wiley and Sons, Inc.
* Shlomi Dolev: Self-Stabilization. MIT Press 2000, ISBN 0-262-04178-2
* R. Guerraoui and P. Kuznetsov. Algorithms for concurrent systems. PPUR, 2019
* Maurice Herlihy and Nir Shavit (Victor Luchangco, Michael Spear). The art of multiprocessor programming. Morgan Kaufmann 2008 (2020).
* M. Herlihy, D. Kozlov, S. Rajsbaum: Distributed Computing Through Combinatorial Topology Morgan Kaufman 2013.
* Michel Raynal: Concurrent Programming: Algorithms, Principles, and Foundation Springer
* Michel Raynal: Concurrent Programming Crash-prone Shared Memory Systems: A Few Theoretical NotionsMorgan & Claypool
Liste cohérentes de cours sur la thématique " Algorithmes et complexité" / Related Courses
* 2-11-2 Randomness in Complexity * 2-12-1 Techniques in Cryptography and Cryptanalysis * 2-13-2 Error correcting codes and applications to cryptography * 2-18-1 Distributed algorithms on networks * 2-18-2 Distributed algorithms on shared memory * 2-24-1 Algorithms and uncertainty * 2-29-1 Theory of practical graph algorithms * 2-34-1 Quantum information
Equipe pédagogique
* Lelia Blin (Professeure, IRIF, Université Paris Cité)
* Jeremy Ledent (IRIF, Université Paris Cité)
* Carole Delporte (Professeur, IRIF, Université Paris Cite)