Checkpoint

Summary

So far we have made a serial and a parallel implementation of one particular hexagonal cellular automata. The automata is fairly simple, each cell has two states: alive and dead and the rules are as follows: any dead cell can become alive if there are exactly 2 live cells near it, and any live cell continues to be alive if there are 3 or 4 live cells near it. Testing this automata we have achieved around a 55x speedup with our cuda implementation as compared to our serial implementation for a 1000 by 1000 grid with 1000+ iterations. We have also created a simple code skeleton for displaying the cells on the computer but have yet to connect the two modules together.

With regards to our deliverables we are behind schedule and are thinking of perhaps narrowing our framework to work on a few set of cellular automata. At the poster session we still plan to show both a graph of our implementation and a real live demo displaying the cellular automata in action. Our main concern is figuring out if our implementation is fast enough since we do not have a good reference to compare it to besides a simple serial implementation. We are also deliberating whether or not we should still continue with a general framework approach or narrowing it down to a few types of cellular automata.

Revised Schedule

Week What we plan to get done
Nov 21 - Nov 27 -Adi: build up framework that can take in an arbitrary cellular automata
-Eli: Optimize the current cellular automata implementation to make it faster
Nov 28 - Dec 4 -Both: Create optimizations that take into account the type of cellular automata (different types assigned to different people)
Dec 5 - Dec 11 -Both: Continue finding optimizations
-Adi: Work on final writeup -Eli: Collect performance data
Dec 12 - 13 -Present our project