Distributed Computing Laboratory DCL

Distributed Algorithms

Master course, Fall 2018

Prerequisites: none.

Note: this class includes a project which accounts for 40% of the final grade.


  • Uploaded project description (v1) and basic template.
  • Updated the slides (introduction) for the class on Monday 24/09.
  • Tuesday, September 18th is the first project consultation. This will be an introductory session with practical information, but no effective work on the project will be done.
  • DA 2018 page is online.


Dates and schedule

  • The course is given on Mondays, 15h-17h in CM1.
  • The exercise session are given on Mondays, 17h-18h BC01, BC2, BC3.
  • We present and discuss practical aspects for the projects on Tuesdays, 8h-11h in PO01 Polydomes.


  • Final exam date: TBD


  • Project description: da18_project.pdf
  • Template: Template files
  • FAQ:
    • Can we use multi-threading? Yes. However, only spawn threads (don't spawn child processes) from your process.
    • You can assume that a majority of processes are correct (e.g., we will not crash more than 2 out of 5 processes)

Teaching team


  • 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

  • We prepared a document describing the language used for module specification and implementation, the notion of layering, and the notion of process. (odt pdf)
  • A Latex sample for algorithm implementation can be found here: alg-sample.tex

Slides and exercises

Note that the slides will most likely be edited as the semester progresses, so make sure you have the latest version.

Lecture Slides Exercises
Introduction intro.pdf logic101.pdf
Reliable Broadcast rb.pdf ex02.pdf
Causal Broadcast cb.pdf ex03.pdf
Channels in Practice + Gossip channels-gossip.pdf ex04.pdfsol04.pdf
Total Order Broadcast tob.pdf ex05.pdf sol05.pdf
Consensus consensus.pdf ex06.pdf sol06.pdf
Shared Memory shared-memory.pdf ex07.pdf ex07-2.pdf
sol07.pdf sol07-2.pdf
ex08.pdf sol08.pdf
Atomic Commit nbac.pdf ex09.pdf sol09.pdf
Byzantine Generals problem
Midterm & previous year exams discussion

Information on exercises, grading, and exam

  • Usually, exercises are made available on the course webpage each Monday.
  • Exercises are not graded and do not count towards the final grade. However, solving them helps you better understand the course material and prepare for the final exam.
  • Solutions to exercises will be given during the exercise sessions one week later after the exercises were given. Also, solutions will be available on the course webpage one week later after the exercises were given.
  • The final exam is closed book: no materials are allowed.