CSS 434: Parallel and Distributed Computing - Spring 2021

CSS 434: Parallel and Distributed Computing
Spring 2021

MW 330-530pm online

Prof. Munehiro Fukuda


Professor:

Munehiro Fukuda <mfukuda@uw.edu>, UW1-271T, phone 352-3459, office hours: MW 3:00-3:30pm and 5:30-6:00pm

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. Two lab sessions are planned for each of the first three assignments to get familiar with sockets, MPI, RMI, and mobile agents.

Prerequisites:

CSS343.

Work Load and Grading:

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

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,, 5th Edition, George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair, Addison-Wesley Publishers, 2012

Some Programming Textbooks:

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

Policies:

All programming assignments 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 and must be submitted to Canvas. Once the submission window gets closed, no late submission is accepted even through email (firm). 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 Disability Resources for Stuents (DRS) in UW1-080, (email: uwbdrs@uwb.edu, Phone: 425-352-5307, and FAX: 425-352-5114). If you have a documented disability on file with the DSS office, please have your DSS counselor contact me and we can discuss accommodations.

The class follows the religious accomodation policy. Please check the Syllabi Guidelines and Resources webpage.

This course is scheduled to run synchronously at your scheduled class time via Zoom. These Zoom class sessions will be recorded. The recording will capture the presenter’s audio, video and computer screen. Student audio and video will be recorded if they share their computer audio and video during the recorded session. The recordings will only be accessible to students enrolled in the course to review materials. These recordings will not be shared with or accessible to the public.

The University and Zoom have FERPA-compliant agreements in place to protect the security and privacy of UW Zoom accounts. Students who do not wish to be recorded, please do not turn on their video. However, for exam proctoring, the instructor will ask you to turn on your video and to see your faces during an exam.

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 survey a given research/commertial system, you must visit the website, reads research papers and documents, summarize your work holistically in your own words (rather than cut and paste phrases from what you read), and get prepared for presenting your paper review with the power point. Finally, you need to use Linux machines (cssmpi1h.uwb.edu - cssmpi8h.uwb.edu) 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 1a: is a hands-on exercise for Java sockets. (1% of an entire grade)
  2. Lab Work 1b: is a hands-on exercise for Java object serialization and deserialization. (1% of an entire grade)
  3. Lab Work 2a: is a hands-on exercise for setting up and running MPI programs. (1% of an entire grade)
  4. Lab Work 2b: is a hands-on exercise for MPI programming. (1% of an entire grade)
  5. Lab Work 3a: is a hands-on exercise for RMI. (1% of an entire grade)
  6. Lab Work 3b: is a hands-on exercise for distributed computing with mobile agents. (1% of an entire grade)

Group Discussions:

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

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 Lab and Discussions Chapters Reading Assignment
1 Mar 29 System Models   2 pp37-79  
  Mar 31 Networking   3
(3.3 - 3.3.4, 3.4.1)
pp89-98
pp106-111
 
2 Apr 5 Interprocess Communication Lab Work 1a (Sockets) 4
(4.1 - 4.3.2)
pp145-164 Program 1 assigned
  Apr 7 Group Communication and MPI Lab Work 1b (Sockets) 4.4, 4.6, 15.4 pp169-174, pp178-180
pp646-659
 
3 Apr 12   Lab Work 2a (MPI)      
  Apr 14 Remote Invocation Lab Work 2b (MPI) 5 pp185-228 Program 1 due on Apr 16 Fri at 11:59pm
4 Apr 19 Operating System Support Lab Work 3a (RMI) 7 pp279-334 Program 2 assigned
  Apr 21 Process Migration Lab Work 3b (Agents) 7.4.2 and
non-textbook contents
pp289-291  
5 Apr 26 Process Migration (1 day buffer) Lab Work 3b (Agents) 7.4.2 and
non-textbook contents
pp289-291  
  Apr 28 Time and Global States   14 pp595-628
Demo Talk

Reviewer: Fukuda
6 May 3 Midterm exam online   2 - 6 pp37-98, 106-111, 145-164, 169-174, 178-228, 279-334, and 646-659  
  May 5   Paper Review
Group Discussion 1
  JADE
Timewarp
SPEEDES
Distributed snapshots
Reviewer: ----, ----
Reviewer: Nain, Lin
Reviewer: ----, ----
Reviewer: Fukuda
Program 3 assigned
Program 2 due on May 7 Fri at 11:59pm
7 May 10 Distributed Shared Memory   6.5 pp262-274  
  May 12   Paper Review
Group Discussion 2
  Ivy
Dash
JavaSpace (Linda)
GlobalArray
Spark
Reviewer: Wong, Pradana
Reviewer: ----, ----
Reviewer: Connolly, Waranowitz
Reviewer: Avelar, Shao
Reviewer: Sterner, Gersbach
8 May 17 Distributed File Systems   12
16.2.1-16.2.2
pp521-564
pp683-690
 
  May 19   Paper Review
Group Discussion 3
  Sun NFS
AFS
PVFS
Plan 9
Reviewer: Hovsepian, Greeness
Reviewer: Randhawa, Barsoom
Reviewer: Alschitz, Yun
Reviewer: Tan
Program 4 assigned
Program 3 due on May 21 Fri at 3:30pm
9 May 24 Distributed Transactions and Replication   17.1-17.3
18
pp727-740
pp765-816
 
  May 26   Paper Review
Group Discussion 4
  Cassandra (Gossip)
Coda
Hadoop
JGroup (ISIS)
Reviewer: Park, Kwon
Reviewer: Martin, O'Dore
Reviewer: Xu, A. Tran
Reviewer: Seto, Lim
10 May 31 Holiday (No School)        
  June 2 Job Management in Grid/Cloud
Paper Review No corresponding chapters Condor
NetSolve
YARN
Reviewer: ----, ----
Reviewer: ----, ----
Reviewer:Schwartz, Lara
11 June 7 Final exam in class   6.5, 12, 14, 16.2.1-16.2.2, 17.1-17.3, 18 and grid computing pp262-274, 521-564, 595-628, 683-690, 727-740, and 765-816  
  June 11 Program 4 Deadline       Program 4 due on June 11 Fri at 11:59pm