Conway's Game of Life implementation in C, using three different parallel programming models: Distributed memory programming, using MPI Shared memory programming, using OpenMP NVIDIA GPU programming, using Cuda