DISTRIBUTED ALGORITHMS
COMP 575
Instructor
Prof. C. Tropper
McConnell Hall, room 112N
Office hours: Monday, Wednesday 12:00-1:30
Teaching assistant
Arash Nourian,arash.nourian@mail.mcgill.ca
Trottier 3130 (office hours)
Office hour: Wednesday, 12:30-1:30
e-mail: arash.nourian@mail.mcgill.ca
Course Description and Outlinei
With the development of high-speed networks and ever-faster
microprocessors
our approach to computation is undergoing an evolution towards
a distributed model. In this model, we make use of message passing
between
processors,
This evolution is not without a price however;
we can no longer rely upon a a global view of the computation, as
global variables are not available. Hence we need to re-visit
basic questions such as how to detect the termination of a computation
and how to obtain a global snapshot of the computation (so we can
de-bug our programs, for example). In this course, we attempt to
cover fundamental paradigms in distributed algorithms
along with several of the proof techniques which have
evolved for establishing correctness.
The course will have an implementation flavor, as several projects
are required (see below). These projects are intended to acquaint the
student with the pitfalls (and pleasures) of programming
distributed algorithms. Assignments of a theoretical nature,
intended to help students develop an appreciation for the
techniques of proof appropriate for establishing correctness
will be required as well. We will read a collection of original
papers, collected in the form of a course pack, which is available
in the bookstore. The outline for the topics in the course follows.
1. Time in distributed systems.
2. Leader election algorithms, mutual exclusion algorithms.
3. Termination detection algorithms
4. Deadlock detection algorithms
5. Global snapshots and applications (global virtual time, checkpoints
in distributed databases,..)
6. Garbage collection algorithms
7. Fault tolerance
8. Proof techniques for distributed algorithms
9. How processes learn
Papers for course
The papers which we will read for this course may be
downloaded from 575 papers
MPI references
Here are a list of tutorials on mpi which should be of some help.
Course Project Page
project