Skip to content

Conway's Game of Life, created for the Parallel Systems course, Summer 2017

Notifications You must be signed in to change notification settings

yorgosk/game-of-life

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallel Systems -- Game of Life Implementation

About

This is a Parallel Systems project, developed at Summer of 2017 by Kamaras Georgios for the Parallel Systems (Programming) course. The goal of this project was designing, implementing and evaluating parallel programs in MPI, MPI+OpenMp and Cuda environments, by implementing the famous Conway's Game of Life.

Structure (Parts and Content)

  • Part 1: Introduction
  • Part 2: Data Sharing Design (sharing in Blocks, not lines, communication, processes' topology, etc)
  • Part 3: MPI code design and implementation with the goal of reducing inert time or unnecessary calculations (communication choices, communication overlapping with calculations, avoiding many copies by using data-types, etc). Check for lack of matrix change after n iterations.
  • Part 4: Measuring running time, calculating speedup, efficiency and presentation of results. Observation of data and processors scaling. Constant number of repeats. Behavior demonstration using Paraver.
  • Part 5: Adding OpenMp commands for parallelization of calculations (e.g. inner elements), so that a hybrid program is developed. Observation of data and processors scaling.
  • Part 6: Autonomous Cuda program with the same calculations.
  • Part 7: Conclusions

Usage

  • Input initial state from file

    ./gameOfLife_mpi -f [inputTextFile].txt -r [numOfRows] -c [numOfColumns]

  • Random initial state

    ./gameOfLife_mpi

  • Similarly

    ./gameOfLife_mpi_openmp -f [inputTextFile].txt -r [numOfRows] -c [numOfColumns]

    or

    ./gameOfLife_mpi_openmp

    And

    ./gameOfLife_cuda -f [inputTextFile].txt -r [numOfRows] -c [numOfColumns]

    or

    ./gameOfLife_cuda

  • For more, please take a look at the run.sh scripts that come with each implementation.

Input text-file sample

  • We want to represent a matrix that has four organisms in his first line and two organisms (neighbors to at least one of the above) in the second line

    1 2
    2 2
    1 3
    2 3
    1 4
    1 5

Contact & Feedback Details

About

Conway's Game of Life, created for the Parallel Systems course, Summer 2017

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages