CSS 434: Parallel and Distributed Computing
Winter 2010

MW 330-535pm at UW2-141

Prof. Munehiro Fukuda


Professor:

Munehiro Fukuda <mfukuda@u.washington.edu>, room UW1-331, phone 352-3459, office hours: MW 220-320pm

Course Description:

This course introduces the concepts and design of distributed computing systems. Topics covered include message passing, remote procedure calls, process management, migration, mobile agents, distributed coordination, distributed shared memory, distributed file systems, fault tolerance, and grid computing.

The first five weeks focus on the basic mechanism and the Java programming techniques for message passing, process management, and migration. We will use Java sockets, MPI: Message Passing Interface, Java RMI, and UWAgent: a Java-based mobile agent system the professor and his former CSS students have designed. The last five weeks discuss advanced topics, where the instructor will overview each topic; each student will review a topic-related research paper; and all of us will be involved in group discussions on those papers.

Four programming assignments are given: (1) A chat server design with Java sockets, (2) A parallel-computing application programming with MPI Java, (3) A functional/performance comaprison between Java RMI and UWAgent, and (4) A distributed file system implementation using Java RMI. A lab session is planned for each of the first three assignments to get familiar with sockets, MPI, and mobile agents.

Prerequisites:

CSS343.

Work Load and Grading:

Course Work Percentage Achievements Approximately Corresponding Numeric Grade
Program 1 7% 90s 3.5 - 4.0
Program 2 11% 80s 2.5 - 3.4
Program 3 7% 70s 1.5 - 2.4
Program 4 15% 60s 0.7 - 1.4
Paper Review 12%
Midterm Exam 20%
Final Exam 20%
Discussions 5%
Lab. Work 3%

Textbooks:

75% of the lecture covers the following textbook, while the rest focuses on some advanced topics such as MPI, mobile agents, and some research-oriented topics. To help your understanding, I recommend you should buy this textbook.
  1. Distributed Systems: Concepts and Design,, 4th Edition, George Coulouris, Jean Dollimore and Tim Kindberg, Addison-Wesley Publishers, 2005

References:

Some Programming Textbooks:

The following books and manuals are useful for system, network, and MPI programming.

Policies:

All programming assignments and a paper review are to be done independently. Any collaboration of work will result in severe penalty. You may discuss the problem statement and any clarification with each other, but any actual work to be turned in, must be done without collaboration.

Any homework is due at the beginning of class on the due date. The submission may be postponed only in emergencies such as accidents, sickness, sudden business trips, and family emergencies, in which case you may turn in yor homework late with a written proof. No make-up exams will be given except under exceptional circumstances. Barring emergencies, I must be informed before the exam.

To request academic accommodations due to a disability, please contact Disabled Student Services (DSS) in Bothell Library Annex Building, Room 106, (email: dss@uwb.edu, TDD: 425-352-5303, and FAX: 425-352-5455). If you have a documented disability on file with the DSS office, please have your DSS counselor contact me and we can discuss accommodations.

Course Goals:

The overall goal of CSS 434, "Parallel and Distributed Computing" includes: To strengthen your understanding of fundamental concepts, you are recommended to solve the problems that are given on the final page of each lecture slide, (while some of them will be solved in class discussions.). To review research papers, you must visit the library, search for them, and get prepared for presenting your paper review with the power point. Finally, you need to work in the Linux laboratory, (UW1-320) for testing and evaluating the performance of your distributed program. Therefore, as with most technical courses, besides ability and motivation, it takes time to learn and master the subject. Expect to spend an additional 10 to 15 hours a week outside of class time on the average.

Assignments:

This is a research-flavored course. Each assignment specificaiton only gives you a topic and a guideline in order to work on the assignment. The answer and the quality of assignment work just depend on your enthusiuasm for assignment work. Therefore, there are no specific key answers.
  1. Program 1 (pdf, word): learns how to use Java-based TCP communication through a design of chat client and server program.
  2. Program 2 (pdf, word): exercises how to write a parallel-computing application using MPI Java.
  3. Program 3 (pdf, word): compares RMI and mobile agenets in terms of programmability and performance. Click here to download the UWAgent manual.
  4. Program 4 (pdf, word): designs and implements a very simple distributed file system.
  5. Paper review:requires each student to review a notable research project and to present his/her understanding in the class.
