Course title: MA651: Distributed Algorithms [3-0-0-6] Instructor: Partha Sarathi Mandal[TEL: 2624, E-mail: psm] Department of Mathematics, Indian Institute of Technology Guwahati Semester: Jan - May '22 Lecture Time: Wednesday, Thursday, Friday: 4:00-4:55 PM Class Room: Teams (online) Contents: Click Here Exams & Marking: Pop Quizzes* + Term Paper + viva voce + Midsem + Endsem
Class & policy: Minimum 75% attendance in class is must as per institute rule.
* Pop Quiz is a short test given in a class by the instructor, without prior announcement.
Texts:
- S. Ghosh, Distributed Systems: An Algorithmic Approach, 2nd Edition (Indian Reprint), CRC Press, 2015.
- David Peleg, Distributed Computing: A Locality-Sensitive Approach, SIAM Monographys on Discrete Mathematics and Applications, 2000.
- N. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996.
References:
- M. V. Steen, A. Tanenbaum: Distributed Systems, 3rd Edition, Pearson 2017.
- H. Attiya and J. Welch. Distributed Computing: Fundamentals, Simulations, and Advanced Topics, Second Edition, Wiley, 2006.
- G. Tel, Introduction to Distributed Algorithms, Cambridge University Press 2000.
- A. Kshemkalyani, M. Singhal, Distributed Computing: Principles, Algorithms, and Systems, Cambridge University Press, 2007.
- V. K. Garg, Elements of Distributed Computing, Wiley & Sons, 2002.
Announcement:
- Lecture note for some of the topics is available here
Lecture Notes: __________________________________________________________________________________ Week 1 Lecture Notes 1 [Introduction to Distributed Systems] [Ref. 1, chapters 1 & 2] [Lecture Video] Lecture Notes 2 [contd. Introduction] [Ref. 1, chapters 1 & 2] [Lecture Video] Lecture Notes 3 [Models] [Ref. 1, chapter 3] [Lecture Video] Week 2 Lecture Notes 4 [Model of communication] [Ref. 1, chapter 3] [Lecture Video] Lecture Notes 5 [Model of Communication contd.] [Ref. 1, chapter 3] [Lecture Video] Week 3 Lecture Notes 6 [Complexity Measures of Distributed Algorithms] [Ref. 1, chapter 3] [Lecture Video] Lecture Notes 7 [Syntax & semantics, Atomicity, Non-determinism] [Ref. 1, chapter 4] [Lecture Video] Week 4 Lecture Notes 8 [Contd. Atomicity, Fairness, Scheduler] [Ref. 1, chapter 4] [Lecture Video] Lecture Notes 9 [Program correctness] [Ref. 1, chapter 5] [Lecture Video] Week 5 Lecture Notes 10 [Program correctness contd.] [Ref. 1, chapter 5] [Lecture Video] Lecture Notes 11 [Time in a Distributed System: Logical Clocks, Causal Ordering and Vector Clocks] [Ref. 1, chapter 6] [Paper] [Lecture Video] Lecture Notes 12 [Distributed Snapshot and Global State Collection] [Ref. 1, chapter 8] [Paper] [Lecture Video] Week 6 Lecture Notes 13 [Distributed Snapshot (Chandy Lamport Algorithm) contd.] [Ref. 1, chapter 8] [Lecture Video] Week 7 Lecture Notes 14 [Clock Synchronization] [Ref. 1, chapter 6] [Paper] [Lecture Video] Lecture Notes 15 [Distributed Mutual Exclusion] [Ref. 1, chapter 7] [Lecture Video] Lecture Notes 16 [Distributed Mutual Exclusion Contd.] [Ref. 1, chapter 7] [Lecture Video] Week 8 Lecture Notes 17 [Leader Election] [Ref. 1, chapter 11] [Lecture Video] Lecture Notes 18 [Leader Election contd.] [Ref. 1, chapter 11] [Lecture Video] Lecture Notes 19 [Termination Detection] [Ref. 1, chapter 9] [Lecture Video] Week 9 Lecture Notes 20 [Distributed Deadlock Detection] [Ref. 1, chapter 9] [Lecture Video] Lecture Notes 21 [Graph Algorithms: single source shortest path, Distance Vector Routing, Link State Routing] [Ref. 1, chapter 10] [Shortest Path by Chandy and Misra] [Lecture Video] Week 10 Lecture Notes 22 [Interval Routing, Prefix Routing] [Ref. 1, chapter 10] Lecture Notes 23 [Distributed spanning tree, Graph traversal] [Ref. 1, chapter 10] Lecture Notes 24 [Distributed MST construction] [Ref. 1, chapter 10] [MST by GHS] Week 11 Lecture Notes 25 [Distributed graph coloring] [Ref. 1, chapter 10] Lecture Notes 26 [Coloring Tree in log*(n) time] [Ref. 1, chapter 10, Ref. 2, Chapter 7] Lecture Notes 27 [Coloring Tree contd. Finding Maximal Independent Set (MIS) using Coloring] [Ref. 1, Chapter 10, Ref. 2, Chapter 8] Week 12 Lecture Notes 28 [Randomized algorithm to find MIS] [Ref. 1, Chapter 10, Ref. 2, Chapter 8] Lecture Notes 29 [Matching and Colouring using solution of MIS] [Ref. 1, chapter 10, Ref. 2, Chapter 8] Lecture Notes 30 [Faults and Classification of Faults] [Ref. 1, Chapter 12] Lecture Notes 31 [Failure detection and Fault-tolerance] [Ref. 1, Chapter 12] Week 13 Lecture Notes 32 [Self-Stabilization] [Ref. 1, chapter 17] [Dijkstra 1974] Lecture Notes 33 [Distributed Consensus and Byzantine General Problem] [Ref. 3, Chapter 5 and 6, Ref. 1, Chapter 13] [FLP 85] [Byzantine] Lecture Notes 34 [The Paxos algorithm for distributed consensus] [Ref. 1, Chapter 13] [Paxos Made Simple]