CSS 434: Parallel and Distributed Computing
Winter 2007
TTh 330-535pm
Prof. Munehiro Fukuda
Professor:
Munehiro Fukuda
<mfukuda@u.washington.edu>,
room UW1-331, phone 352-3459,
office hours: TTh 230-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; 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 |
| Programming 1 |
7% |
90s |
3.5 - 4.0 |
| Programming 2 |
11% |
80s |
2.5 - 3.4 |
| Programming 3 |
7% |
70s |
1.5 - 2.4 |
| Programming 4 |
15% |
60s |
0.7 - 1.4 |
| Paper Review |
12% |
| Midterm Exam |
20% |
| Final Exam |
20% |
| Group 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.
-
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.
-
Parallel Programming with MPI,
Peter S. Pacheco,
Morgan Kaufmann,
1997.
-
Parallel Programming -- Techniques and Applications Using Networked Workstations and Parallel Computers,
Barry Wilkinson and Michael Allen,
Prentice Hall,
1999
-
Java in Distributed Systems: Concurrency, Distribution and Persistence,
Marko Boger,
Wiley,
2001.
-
Java Network Programming and Distributed Computing,
David Reilly and Michael Reilly,
Addison-Wesley,
2002.
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: rlundborg@bothell.washington.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 learn fundamental concepts that are used in and applicable to a
variety of distributed computing applicaitons,
- To realize fundamental concepts in four programming assignments:
a chat server, a parallel-computing application, a mobile agent, and
a distributed file system, and
- To improve your ability of reviewing, grasping, and comparing the
key idea of research papers
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.
- Program 1 (pdf, word):
learns how to use Java-based TCP communication through a design
of chat client and server program.
- Program 2 (pdf, word): exercises how to write a parallel-computing
application using MPI Java.
- Program 3 (pdf, word): compares RMI and mobile agenets in terms of
programmability and performance. Click here to download the UWAgent manual.
- Program 4 (pdf, word): designs and implements a very simple
distributed file system.
- 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.
- Lab Work 1: is a hands-on
exercise for distributed computing with Java sockets. (1% of an
entire grade)
- Lab Work 2: is a hands-on
exercise for MPI programming. (1% of an entire grade)
- 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 434 winter schedule (updated):
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 |
|
| 2 |
Jan 9 |
Networking |
|
3 (3.2 - 3.3.4, 3.4.1) |
pp69-81 pp89-94 |
Program 1 assigned |
| |
Jan 11 |
Cancelled (due to incremental weather)
| |
|
|
|
| 3 |
Jan 15 |
Interprocess Communication
| Lab Work 1 (Sockets) |
4 (4.1, 4.2, 4.3.2) |
pp131-144 pp148-150 |
|
| |
Jan 17 |
Group Communication and MPI
| |
4.5, 12.4 |
pp164-168 pp484-498 |
|
| 4 |
Jan 23 |
| Lab Work 2 (MPI) |
4.5, 12.4 |
pp164-168 pp484-498 |
Program 1 due (extended to 1/25)
Program 2 assigned |
| |
Jan 25 |
Distributed Objects and Remote Invocation |
|
5 |
pp177-219 |
Program 1's new duedate |
| 5 |
Jan 30 |
Operating System Support |
|
6 |
pp221-264 |
|
| |
Feb 1 |
Process Migration |
|
6.4.2, 2.2.3 |
pp231-234 pp37-42 |
|
| 6 |
Feb 6 |
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 |
Program 2 due (extended to 2/13)
Program 3 assigned |
| |
Feb 8 |
Distributed Shared Memory |
|
18 |
pp749-781 |
|
| 7 |
Feb 13 |
|
Paper Review
Group Discussion 2
Lab Work 3 (RMI and Agents) |
|
Ivy
Dash
Munin
Linda/JavaSpace
|
Reviewer: Fukuda
Reviewer: Demarre
Reviewer: Barendt
Program 2's new duedate
|
| |
Feb 15 |
Distributed File Systems |
(Student survery after lecture) |
8,13 (8.1-8.4,13.5) |
pp323-358 pp545-549 |
|
| 8 |
Feb 20 |
|
Paper Review
Group Discussion 3 |
|
Sun NFS
AFS
XFS
Plan9
|
Reviewer: Ballard
Reviewer: cCool
Reviewer: Schwegler
Reviewer: Brownell
Program 3 due
Program 4 assigned
|
| |
Feb 22 |
Distributed Transactions and Replication |
|
14,15 (14.1-14.3, 15) |
pp565-578 pp603-656 |
Program 3's new duedate |
| 9 |
Feb 27 |
|
Paper Review
Group Discussion 4 |
|
Gossip
Coda
| Reviewer: Begley
Reviewer: Langley
|
| |
Mar 1 |
Grid Computing |
|
No corresponding chapters |
|
|
| 10 |
Mar 6 |
|
Paper Review
Group Discussion 5 |
|
NetSolve
Condor
Globus |
Reviewer: Sia
Reviewer: Hipps
Reviewer: Pitts |
| |
Mar 8 |
5:45-6:45pm: CSS Speaker Series by Dr. Steve Elbert (PNNL)
6:50-7:50pm: Time and Global States |
Paper Review
Group Discussion 1 |
11 |
pp433-466
Timewarp
|
Reviewer: Fukuda
|
| 11 |
Mar 13 |
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 15 |
Program 4 Demonstration |
|
|
|
Program 4 due (330pm) |