Please read assignment.html to understand the environment you use for assignments and the submission/grading procedures.

Laboratory Work:

We have three laboratory assignments in that we will understand the usage of and programming with Java sockets, MPI, and mobile agents. They are intended to mitigate your learning curve of new programming paradigms and ease your programming work. The grading is based on your attendance.
  1. Lab Work 1: is a hands-on exercise for distributed computing with Java sockets. (1% of an entire grade)
  2. Lab Work 2: is a hands-on exercise for MPI programming. (1% of an entire grade)
  3. Lab Work 3: is a hands-on exercise for distributed computing with RMI and mobile agents. (1% of an entire grade)

Group Discussions:

We are planning to have five group discussions where the class will be divided into four groups, each discussing about a given topic and presenting the discussions in the class. Clik here for more detials.

Topics covered and tentative 434 winter schedule:

Note that this is an approximate ordering of topics. Chapters will take about the allotted time and not all sections in all chapters are covered.

Week Date Topics Lab and Discussions Chapters Reading Assignment
1 Jan 4 System Models   2
(2.1 - 2.3.2)
pp29-57  
  Jan 6 Networking   3
(3.2 - 3.3.4, 3.4.1)
pp69-81
pp89-94
Program 1 assigned
2 Jan 11 Interprocess Communication Lab Work 1 (Sockets) 4
(4.1, 4.2, 4.3.2)
pp131-144
pp148-150
 
  Jan 13 Group Communication and MPI Lab Work 2 (MPI) 4.5, 12.4 pp164-168
pp484-498
 
3 Jan 18 Holiday (no school)        
  Jan 20 Distributed Objects and Remote Invocation   5 pp177-219 Program 1 due
Program 2 assigned
4 Jan 25 Operating System Support   6 pp221-264  
  Jan 27 Process Migration   6.4.2, 2.2.3 pp231-234
pp37-42
 
5 Feb 1   Lab Work 3 (RMI and Agents)      
  Feb 3 Midterm exam in class   2 - 6 pp29-57, 37-42, 69-81, 89-94, 131-144, 148-150, 164-168, 177-219, 221-264, and 484-498  
6 Feb 8 Time and Global States Paper Review
Group Discussion 1
11 pp433-466

Timewarp
SPEEDES
Program 2 due
Program 3 assigned
Reviewer: McElroy
Reviewer: Crawford
  Feb 10 330 - 430pm CSS Speakers Series Talk (by Laura Dillon)

435pm - 535pm Distributed Shared Memory
  18 pp749-781  
7 Feb 15 Holiday (no school)        
  Feb 17   Paper Review
Group Discussion 2
  Ivy
Dash
Munin
Linda/JavaSpace
Reviewer: Spiger
Reviewer: Avant
Reviewer: Bodurova
Reviewer: Smeltzer
8 Feb 22 Distributed File Systems   8,13
(8.1-8.4,13.5)
pp323-358
pp545-549
Program 3 due
Program 4 assigned
  Feb 24   Paper Review
Group Discussion 3
  Sun NFS
AFS
XFS
PVFS
Reviewer: Nikolova
Reviewer: Lewis
Reviewer: Kincaid
Reviewer: Renfro
9 Mar 1 Distributed Transactions and Replication   14,15
(14.1-14.3, 15)
pp565-578
pp603-656
 
  Mar 3 330 - 430pm CSS Speakers Series Talk (by Matt Greenway) Paper Review
Group Discussion 4
  Gossip
Coda
GFS
Bayou
Reviewer: Schreter
Reviewer: Shah
Reviewer: Prasek
Reviewer: Huynh
10 Mar 8 Grid Computing
AgentTeamwork at UWB
  No corresponding chapters    
  Mar 10   Paper Review
Group Discussion 5
  NetSolve
Legion
Condor
Globus
Reviewer: Shipman
Reviewer: Nevala
Reviewer: Roth
Reviewer: Williams
11 Mar 15 Final exam in class   8, 11, 13-15, 18 and grid computing pp323-358, 433-466, 545-549, 565-578, 603-656, and 749-781  
  Mar 17 Program 4 Demonstration       Program 4 due (330pm)