We have 3 programming models, and you are asked to write and test two programs in each model: the Sieve of Eratosthenes, and an optimization code selected from Numerical Recipies
You will turn in:
1. program code
2. record of test results / multiple tests and timing of each program
3. analysis of speedup, at minimum with different number of processes, possibly also testing what happens as you increase data size. (note that it is not unusual for parallel code on a small problem to run slower than a single process
4. Modes are sufficiently different from each other that it may not be possible to get some algorithms running on all three variations. If you are unable to get something to work, turn in what you tried to do and comment on why you think it did not work
In a final assignment, compare message passing, shared memory and GPU programming, and state which you prefer and why.
This will be a total of 7 assignments, I will provide sites to upload your work on Blackboard, in the Assesment section of the course content.
The models we will investigate are:
SPMD - message passing - MPI
SPMD - shared memory - openMP
SIMD - GPU - CUDA