CSS 434: Parallel and Distributed Computing
Spring 2005

MW 330-535pm

Prof. Munehiro Fukuda


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

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 and students will review a topic-related research paper in the class.

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.



Work Load and Grading:

Course Work Percentage Achievements Approximately Corresponding Numeric Grade
Programming 1 10% 90s 3.5 - 4.0
Programming 2 16% 80s 2.5 - 3.4
Programming 3 10% 70s 1.5 - 2.4
Programming 4 16% 60s 0.7 - 1.4
Paper Review 16% (Presentation: 12%, Critique 4%)
Midterm Exam 16%
Final Exam 16%


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,, 3rd Edition, George Coulouris, Jean Dollimore and Tim Kindberg, Addison-Wesley Publishers, Wokingham UK, 2001


Some Programming Textbooks:

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


Programming assignment 1 ~ 3 and 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.

The final project may be done by a pair of students, in which case both students must achieve an equally amount of work. For the detailed instructions, see the project assignment sheet.

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: rlundborg@bothell.washington.edu, TDD: 425-352-3132, and FAX: 425-352-5444). 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. 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.


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.

Topics covered and tentative 434 spring 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 Chapters Reading Assignment
1 Mar 28 System Models 2
(2.1 - 2.3.2)
  Mar 30 Networking
Eric Nelson's talk about his Ehime Univ. life
(3.2 - 3.3.4, 3.4.1)
Program 1 assigned
2 Apr 4 Interprocess Communication 4
(4.1, 4.2, 4.3.2)
  Apr 6 Group Communication and MPI 4.5, 11.4 pp153-158
3 Apr 11 Distributed Objects and Remote Invocation 5 pp165-202  
  Apr 13 Operating System Support 6
(6.1 - 6.5)
pp207-239 Program 1 due Program 2 assigned
4 Apr 18 Process Migration 6.4.2, 2.2.3 pp217-218
  Apr 20 Paper Review   D'Agents
IBM Aglets
Reviewer: Clough
Reviewer: Shah
Reviewer: Frankhouser
Reviewer: Kong
5 Apr 25 Time and Global States 10 pp385-416  
  Apr 27 Paper Review   SPEEDES
Reviewer: Archer
Reviewer: Rilling
6 May 2 Midterm exam in class 2 - 6 pp29-58, 70-82, 90-95, 126-138, 142-143, 153-158, 436-450, 165-239 Program 2 due Program 3 assigned
  May 4 Distributed Shared Memory 16 pp635-665  
7 May 9 Paper Review   Ivy
Reviewer: Tumolva
Reviewer: Sano
Reviewer: Cho
Reviewer: ----
  May 11 Distributed File Systems 8,12
8 May 16 Paper Review   Sun NFS
Reviewer: Bonar
Reviewer: ----
Reviewer: Radutskiy
Reviewer: Popa
Program 3 due Program 4 assigned
  May 18 Distributed Transactions and Replication 13,14
(13.1-13.3, 14)
9 May 23 Paper Review   ISIS
Reviewer: Horowitz
Reviewer: Siegenthaler
Reviewer: ----
Reviewer: Hall
  May 25 Grid Computing No corresponding chapters    
10 May 30 Holiday - no school      
  June 1 Paper Review   NetSolve
Reviewer: Ngo
Reviewer: Chen
Reviewer: Horvath
Reviewer: ----
11 June 6 Program 4 Demonstration     Program 4 due
  June 8 Final exam in class 8,10-14,16, and grid computing pp310-335, 385-416, 497-501, 516-528, 553-604, 635-665