CSC-7700 Distributed AlgoritHms and Systems
Department of Computer Science – Louisiana State university
Location: 112 Prescott, 5-8pm Tuesday
Instructor: Prof. Konstantin Busch
Office: Coates 286; office hours: Monday and Thursday 1:30-2:30pm
Recommended books:
1. Distributed Computing: Fundamentals, Simulations, and Advanced Topics; Second Edition; Hagit Attiya and Jennifer Welch, John Wiley and Sons, ISBN 0-471-45324-2
2. Distributed Algorithms; Nancy A. Lynch, Morgan Kaufmann, ISBN 1558603484.
3. The Art of Multiprocessor Programming; Maurice Herlihy and Nir Shavit, Morgan Kaufmann, ISBN 0123705916
4. Distributed Computing: A Locality-Sensitive Approach; David Peleg, SIAM, ISBN 0898714648.
Grading:
· Homeworks: 40%
· Paper Presentation: 30%
· Projects: 30%
Class 1 (8/23/2011): Introduction (intro.ppt)
Simple spanning trees (trees.ppt)
Reading: Chapters 1 & 2
Class 2 (8/30/2011): Mutual Exclusion 1 (mutex1.ppt)
Reading: Chapter 4
Class 3 (9/6/2011): Causality (causality.ppt)
Reading: Chapter 6
Class 4 (9/13/2011): Mutual Exclusion 2 (mutex2.ppt)
Reading: Chapter 4; MCS Paper
Class 5 (9/20/2011): Leader Election (leader.ppt)
Reading: Chapter 3
Class 6 (9/27/2011): Counting Networks (counting.ppt)
Reading: Counting Networks paper
Class 7 (10/4/2011): Minimum Weight Spanning Trees (mst.ppt)
Reading: MST paper
Class 8 (10/11/2011) Linearizable Executions (linearizable.ppt)
Reading: Chapter 9; Linearizable Counting Paper
Class 9 (10/18/2011) Maximal Independent Sets (mis.ppt)
Reading: MIS paper
Class 10 (10/25/2011) Consensus (consensus.ppt)
Reading: Chapter 5
Class 11 (11/1/2011) Coloring (coloring.ppt)
Reading: Coloring paper
Class 12 (11/8/2011) Consensus Hierarchy 1 (hierarchy1.ppt)
Reading: Chapter 15
Class 13 (11/22/2011) Consensus Hierarchy 2 (hierarchy2.ppt)
Reading: Chapter 15
Class 15 (11/29/2011) Student Presentations
Due Tuesday September 13.
1. Design a distributed asynchronous message passing algorithm which given a graph G with diameter D, it constructs a spanning tree T with depth at most D. Give bounds for the message and time complexity of your algorithm.
2. Is it possible to design a spanning tree construction algorithm which gives a tree with depth smaller than the diameter D?
Due Tuesday September 27.
1. Give a high level description of the pseudo-code used in the tournament mutual exclusion algorithm, which should include the entry and exit code for each thread.
2. In the tournament mutual exclusion algorithm, given n threads, how many pair-wise competitions are needed to be performed until every thread enters the critical section? (assume that each thread enters the critical section exactly once.)
Due Tuesday November 9.
1. Describe the asynchronous version of the O(n log n) leader election algorithm. Show that the message complexity is the same.
2. Explain in details the reasoning behind slide 71 on mst.ppt
Due Tuesday November 30.
1. Give a O(log n) time algorithm to color a planar graph with O(1) colors. Hint: note that the average degree of the nodes in a planar graph is a constant. Think of a sequential algorithm and then convert it to a concurrent algorithm.
For the projects you may form teams of 2 people. All projects are in Java. You can use the Oracle java jdk and netbeans bundle. There are many online tutorials for how to use java and spawn threads: tutorial1; tutorial2;
Due Tuesday October 4.
· Write in java a program that implements the bakery algorithm. You need to implement appropriately the entry code and the exit code of the algorithm. Assume you have n threads, where n is an input specified parameter. For the critical section assume that there is a shared variable C, and the critical section simply increments C by 1. Each thread repeatedly executes the critical section code.
Due Friday, December 2
· Implement a bitonic counting network in Java. Your input should be the number of wires in the counting network n, which is a power of 2. Each balancer is a shared variable (which is mutually exclusive). You should create a random set of tokens which traverses the counting network. Each token enters the counting network from a random input wire and at the end it gets a counter value at an output wire. Each token is implemented by a thread. Each balancer is a shared variable (which is mutually exclusive).
Each student will give a 15 minutes presentation in class. Please pick a paper of your interest from distributed computing conferences and journals (e.g PODC, DISC, SPAA, DC, TPDS). Use the link in Moodle to provide the title and link to your paper choice.