CSS 434: Parallel and Distributed Computing - Assignments


Language

We use Java for all programming assignments.

Operating Systems

The operating system used for all assignments is Linux (UW1-320):

By the first lecture of this course, your Linux account will be set up to use. You should also be able to enter UW1-320 Linux Laboratory with your student ID card. The following contact points are available if you have any problems on your Linux account:

Here is a procedure to log on one of the Linux machines and upload your files:
  1. To log on any of LAB320 machines, use ssh and establish a connection to uw1-320-lab.bothell.washington.edu.
    You will automatically got one of the lab machines and see your home directory immediately.
         ssh yourAccount@uw1-320-lab.bothell.washington.edu
    
    You can also log on to a specific LAB320 machine as follows:
         ssh yourAccount@uw1-320-20.bothell.washington.edu
    
  2. To transfer files to the LAB320 file server
    1. Use sftp and establish a connection to uw1-320-lab.bothell.washington.edu, or
    2. Use scp at a LAB machine, so that files are copied from the outside to the LAB320 machine. The following example copies a file "file.java" from goodall to a LAB machine.
          scp mfukuda@goodall.u.washington.edu:file.java .
      

Socket Ports

As your own socket port, you should use the last five digits of your student ID. Do not use the ports other than your own port.

Assignments

  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.
  4. Program 4 (pdf, word): designs and implements a very simple distributed file system.

Submissions

Grading

Criteria Percentage
Selection of a good parallelizable and scalable problem in HW2. 15%
Documentation of your algorithm including explanations and illustrations 20% ~ 25%
Source code that adheres good modularization, coding style, and an appropriate amount of comments) 15% ~ 25%
Execution output such as a snapshot of your display/windows or contents of standard output redirected to a file 15% ~ 25%
Performance comparison using a graph, a table, and/or in statements in HW2. 15%
Disussions about the nature of a problem you chose, the efficienty of your algorithm, possible performance improvement, etc. 20% - 25%
References of all books, research papers, and web pages you used for your HW2. 5%
Total 100%