Distributed Algorithms

Master course, Fall 2014

Prerequisites: none.

Note: this course is independent from the course Concurrent Algorithms.


News

Last updated: February 20, 2015, 10:05

  • Published grade distributions and project winners.
  • Added final exam for download.
  • Added information on the final exam and on the Q&A session.
  • Added tenth week's solutions.
  • Bonus project assignment updated! 2 modifications: 1) removed the the single-threaded constraint and 2) added assumption of a correct majority of processes.
  • New slides uploaded.
  • Deadline for the bonus project extended until Sunday, January 11, 2015.
  • Added section “Bonus project”
  • Added ninth week's solutions and tenth week's exercises.
  • Added slides for Byzantine fault tolerance.
  • Added eight week's solutions and ninth week's exercises.
  • Added seventh week's solutions and eight week's exercises.
  • Added sixth week's solutions and seventh week's exercises.
  • Updated slides for group membership and terminating reliable broadcast
  • Exceptionally, on Wednesday, November 5th, office hours of Matej Pavlovic and Cheng Wang will take place between 13:00 and 14:00.
  • Exercise sheet 6 updated to clarify exercise 1.
  • Added fifth week's solutions and sixth week's exercises.
  • Updated slides for non-blocking atomic commit.
  • Corrected a mistake in the midterm solution. (Question 2, property TOB5)
  • Added Fifth week's exercises
  • Midterm from 2012 with solution is available. Note, however, that the grading scheme changed since 2012 and so did the form of the midterm.
  • Added fourth week's solutions
  • Added fourth week's exercises and third week's solutions.
  • Published midterm organization
  • Added two additional problems to third week's exercises.
  • Added third week's exercises and second week's solutions.
  • Updated slides for causal and total order broadcast.
  • Fixed midterm date: 20.10.2014
  • Corrected solutions to first exercise session.
  • Added second week's exercises and first week's solutions.
  • Updated slides for second lecture
  • Created page for DA 2014.

Dates and schedule

  • The course is given on Mondays, 15:15−17:00, in ELA01.
  • The exercises are given on Mondays, 17:15-18:00, in BC01 & BC03.
  • The midterm will take place on Monday, October 20th 2014, 15:15-17:00, in ELA01 and PO01 (see below).
  • A Q&A session for students preparing for the exam will take place on Monday, January 12th 2015, at 15:15 in BC 01 (room of the exercises).
  • The final exam will take place on Friday, 16.01.2015, from 14:00 to 17:00

Q&A Session

To help students prepare for the final exam, there will be a Q&A session on Monday, January 12th 2015, at 15:15 in BC 01 (room of the exercises). Any course-related questions will be answered by the assistants.


Final exam

When

The final exam will take place on Friday, 16.01.2015, from 14:00 to 17:00

Where

The final exam will take place in three rooms concurrently: CO1, CO2, and CO3. The assignment is based on your last name:

  • If your last name starts with A-G, you are in CO1.
  • If your last name starts with H-P, you are in CO2.
  • If your last name starts with R-Z, you are in CO3.

What

The questions of the exam will cover all topics covered by the lectures, except the lecture on BFT (Byzantine generals, PBFT).

Grade distributions

Exam grade distribution Final grade distribution


Bonus project

The bonus project is optional. The task is to implement Uniform Reliable Broadcast using message passing. 5 best solutions will be awarded a bonus of 0.5 grade point on top of the final course grade. Further details are provided in the Project description.

Downloads

Project description

Template files

Deadline and submission

All project files (as required by the project description) need to be submitted by e-mail to matej.pavlovic@epfl.ch before the start of the Christmas break until Sunday, January 11, 2015, 23:59.

Winners

Five best submissions, the authors of which were awarded a final grade improvement of 0.5:

  • 244269
  • 203447
  • 244587
  • 233424
  • 245651

Midterm

When

The midterm will take place on Monday, October 20th 2014 between 15:15 and 17:00.

Where

The midterm will take place in two rooms concurrently: ELA01 (where the weekly lectures take place) and PO01 (Polydome). The assignment is based on your last name:

  • If your last name starts with A-G, you are in ELA01.
  • If your last name starts with H-Z, you are in PO01.

Results

You can find your midterm grade here: 2014 midterm grades.

The distribution of grades is the following (only people who did not show up received 0 points): 2014 grade distribution


Teaching team

  • Lecturers:
    • Prof. Rachid Guerraoui, office INR 310, web page
  • Teaching Assistants:
    • Cheng Wang, office INR 313, web page, office hours: Wednesdays 10:00 - 11:00 or any time by appointment
    • Matthaios Olma, office BC 240, web page, office hours: Thursday 10:00 - 11:00 or any time by appointment
    • Matej Pavlovic, office INR 314, web page, office hours: Wednesdays 10:00 - 11:00 or any time by appointment

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

  • We prepared a document describing the language used for module specification and implementation, the notion of layering, and the notion of process. (odt pdf)

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 pdf (new) ex01 sol01
Introduction / Reliable broadcast pdf (new) ex02 sol02
Reliable broadcast
Causal Broadcast pdf (new) ex03 (new) sol03
Total Order Broadcast pdf (new) ex04 sol04
Consensus pdf ex05 sol05
Non-Blocking Atomic Commit pdf (new) ex06 (new) sol06
Group Membership, View Synchrony
Terminating Reliable Broadcast
pdf (new)
pdf (new)
ex07 sol07
Shared Memory (regular registers) pdf#1
pdf#2
ex08 sol08_1 sol08_2
Shared Memory (atomic registers) pdf#3
pdf#4
ex09 sol09
Byzantine fault tolerance pdf#1
pdf#2
Self-stabilization (intro) pdf ex10 sol10
Self-stabilization (spanning tree) pdf ex11 sol11
Population protocols pdf
Population protocols (Presburger) pdf ex12 sol12 (question 3 corrected)
Midterm midterm 2012 midterm 2014
Final exam da12_final da12_final_solution
da14_final

Information on exercises, grading, and exam

  • 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.
  • There will be a midterm in the second half of the semester. It is not mandatory, but it may improve the final grade (see below).
  • The final grade will be calculated using the formula max( 1/3*<midterm> + 2/3*<final> , <final> ), where <midterm> and <final> are the results of the midterm and the final exam, respectively. The final exam and the midterm will be written and closed-book.