Conway's game of life parallelization using pure MPI and MPI-OpenMP hybrid implementation.
The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton
Conway in 1970. The game is a zero-player game, meaning that its evolution is determined by its initial state,
requiring no further input. One interacts with the Game of Life by creating an initial configuration and observing how it evolves.
The universe of the Game of Life is an infinite, two-dimensional orthogonal grid of square cells, each of which is in
one of two possible states, alive or dead, (or populated and unpopulated, respectively).
Every cell interacts with its eight neighbours, which are the cells that are horizontally,
vertically, or diagonally adjacent. At each step in time, the following transitions occur:
I followed Foster’s Design Methology to parallelize the game of life.
It is a four-stage design process:
You can run and see an interactive implementation of game of life, running the conway_game_of_life.html file.
It is a simple implementation that will help you to understand the rules and see some common patterns.
Many different types of patterns occur in the Game of Life, which are classified according to their behaviour.
Common pattern types include:
If the game ends or stucks to some pattern you can click on the logo and it will restart with a new random grid.
An example of how you can run game of life:
$ cd source
$ make
$ mpiexec -n 4 ./mpi -d 10 -g 2 -i ../inputfiles/grid_10x10.csv
$ mpiexec -n 4 ./mpi_openmp -d 10 -g 2 -i ../inputfiles/grid_10x10.csv -t 2