Broadly speaking, a distributed computing system is a set of
computers that collectively solve a problem. This encompasses environments
ranging from a tightly coupled multiprocessor and wide area networks connecting
computers over large distances, to even a system on a multicore chip.
Such systems are finding increasing use in
todays applications including cloud computing, distributed databases,
the smart grid, sensor networks, autonomous robot swarms
and elements of the Internet.
However, factors like asynchrony that come with a system consisting of
many independent computers make distributed computing quite challenging.
The possibility of failure or malicious behavior of some computers in
the system further complicates
the task.
This course will study some these issues in distributed computing
through models, algorithms and bounds, with an emphasis on fundamental
problems.
Text:
Distributed Algorithms: An Intuitive Approach,
by Wan Fokkink, MIT Press, 2013.
Distributed Computing,
by H. Attiya and J. Welch, 2nd edition, Wiley Interscience, 2004.
Papers from current literature
Prerequisites: Basic ideas in algorithm design and analysis
Tentative Topics: basic models and complexity measures, leader election, mutual exclusion, consensus, fault-tolerance, broadcast and multicast, causality, synchonization, simulations among models, applications.
Phone: (225) 578-5238
Fax: (225) 578-5200
E-mail: