The assignment is due Thursday, April 29 in class.
Please e-mail your codes to
Get a copy of the FMV code by Steve McCormick and save
it as TEXT to your local disk (this beats typing it into your computer
yourself). You will be able to run this program on a single processor
computer that has a Fortran compiler on it.
First, modify the code to run with 12 levels instead of 6 (this will
give you a 4096x4096 fine grid problem, which is large enough to be
interesting on a parallel computer). You will have to change the array bounds
at the head of the program (or you will have memory overruns).
Using primarily domain decomposition techniques, parallelize the code so that
it runs on p processors, where p > 1. Usual numbers for p are powers of 2,
not random natural numbers. Your code should still run when p = 1, however.
Note that you will not get exactly the same results as for the p = 1 case, but
you should get something close.
Please use MPI. This will give you a very portable version of the code. If
you cannot use MPI, talk to me about using the HP (proprietary) shared memory
compiler directives. I would also prefer that you use Fortran, but I will
entertain C, C++, or Java with a sufficient reason.
Turn in a report showing your parallel code's speedups with a set of p's.
You should use the original, modified single processor code for the base time.
Please include at least p = 1, 2, 4, 8, and 16.
(You may want to run the rest of the values of p in between.)
This will show how well your code scales.
You will need to learn about the SPP's batch system to run your jobs. Please
look at the SPP batch queue help
available so that you can find out how to submit, check on, and cancel
multiprocessor jobs.
Cheers,
Craig C. Douglas