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:
- E1: 30/3 (Wednesday)
- E2: 27/4 (Wednesday)
- E3: 23/5 (Monday)
- E4: 27/6 (Monday)
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