Genetic Programming and Evolvable Machines

, Volume 11, Issue 2, pp 147–184 | Cite as

Deployment of parallel linear genetic programming using GPUs on PC and video game console platforms

  • Garnett WilsonEmail author
  • Wolfgang Banzhaf
Original Paper


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.


Genetic programming Parallel processing SIMD Graphics processing unit (GPU) GPGPU Xbox 360 Heterogeneous devices 



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.


  1. 1.
    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–248Google Scholar
  2. 2.
    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)Google Scholar
  3. 3.
    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–335Google Scholar
  4. 4.
    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–2293Google Scholar
  5. 5.
    F. Musgrave, Genetic Textures. Texturing and Modeling: A Procedural Approach, 2nd edn. (AP Professional, Cambridge, 1998), pp. 373–385Google Scholar
  6. 6.
    J. Loviscach, J. Meyer-Spradow, in Genetic Programming of Vertex Shaders. Proceedings of EuroMedia 2003 (Eurosis, Plymouth, 2003), pp. 29–31Google Scholar
  7. 7.
    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–270Google Scholar
  8. 8.
    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–230Google Scholar
  9. 9.
    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–1059Google Scholar
  10. 10.
    K. Fok, T. Wong, M. Wong, Evolutionary computing on consumer graphics hardware. IEEE Intell. Syst. 22(2), 69–78 (2007)Google Scholar
  11. 11.
    S. Harding, W. Banzhaf, in Fast Genetic Programming on GPUs. Proceedings of the 10th European Conference on Genetic Programming (Springer, Valencia, 2007), pp. 90–101Google Scholar
  12. 12.
    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–1573Google Scholar
  13. 13.
    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–85Google Scholar
  14. 14.
    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–385Google Scholar
  15. 15.
    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–2538Google Scholar
  16. 16.
    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–187Google Scholar
  17. 17.
    P. Nordin, W. Banzhaf, in Complexity Compression and Evolution. Proceedings of the Sixth International Conference on Genetic Algorithms (1995), pp. 310–317Google Scholar
  18. 18.
    P. Nordin, Evolutionary program induction of binary machine code and its applications, Ph.D. Thesis, University of Dortmund, Department of Computer Science, 1997Google Scholar
  19. 19.
    W. Banzhaf, P. Nordin, R. Keller, F. Francone, Genetic Programming: An Introduction (Morgan Kaufman, San Francisco, 1998)zbMATHGoogle Scholar
  20. 20.
    Microsoft Corporation, Xbox 360 Tools and Middleware Program (2009),
  21. 21.
    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–260Google Scholar
  22. 22.
    Microsoft Corporation, XBox 360 Programming considerations (2009),
  23. 23.
  24. 24.
    J. Koza, Genetic Programming II: Automatic Discovery of Reusable Programs (MIT Press, Cambridge, 1998)Google Scholar
  25. 25.
    J. Andrews, N. Baker, XBox 360 system architecture. IEEE Micro 26, 25–37 (2006)CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2010

Authors and Affiliations

  1. 1.Department of Computer ScienceMemorial University of NewfoundlandSt. John’sCanada

Personalised recommendations