MO441 - Computação Distribuída

(also MC964A)
1st Semester 2016
Mondays and Wednesdays, 14:00-16:00, room CC51/IC3

Prof. Ricardo Anido

Room37 - IC01

Program

In this course we will focus on a fundamental aspect of Distributed Computing: distributed algorithms. In general, distributed algorithms are more difficult to design, analyze, implement and debug than sequential algorithms. Today, they are used in a multitude of real systems, in a wide range of applications.

There exists a rich theory in distributed algorithms, comprising modelling the computing environment, types of problems, methods for analyzing correctness and complexity, and impossibility results (important because they prove that some problems cannot be solved in some models of distributed computing).

During the course we will study several classical problems, which involve communication, synchronization, resource management and consensus -- all important in solving the practical problems that arise when trying to solve some of the common jobs of today, be it indexing pages in the internet or writing collaborative tools for mobile devices.

Grading

Grades will be determined by a combination of four exams (one and half hours) and class participation. The weight of these will be

  • Exams (average of four exams): 95%
  • Class Participation: 5%

    Exams:

    Exams Results

    Doubts

    After classes, or any other time, if agreed by email (ranido at ic dot unicamp dot br)

    Bibliography

    We will use (mainly) material from:
    Distributed Computing -- Principles, Algorithms and Systems
    Ajay Kshemkalyani, Mukesh Singhal. Cambridge University Press, 2011.
    We will ocasionally use also material from:
    Distributed Algorithms
    Nancy Lynch, Morgan Kaufmann, 1996

    Lecture Slides (PDF)

    Chapter 1 -- Introduction: characterization of Distributed Computing
    Chapter 2 -- A model of distributed computations
    A simple synchronous model of distributed computations
    Example of a distributed algorithm in the synchronous model
    Chapter 3 -- Logical time, JorgeHongo_Matrix.pdf
    Clock synchronization
    Chapter 4 -- Global State and Snapshot Recording Algorithms
    Chapter 5 -- Terminology and Basic Algorithms
    Replication
    Chapter 6 -- Message Ordering and Group Communication
    Reliable Broadcast
    Chapter 9 -- Distributed Mutual Exclusion Algorithms
    Mutual Exclusion
    Commit
    Consensus with crash process failures (exponential), Synchronous Model
    Consensus with process failures, Synchronous Model
    Consensus with no Bizantine failures: Paxos algorithm
    Chapter 14 -- Distributed Consensus


    Modifyed 2016-03-23