CSC-7700 Distributed AlgoritHms and Systems

Department of Computer Science – Louisiana State university

Course INFO

 

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%

 

Slides

 

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

HomeworkS

Homework 1

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?

 

Homework 2

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.)

Homework 3

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

Homework 4

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.

Projects

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;

Project 1

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.

Project 2

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).

PrESENTATION

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.