CSCI 4320 - Parallel Computing and Programming
This project requires a system which is capable of compiling and running MPI-based parallel programs.
We included sync_run_mastiff.sh
, which:
- Syncs local files to the mastiff server using unison
- Compiles the program using make
- Runs the program with mpirun
- Syncs remote files to local directory (in case your program writes to file)
You can tweak the number of MPI ranks to allocate by modifying the parameters of the mpirun
command in the script.
We achieved parallelization of the Game of Life:
- Calculate rows_per_rank = rows_in_universe / ranks
- Initialize universe, set all cells alive
- Simulate the game, for each universe tick we update the state of each cell based on a set of rules which determines if the cell is alive or dead. We can also introduce randomn alive/dead events by tweaking the random_chance threshold.
To be implemented...
To be implemented...
To be implemented...
Run tests on these configurations
nodes | 0 threads/rank 64 MPI ranks/node | 4 threads/rank 16 MPI ranks/node | 16 threads/rank 4 MPI ranks/node | 32 threads/rank 2 MPI ranks/node | 64 threads/rank 1 MPI rank/node |
---|---|---|---|---|---|
4 | |||||
16 | |||||
64 | |||||
128 |