Study of distributed algorithms that are designed to run on networked processors and useful in a variety of applications., such as telecommunications, information processing, and real-time process control. Specific algorithms studied include leader election, distributed consensus, mutual exclusion, resource allocation, and stable property detection. Both asynchronous and synchronous systems will be covered and fault tolerance will be the major theme. Algorithms will be analyzed for complexity and proofs of corrections will be studied.
- Analyze the time and message complexity of distributed algorithms.
- Create solutions to commonly occurring distributed system problems.
- Demonstrate expertise in reading peer-reviewed papers in distributed algorithms and explain them in writing.
- Understand correctness proofs of distributed algorithms.
- Apply distributed algorithms to solve practical problems in distributed systems.
- Model distributed systems appropriately: as asynchronous, synchronous, or partially synchronous.
- Take into account fault tolerance issues in the design of distributed algorithms.