Synchronous Message-Passing.
As noted, the material is organized rst by timing
model. The simplest mo del (i.e., the one with the least uncertainty) is the
synchronous
model, in which all the processes take steps in synchronous rounds. The shared-memory
version of this mo del is the PRAM. Since it is studied in other courses, we shall skip this
sub ject, and start with synchronous networks.
We spend the rst twoweeks or so of the course on problems in synchronous networks
that are typical of the distributed setting. In the network setting wehave the processors
at the no des of a graph
G
,communicating with their neighbors via messages in the edges.
We start with a simple toy example, involving
ring computation
. The problem is to elect a
unique leader in a simple network of pro cessors, which are assumed to be identical except for
Unique Identiers (UID's). The uncertainty is that the size of network, and the set of ID's
of processors, are unknown (although it is known that the UID's are indeed unique). The
main application for this problem is a token ring, where there is a single token circulating,
and sometimes it it necessary to regenerate a lost token. We shall see some details of the
modeling, and some typical complexity measures will be studied. For example, we shall
show upper and lower bounds for the time and the amount of communication (i.e., number
of messages) required. We shall also study some other problems in this simple setting.
Next, we'll go through a brief survey of some proto cols in more general networks. We
shall see some proto cols used in unknown synchronous networks of processes to solve some
basic problems like nding shortest paths, dening a minimum spanning tree, computing a
maximal indep endent set, etc.
Then we turn to the problem of
reaching consensus
. This refers to the problem of
reaching agreement on some abstract fact, where there are initial dierences of opinion.
The uncertainty here stems not only from dierent initial opinions, but also from
processor
failures
.We consider failures of dierenttypes: stopping, where a processor suddenly stops
executing its local protocol omission, where messages may be lost en route and Byzantine,
where a faulty pro cessor is completely unrestricted. This has b een an active research area
in the past few years, and there are manyinteresting results, so we shall spend a couple of
lectures on this problem. We shall see some interesting b ounds on the number of tolerable
faults, time, and communication.
Asynchronous Shared Memory.
After \warming up" with synchronous algorithms (in
which there is only a little uncertainty), wemoveinto the more characteristic (and possibly
more interesting) part of the course, on
asynchronous
algorithms. Here, processors are no
longer assumed to take steps in lo ck-step synchrony, but rather can interleave their steps in
arbitrary order, with no b ound on individual pro cess speeds. Typically,the interactions with
the external world (i.e., input/output) are ongoing, rather than just initial input and nal
17