Game of Life - Guy Tel-Zur

advertisement
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
Introduction:
Game of Life is a cellular automata exercise created by
mathematician John H. Conway in 1970.
It's not really a game in the traditional sense since the outcome is
decided solely by the initial set up and there aren't any players.
 The game made Conway instantly famous, but it also opened up a
whole new field of mathematical research, the field of cellular
automata
Lets play…
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
The game rules:
Any live cell with fewer than two live neighbours dies, as if caused by
under-population.
Any live cell with two or three live neighbours lives on to the next
generation.
Any live cell with more than three live neighbours dies, as if by
overcrowding.
Any dead cell with exactly three live neighbours becomes a live cell,
as if by reproduction.
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
Computational Challenges:
The game board size is NxM=L
Each cell has to be evaluated according to the set of rules
A round or “generation” takes O(L) just to evaluate.
This is an embarrassingly parallel problem
Pseudo Code for Game of Life:
Bottleneck!
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
Serial Solutions:
The serial solution is straight forward.
Unfortunately, when we simulate multiple generations with large
boards this become a time consuming problem.
Each cell has to be individually evaluated by it’s nearby neighbours
So it becomes clear why we should turn to parallel solutions.
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
Distributed Memory:
Game of life takes place on a N x M grid
 Distribute the grid on z processors (domain decomposition)
Simplest way: row wise or column wise
More general approach: rectangular areas (checkerboard
partitioning)
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Distributed Memory:
Initial (master) grid is in process 0
 Parts must get distributed to the other processes
Parallel Analysis
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
Distributed Memory:
Ghost cell:
For updating the cells, we need all the neighbours of all the
Cells
“ghost cells” around each block are necessary
This mean that cells are not continuous in memory, neither in the
master nor in the worker grid
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
Shared Memory Solutions:
For shared memory threads, this is almost a trivial exercise
Using a domain decomposition, put an OpenMP for pragma around
one of the inner loops
Here!
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis:
Amdahl’s law – strong scaling
* Parallelization: Conway’s Game of Life By Aaron Weeden , Shodor Education Foundation, Inc.
Parallel Analysis
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis:
Gustafson’s Law– weak scaling
* Parallelization: Conway’s Game of Life By Aaron Weeden , Shodor Education Foundation, Inc.
Parallel Analysis
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
Parallel Analysis:
Speed Up:
In an article we came across, the author examined 5 different
programs, from the simplest serial to the sophisticated parallel
program.
Using the Shared memory approach he managed to achieve a
speedup of 127 times the serial program.
Based on an article by Jon Skeet: https://msmvps.com/blogs/jon_skeet/archive/2008/06/01/more-parallelisation-fun-conway-s-game-of-life.aspx
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
Conclusion:
Game of Life is the basis of much research in the field of cellular
automata. As a result learning how to use parallel programming to
solve the is problem has great potential in related fields of interest.
As we’ve seen the parallel solutions are easy to implement and
provide improved performance.
So why not?
Introduction
Serial Solutions
Computational
Challenges
Conclusion
Shared Memory Solution
Distributed Memory Solution
Parallel Analysis
References:
Jon Skeet
https://msmvps.com/blogs/jon_skeet/archive/2008/06/01/more-parallelisation-fun-conway-sgame-of-life.aspx
Dr. Dobbs
http://www.drdobbs.com/parallel/conways-game-of-life-in-parallel/240143844
http://www.drdobbs.com/parallel/game-of-life-with-mpi/240159390
Parallelization: Conway’s Game of Life By Aaron Weeden, Shodor Education Foundation,Inc.
Introduction to Parallel Programming with MPI, Hans Joachim Pflug, AACHEN UNIV.
Download