okkevaneck / NextLevelGOL

This repository contains a performance engineering overview for a Game of Life implementation, where performance is pushed to the maximum.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Next Level Game of Life

This repository contains a performance engineering overview for a Conway's Game of Life implementation, where performance is pushed to the maximum.

Optimizations

The project contains the following optimizations build incrementally on top the reference implementation (v0):

  • Optimized datastructure for GIF encoding after changing to uint_8_t (v1) and updating the border code (v2).
  • Removed excessive looping in GIF encoding (v3).
  • Optimized indexing in world step generation (v4).
  • Parallelization using OpenMP (v5.0) and PThreads (v6.0).
  • Different way to write the GIF files using mmap (v5.1 and v6.1).
  • Instruction level parallelization using SIMD (v7.0 and v7.1)

You can find all implementations in the apps directory.

Acknowledgements

The inital code was based on the assignment from the Parallel Programing Practical course at the Vrije Universiteit in Amsterdam, the Netherlands, and the CS2110 course at Dalhousie University in Halifax, NS, Canada.

About

This repository contains a performance engineering overview for a Game of Life implementation, where performance is pushed to the maximum.

License:MIT License


Languages

Language:C 69.2%Language:Python 21.9%Language:Shell 7.7%Language:Makefile 1.2%