UDel: CISC 372 Parallel Programming
Team Project A -- Cellular Automata
Goals:
-
To explore the patterns that arise in one dimensional ring cellular automata,
depending on the rule and initial state of the automaton.
-
To gain experience in organizing a large computation for effective parallel speedup.
-
To learn the customary graphs of time, speedup, and efficiency, used in
writing up parallel programs.
-
Specifically, to design a program to rapidly compute a million generations
of a one dimensional cellular automaton.
Specifics:
-
Starting from porsche:~saunders/cellauto.cc and
apply_rule.h, write
a parallel program to compute the 1000000-th generation of a cellular
automaton as fast as possible.
-
Your program should work at least with any number of processes
up to 16, except 9, 11, 13. The automaton will have 1680 cells,
a number which is evenly divisible by any number of processors in that
range.
-
Take timings (at least) for rule 30 and initial state 1, for each
even number of rack processes up to 16.
-
Plots:
-
Make a plot of the run times (vertical axis)
against number of processes (horizontal axis).
-
Make a plot of the parallel speedup (vertical axis)
against number of processes (horizontal axis).
-
Make a plot of the parallel efficiency (vertical axis)
against number of processes (horizontal axis).
-
Special credit will be given for the fastest time, greatest speedup, and
greatest efficiency (which may not all occur at the same time).
-
Deliverables:
- Submit working parallel code with a run script showing correctness,
by email with subject "ProjectA code" by Tue, Nov 12.
- Submit full project writeup including final code, plots, and discussion
by Tue, Nov 19. Your one page discussion should include interpretation of
timing results.
Discuss the patterns you see in your timing results and the reasons for them.
Include statement of which number of processes gave you
each of: the fastest time, the greatest speedup, the greatest efficiency.
Discuss why they are not all equal, why not all at p = 16, for instance.