An investigation of the efficient implementation of cellular automata on multi-core CPU and GPU hardware

Cellular automata (CA) have proven to be excellent tools for the simulation of a wide variety of phenomena in the natural world. They are ideal candidates for acceleration with modern general purpose-graphical processing units (GPU/GPGPU) hardware that consists of large numbers of small, tightly-coupled processors. In this study the potential for speeding up CA execution using multi-core CPUs and GPUs is investigated and the scalability of doing so with respect to standard CA parameters such as lattice and neighbourhood sizes, number of states and generations is determined. Additionally the impact of 'Activity' (the number of 'alive' cells) within a given CA simulation is investigated in terms of both varying the random initial distribution levels of 'alive' cells, and via the use of novel state transition rules; where a change in the dynamics of these rules (i.e.?the number of states) allows for the investigation of the variable complexity within. We examine speed-up factors of GPGPU over CPU a number key parameters of CA.The amount of activity is found to play a large role in GPGPU speed-ups.The GPGPU shows minimal variation in processing time under activity variation.Speed-ups are found to be proportionate to the arithmetic activity/neighbourhood size.The scale of generations and cells required to gain largest speed-ups is shown.

[1]  Fernando Diaz-del-Rio,et al.  GPU-based cellular automata simulations of laser dynamics , 2012 .

[2]  Arie E. Kaufman,et al.  GPU Cluster for High Performance Computing , 2004, Proceedings of the ACM/IEEE SC2004 Conference.

[3]  Martin Lilleeng Sætra,et al.  Graphics processing unit (GPU) programming strategies and trends in GPU computing , 2013, J. Parallel Distributed Comput..

[4]  Stephen Wolfram,et al.  Universality and complexity in cellular automata , 1983 .

[5]  Kenneth A. Hawick,et al.  Data-Parallelism and GPUs for Lattice Gas Fluid Simulations , 2010, PDPTA.

[6]  Danielle J. Marceau,et al.  An Interactive Method to Dynamically Create Transition Rules in a Land-use Cellular Automata Model , 2011 .

[7]  Maria Isabel Sobral Escada,et al.  Spatial Dynamic Modelling of Deforestation in the Amazon , 2011 .

[8]  G. Vichniac Simulating physics with cellular automata , 1984 .

[9]  Stéphane Gobron,et al.  Retina simulation using cellular automata and GPU programming , 2007, Machine Vision and Applications.

[10]  Ed Keedwell,et al.  Understanding the efficient parallelisation of cellular automata on CPU and GPGPU hardware , 2013, GECCO.

[11]  Karolin Baecker,et al.  Cellular Automata Modeling Of Physical Systems , 2016 .

[12]  Anselmo Lastra,et al.  Physically-based visual simulation on graphics hardware , 2002, HWWS '02.

[13]  John von Neumann,et al.  Theory Of Self Reproducing Automata , 1967 .

[14]  R. Benzi,et al.  The lattice Boltzmann equation: theory and applications , 1992 .

[15]  Daniela M. Romano,et al.  High performance cellular level agent-based simulation with FLAME for the GPU , 2010, Briefings Bioinform..

[16]  Giuseppe A. Trunfio,et al.  Accelerating wildfire susceptibility mapping through GPGPU , 2013, J. Parallel Distributed Comput..

[17]  Edward Keedwell,et al.  Optimal Design of Sewer Networks using hybrid cellular automata and genetic algorithm , 2006 .

[18]  Christian Siemers,et al.  C to Cellular Automata and execution on CPU, GPU and FPGA , 2012, 2012 International Conference on High Performance Computing & Simulation (HPCS).

[19]  Daniel Mestre,et al.  GPU Accelerated Computation and Visualization of Hexagonal Cellular Automata , 2008, ACRI.

[20]  Guilherme N. DeSouza,et al.  GPU-based simulation of cellular neural networks for image processing , 2009, 2009 International Joint Conference on Neural Networks.

[21]  John E. Stone,et al.  Long time-scale simulations of in vivo diffusion using GPU hardware , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

[22]  Kazuo Sato,et al.  Octree-based, GPU implementation of a continuous cellular automaton for the simulation of complex, evolving surfaces , 2011, Comput. Phys. Commun..

[23]  Wolfgang Banzhaf,et al.  Fast Genetic Programming and Artificial Developmental Systems on GPUs , 2007, 21st International Symposium on High Performance Computing Systems and Applications (HPCS'07).

[24]  Adelinde M. Uhrmacher,et al.  Experiments with Single Core, Multi-core, and GPU Based Computation of Cellular Automata , 2009, 2009 First International Conference on Advances in System Simulation.

[25]  Claude Kauffmann,et al.  Cellular automaton for ultra-fast watershed transform on GPU , 2008, 2008 19th International Conference on Pattern Recognition.

[26]  Stephen Wolfram,et al.  Cellular automata as models of complexity , 1984, Nature.

[27]  CA Fitz-Hugh-Nagumo,et al.  Implementation of Cellular Automata using a Graphics Processing Unit , 2004 .

[28]  Frank Penczek,et al.  Design and Implementation of CAOS: an implicitly parallel language for the high-performance simulation of cellular automata , 2011 .

[29]  Luis Mateus Rocha,et al.  Material Representations: From the Genetic Code to the Evolution of Cellular Automata , 2005, Artificial Life.

[30]  Reinhard Koenig,et al.  Cellular-Automata-Based Simulation of the Settlement Development in Vienna , 2011 .

[31]  J. A. Somers Direct simulation of fluid flow with cellular automata and the lattice-Boltzmann equation , 1993 .

[32]  Sauro Succi,et al.  The lattice Boltzmann equation: theory and application , 1993 .

[33]  Francisco Fernández de Vega,et al.  Cellular Automata and Cluster Computing: an Application to the Simulation of Laser Dynamics , 2007, Adv. Complex Syst..

[34]  Pavel Gurikov,et al.  General-purpose graphics processing units application for diffusion simulation using cellular automata , 2011 .

[35]  Bastien Chopard,et al.  Cellular Automata Modeling of Physical Systems: Index , 1998 .

[36]  Sebastian Szkoda,et al.  Accelerating cellular automata simulations using AVX and CUDA , 2012, ArXiv.

[37]  Sikun Li,et al.  MCA-Based Animation of Fracturing Heterogeneous Objects , 2011, 2011 12th International Conference on Computer-Aided Design and Computer Graphics.

[38]  Daniel Mestre,et al.  Information Visualization of Multi-dimensional Cellular Automata using GPU Programming , 2007, 2007 11th International Conference Information Visualization (IV '07).

[39]  A. Salcido Cellular Automata - Simplicity Behind Complexity , 2011 .

[40]  Michele Guidolin,et al.  CADDIES: a new framework for rapid development of parallel cellular automata algorithms for flood simulation , 2012 .

[41]  Lorenzo Dematté,et al.  GPU computing for systems biology , 2010, Briefings Bioinform..