Assigned: Wednesday, February 25th, 2009
MPI Due: In class, Wednesday, March 18th, 2009
OpenMP/Cilk Due: In class, Wednesday, March 25th, 2009
The goal of this assignment is first to understand the role of data communication using MPI as the message passing model. Subsequently, your goal is to work with a higher-level abstraction such as OpenMP or Cilk. While we provide support for only these two parallel programming environments, you are free to pick a model of your own choosing to experiment with (the same does not go for MPI --- you are required to create an MPI version of your program) --- you are on your own in terms of setting up the environment in that case, although we would be happy to assist in any way. You will be working with the same application as in assignment 1: Gaussian Elimination. Please see the instructions for the first assignment and follow the guidelines for documentation, evaluation, and analysis.
Please see the build notes for instructions on how to get started with all three environments above. Please start early so that any issues can be ironed out in advance.
For this assignment, one parallelization strategy is sufficient, although documentation (and evaluation) of intermediate approaches before you arrived at your best would strengthen your analysis. CSC 258 students are required to analyze their results on only one platform. CSC 458 students should do so on two platforms.
You should put your solutions in a directory called cs(2or4)58_proj1_(MPI_or_CILK_or_OpenMP under your home directory. Include an ASCII (text) or pdf README file with the basic correctness argument and the performance aspects. Please use the turnin script (in /u/cs(2or4)58/bin) to turn in your directory.