EECE 432 / CS 442 Spring 1999
Final Project
Due Monday, May 10, 1999 by 5:15 PM
[THIS IS A SHARP DEADLINE: NO EXTENSIONS WILL BE GIVEN]
For the final project, you must select a problem to parallelize and
implement on a parallel machine. You may choose any problem that has a
nontrivial parallel implementation: the parallel algorithm must have
several steps that require communication. You may use any available
resources (including your colleagues) as long as you document each
source, with one exception: you may not use an already-written
parallel code.
Submit a final report with the following sections.
1) Introduction -- describe the problem and cite any references to the
problem, sequential, or parallel implementations.
2) Sequential Algorithm -- describe the sequential implementation of
the problem, giving an asymptotic analysis of complexity. The
sequential implementation may use code written by someone else. In
this case, please document the source of the code.
3) Parallel Algorithm -- describe how the problem may be parallelized,
and any trade-offs between various parallel designs. Analyze the
parallel algorithm using asymptotic analysis, by giving the running
time, speedup, efficiency, and optimality.
4) Experimental Analysis -- implement the parallel algorithm using any
parallel machine of your choice, and the Message Passing Interface
(MPI). Graph the running time of the algorithm as the number of
processors and problem sizes change (for a reasonable number of
machine and problem sizes). Also graph the scalability of the
problem compared with the sequential implementation (from part 2).
5) Discussion -- report your observations, whether the analysis
predicted the performance, and any ways to further improve the
parallel implementation.
6) References -- list a bibliography of any references used in this
report.