CS735/CS835
Programming Assignment 3
(due Sun Nov 10)


Port your solution to Programming Assignment 2 to the Star Cluster.

You should integrate your Gaussian Elimination code into the RMI framework illustrated by the Pi program available on the Star Cluster in ~pjh/public/piRMI. A program will consist of processes running on a set of cluster nodes (one process per node), with each process potentially consisting of multiple threads.

The tournament and broadcast methods must be updated to a two-level implementation: first perform the operation on the threads local to a node and then perform the operation across the nodes of the cluster. First implement these methods using a linear algorithm for doing the node-level operations. Next re-implement these methods using a hypercube-style (log P) algorithm. For full credit the hypercube algorithms should work whether the number of processors is a power of two or not.

As you did in Programming Assignment 2, test and document the performance of the tournament and broadcast methods independent of each other and of the Gaussian Elimination program. Create a stand-alone cluster program for each method and test and time the performance using 1, 4, 8 and 16 nodes. Do these tests twice: once using the linear algorithms and once using the hypercube algorithms. For these tests use only one thread per node.

You should also test and time the performance of the cluster Gaussian Elimination program using 1, 4, 8 and 16 nodes. Again do these tests twice: once using the linear versions of tournament and broadcast and once using the hypercube versions. Also do one extra series of tests (again using 1, 4, 8 and 16 nodes) in which you use four threads per node.

All programs should be executed on the Star Cluster.

You should write a laboratory report for this assignment. The report and the programming will be worth equal amounts in the grading of this assignment. The report should also analyze the performance that you measure for the two methods, as well as for the Gaussian Elimination program. Compute speed-up values for the Gaussian Elimination program. Be sure to analyze the use of the linear versions of tournament and broadcast versus the use of the hypercube versions. If your hypercube versions of broadcast and tournament work when the number of nodes is not a power of two, then describe how you tested to convince yourself this was true. Finally, if you needed to change the interface to either the tournament or the broadcast method as you ported the code to the cluster, then explain why these changes were necessary.

Points will be awarded for this assignment in the following way:

  1. Tournament method (linear algorithm): 40 points.
  2. Broadcast method (linear algorithm): 20 points.
  3. Gaussian Elimination program: 10 points.
  4. Hypercube versions of methods (number of nodes is power of two): 20 points
  5. Hypercube versions of methods (any number of nodes): 10 points
Tasks must be completed in the above order.

You should submit your report and all your source code to me via e-mail. Please archive the source code using some standard tool that I can process under Linux. Your e-mail message should include information about how I can process your code archive. Your report should be either just "flat" Ascii or Postscript or PDF. (Please do not send me a Microsoft Word document!)

Do ten runs for each data point to try to avoid anomalies. Try to do your timings at "off hours" when the cluster is not heavily in use. (This may require that you not do your work at the last minute!) For your report you should summarize the ten runs. Be sure to explain how you summarized the data and include all the raw data as an appendix to your report or in another file in your submission.

To receive full credit for the assignment, you must submit prior to 8am on Monday November 11. Late submissions will be accepted at the penalty of 5 points per day up to one week late.

Remember: as always you are expected to do your own work on this assignment.

Also: you should adequately document and structure your programs.

And: take care with the writing of your report. Use complete sentences, proper punctuation, etc. Use a spell checker. Most importantly, allocate some time for writing your report. Review and revise as necessary. Your writing will be graded for both clarity and mechanics. Finally, don't forget to include the required analysis in your report.


Last modified on October 21, 2002.

Comments and questions should be directed to pjh@cs.unh.edu