CSCI 3366 (Introduction to Parallel and Distributed Processing), Spring 2008:
Homework 3 Solution
(Caveat: Plots are based on data collected when I first developed
these programs, in Fall 2006. To the extent that I collected
data this year, however, results were comparable.)
- OpenMP program
game-of-life-openmp.c.
- MPI program
game-of-life-mpi.c.
(I used a slightly different version to collect timing
information:
game-of-life-mpi-old.c.
The difference is that this older version exchanges
data between processes in a way that can block if
messages are too big. Apparently that wasn't a problem
when I initially collected performance data, for the
board sizes I used, but it was when I repeated some
experiments this year. It's sloppy coding anyway.)
- Plot of execution time versus number of UEs
(total time, including initialization
and printing final board)
plot of execution time versus number of UEs
(time for computation only).
(The assignment asked for separate plots, but I thought it
might be more interesting to do combined plots, to compare
the different programming environments. The plots also
show sequential time divided by number of UEs -- ``perfect''
parallel time. As in Homework 2, I used gnuplot to
produce these plots, with input such as
this.)
Berna Massingill
2008-04-30