Starting from:

$25

MPP-Coursework Assessment Solved

 

MPP Coursework Assessment

1          Introduction
The purpose of this assessment is for you to demonstrate that you can write a message-passing parallel program for a simple two-dimensional grid-based calculation that employs a two-dimensional domain decomposition and uses non-blocking communications. This will involve extending and enhancing the MPI program you developed for the Case Study exercise.

You will be provided with simple solutions to the Case Study. However, I recommend that you still attempt to write your own solution so that you fully understand this more straightforward problem, which uses a one-dimensional parallel decomposition, before attempting the two-dimensional decomposition.

The key aims of the entire assessment are to:

•    write a working MPI program (in C, C++ or Fortran) for the percolation problem that can use a two-dimensional domain decomposition and uses non-blocking communication for halo-swapping;

•    use periodic boundary conditions in the vertical direction (second index “j”) – we will provide an example of how to implement this in the serial version;

•    calculate the average value of the map array in the iterative loop, and print at appropriate intervals;

•    be able to terminate the calculation when all clusters have been identified, i.e. when there are no changes in the map array between steps;

•    
demonstrate that the parallel program works correctly and that the performance improves as you increase the number of processes.

2          Structure
The assessment comprises two parts:

Part 1: a short report which contains a description of how you plan to design, implement and test your parallel program.

Part 2: your final program plus a short report describing any differences from your initial plan and the results of your tests.

Your tests should cover both correctness and performance.

Although you do not submit any code for part 1, you should run your correctness and performance tests on the Case Study exercise (i.e. the one-dimensional decomposition with non-periodic boundary conditions). You can either use your own solution or the simple example parallel solution from the course.

The reason for having two parts is to ensure that, after part 1, you have a clear plan for your work when you start to develop your own parallel program for part 2. For part 1, you will also have developed and implemented the infrastructure for all the required tests. This means that the testing processes for part 2 will be straightforward as you can just re-run all the same tests. The performance results from part 1 will also give baseline values to compare to your own program.

More products