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):

  1. To use a console of any UW1-320 machine, enter UW1-320 Linux Laboratory with your student ID card and log into any machine with your UW Net ID and the corresponding password.
  2. To remotely log into a UW1-320 machine, use ssh and establish a connection to uw1-320-lab.uwb.edu.
    You will automatically got one of the lab machines and see your home directory immediately.
  3. To transfer files to the UW-320 file server
    1. From an off-campus Linux machine: use the sftp command and establish a connection to uw1-320-lab.uwb.edu.
    2. From a Windows machine: use WinSCP, more information at: http://winscp.net/
    3. From a Mac: use Fugu 1.2, downloadable at http://rsug.itd.umich.edu/software/fugu/

The Source for Java Technology

Visit http://www.oracle.com/technetwork/java/index.html . This site includes:
  1. Java Tutorial: helps you run Java programs at Windows, Unix, and Mac, introduces the Java language, and lists essential Java classes.
  2. Java SE Version 7, API documentation: lists all necessary Java API classes. You will frequently visit this page to review what classes are ready to use for your assignment programs.
  3. Java SE : allows you to download the Java SE platform

Java Programming Environments

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. If your last five digits do not fit in the range between 5001 and 65535, please email the professor so that you can obtain a unique port no one uses.

UW1-320 Machines

uw1-320-00 through to uw1-320-15 are machines with a console you can sit at, and are all connected to the 100Mbps campus backbone. On the other hand, uw1-320-16 through to uw1-320-23 are rack-mounted with a 1Gbits network. For performance evaluation in programs 2 and 3, please use uw1-320-16 through to uw1-320-23.

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%