CPSC 626: Parallel Algorithm Design and Analysis
Programming Assignment #2
Fall 2008

Due: Thursday October 16, 2008 in class


General Guidelines for Programming Assignments


The objective of this programming assignment is for you to analyze and compare the performance of the MPI and OpenMP prefix sums programs you wrote in the first programming assignment. You will also compare them with a sequential program for computing the prefix sums that you will write.

Coding Portion.

You should implement a sequential algorithm for computing the prefix sums. This algorithm CANNOT be one of your parallel algorithms using one processor. It should be an algorithm that does not have any of the overhead of parallelism.

To assist you in collecting you experimental results, we have prepared some sample scripts for hydra (OpenMP and MPI). You can find them below, and also a link to the SC help page for batch jobs on hydra.

Report.

You should prepare and submit a brief report that includes theoretical analysis, a description of your experiments, and discussion of your results. Your report should be prepared on a word processor and should be of the quality that you could submit to a technical workshop or conference. You must use some electronic tool (e.g., matlab, gnuplot, excel) to create the plot - handwritten plots will NOT be accepted. At a minimum, your report should include the following sections:

  1. Introduction. In this section, you should describe the objective of this assignment.
  2. Theoretical analysis. In this section, you should
  3. Experimental Setup. In this section, you should provide a description of your experiment setup, which includes but is not limited to
  4. Experimental Results. In this section, you should compare the performance (running time) of the experiments to their theoretical complexity.
  5. Conclusion. In this section you should provide some summary discussion comparing the two parallel algorithms and offering advice as to when each of them should be used. Here it would be relevant to include factors such as each of implementation and portability in your discussion.