Abstract
We present a general method for deploying parallel linear genetic programming (LGP) to the PC and Xbox 360 video game console by using a publicly available common framework for the devices called XNA (for “XNA’s Not Acronymed”). By constructing the LGP within this framework, we effectively produce an LGP “game” for PC and XBox 360 that displays results as they evolve. We use the GPU of each device to parallelize fitness evaluation and the mutation operator of the LGP algorithm, thus providing a general LGP implementation suitable for parallel computation on heterogeneous devices. While parallel GP implementations on PCs are now common, both the implementation of GP on a video game console using GPU and the construction of a GP around a framework for heterogeneous devices are novel contributions. The objective of this work is to describe how to implement the parallel execution of LGP in order to use the underlying hardware (especially GPU) on the different platforms while still maintaining loyalty to the general methodology of the LGP algorithm built for the common framework. We discuss the implementation of texture-based data structures and the sequential and parallel algorithms built for their use on both CPU and GPU. Following the description of the general algorithm, the particular tailoring of the implementations for each hardware platform is described. Sequential (CPU) and parallel (GPU-based) algorithm performance is compared on both PC and video game platforms using the metrics of GP operations per second, actual time elapsed, speedup of parallel over sequential implementation, and percentage of execution time used by the GPU versus CPU.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Notes
CPU-based GP was implemented on this device by the authors, see [15] for further details.
Pixels of a texture are often called “texels” when considered as a portion of a texture. However, we use the terminology “pixels” throughout this paper.
While speedups in each study are strongly based on the hardware configuration, the results of the studies can provide a rough means of comparing the speedup of parallelization on the GPU over CPU only. Naturally, the proportion of the algorithm that is actually parallelized on the GPU will also affect these speedup measures.
In addition to the devices covered in this work, one of these devices was a portable media device (second generation 4 GB Zune), which involved only a sequential implementation and is not covered in this work since it was not a parallel implementation. See [15] for further details.
For instance, we always run 50 trials. Since the number of trials is controlled by the Draw method in the Game class, however, this is a natural addition to the user parameters.
Lines 7–9 indicate that a two-dimensional array is being accessed for clarity. In actuality, a one-dimensional array is treated conceptually as a two-dimensional array and is accessed using offsets such that indices (x, y) are the index (x + (y * populationWidth)). A one-dimensional array must be used in order to place data on an XNA Texture2D object to be passed to the GPU.
References
W. Banzhaf, S. Harding, W. Langdon, G. Wilson, Accelerating Genetic Programming Through Graphics Processing Units. Genetic Programming Theory and Practice (GPTP) (Springer, New York, 2008), pp. 229–248
M. Harris, Mapping Computational Concepts to GPUs. GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation (Addison-Wesley Professional, Boston, 2005)
D. Tarditi, S. Puri, J. Oglesby, in Accelerator: Using Data Parallelism to Program gpus for General-Purpose Uses. Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ‘06) (ACM Press, San Jose, 2006), pp. 325–335
M. Wong, T. Wong, K. Fok, in Parallel Evolutionary Algorithms on Graphics Processing Unit. Proceedings of IEEE Congress on Evolutionary Computation 2005 (CEC 2005) (IEEE Press, Edinburg, 2005), pp. 2286–2293
F. Musgrave, Genetic Textures. Texturing and Modeling: A Procedural Approach, 2nd edn. (AP Professional, Cambridge, 1998), pp. 373–385
J. Loviscach, J. Meyer-Spradow, in Genetic Programming of Vertex Shaders. Proceedings of EuroMedia 2003 (Eurosis, Plymouth, 2003), pp. 29–31
M. Ebner, M. Reinhardt, J. Albert, in Evolution of Vertex and Pixel Shaders. Proceedings of the 8th European Conference on Genetic Programming (Springer, Lausanne 2005), pp. 261–270
F. Lindblad, P. Nordin, K. Wolff, in Evolving 3D Model Interpretation of Images Using Graphics Hardware. Proceedings of the 2002 Congress on Evolutionary Computation (CEC 2002) (IEEE Press, Honolulu, 2002), pp. 225–230
Q. Yu, C. Chen, Z. Pan, in Parallel Genetic Algorithms on Programmable Graphics Hardware. Proceedings of the First International Conference on Natural Computation, ICNC 2005, vol. LNCS 3612 (2005), pp. 1051–1059
K. Fok, T. Wong, M. Wong, Evolutionary computing on consumer graphics hardware. IEEE Intell. Syst. 22(2), 69–78 (2007)
S. Harding, W. Banzhaf, in Fast Genetic Programming on GPUs. Proceedings of the 10th European Conference on Genetic Programming (Springer, Valencia, 2007), pp. 90–101
D. Chitty, in A Data Parallel Approach to Genetic Programming Using Programmable Graphics Hardware. Proceedings of the 2007 Genetic and Evolutionary Computation Conference (GECCO 2007) (ACM Press, London, 2007), pp. 1566–1573
W. Langdon, W. Banzhaf, in A SIMD Interpreter for Genetic Programming on GPU Graphics Cards. Proceedings of the 11th European Conference on Genetic Programming (Springer, Naples, 2008), pp. 73–85
G. Wilson, W. Banzhaf, in Linear Genetic Programming GPGPU on Microsoft’s Xbox 360. Proceedings of the IEEE Congress on Evolutionary Computation (CEC 2008) (IEEE Press, Hong Kong, 2008), pp. 378–385
G. Wilson, W. Banzhaf, in Deployment of CPU and GPU-Based Genetic Programming on Heterogeneous Devices. Proceedings of the 2009 Genetic and Evolutionary Computation Conference (GECCO 2009) (ACM Press, Montreal), pp. 2531–2538
N.L. Cramer, in A Representation for the Adaptive Generation of Simple Sequential Programs. Proceedings of the First International Conference on Genetic Algorithms (1985), pp. 183–187
P. Nordin, W. Banzhaf, in Complexity Compression and Evolution. Proceedings of the Sixth International Conference on Genetic Algorithms (1995), pp. 310–317
P. Nordin, Evolutionary program induction of binary machine code and its applications, Ph.D. Thesis, University of Dortmund, Department of Computer Science, 1997
W. Banzhaf, P. Nordin, R. Keller, F. Francone, Genetic Programming: An Introduction (Morgan Kaufman, San Francisco, 1998)
Microsoft Corporation, Xbox 360 Tools and Middleware Program (2009), http://www.xbox.com/en-US/dev/tools.htm
S. Scarle, Implications of the turing completeness of reaction-diffusion models, informed by GPGPU simulations on an XBox 360: cardiac arrhythmias, re-entry and the Halting problem. Comput. Biol. Chem. 33, 253–260
Microsoft Corporation, XBox 360 Programming considerations (2009), http://msdn.microsoft.com/en-us/library/bb203938(XNAGameStudio.10).aspx
Shawn Hargreaves, Point sprites on XBox (2007), http://blogs.msdn.com/shawnhar/archive/2007/01/03/point-sprites-on-xbox.aspx
J. Koza, Genetic Programming II: Automatic Discovery of Reusable Programs (MIT Press, Cambridge, 1998)
J. Andrews, N. Baker, XBox 360 system architecture. IEEE Micro 26, 25–37 (2006)
Acknowledgements
We would like to thank Simon Harding for his helpful feedback and suggestions. WB acknowledges funding from NSERC under the Discovery Grant Program RGPIN 283304-07 and from Canadian Foundation for Innovation under CFI 204503.
Author information
Authors and Affiliations
Corresponding author
Additional information
This work is based on an earlier work: Deployment of CPU and GPU-based Genetic Programming on Heterogeneous Devices, in Proceedings of the 2009 Genetic and Evolutionary Computation Conference, © ACM, 2009. http://doi.acm.org/10.1145/1570256.1570356
Rights and permissions
About this article
Cite this article
Wilson, G., Banzhaf, W. Deployment of parallel linear genetic programming using GPUs on PC and video game console platforms. Genet Program Evolvable Mach 11, 147–184 (2010). https://doi.org/10.1007/s10710-010-9102-5
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10710-010-9102-5