Skip to main content

Advertisement

Log in

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

  • Original Paper
  • Published:
Genetic Programming and Evolvable Machines Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Explore related subjects

Discover the latest articles, news and stories from top researchers in related subjects.

Notes

  1. CPU-based GP was implemented on this device by the authors, see [15] for further details.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

  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–248

    Google Scholar 

  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. 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

  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–2293

  5. F. Musgrave, Genetic Textures. Texturing and Modeling: A Procedural Approach, 2nd edn. (AP Professional, Cambridge, 1998), pp. 373–385

    Google Scholar 

  6. J. Loviscach, J. Meyer-Spradow, in Genetic Programming of Vertex Shaders. Proceedings of EuroMedia 2003 (Eurosis, Plymouth, 2003), pp. 29–31

  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–270

  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–230

  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–1059

  10. K. Fok, T. Wong, M. Wong, Evolutionary computing on consumer graphics hardware. IEEE Intell. Syst. 22(2), 69–78 (2007)

    Google Scholar 

  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–101

  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–1573

  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–85

  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–385

  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–2538

  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–187

  17. P. Nordin, W. Banzhaf, in Complexity Compression and Evolution. Proceedings of the Sixth International Conference on Genetic Algorithms (1995), pp. 310–317

  18. P. Nordin, Evolutionary program induction of binary machine code and its applications, Ph.D. Thesis, University of Dortmund, Department of Computer Science, 1997

  19. W. Banzhaf, P. Nordin, R. Keller, F. Francone, Genetic Programming: An Introduction (Morgan Kaufman, San Francisco, 1998)

    MATH  Google Scholar 

  20. Microsoft Corporation, Xbox 360 Tools and Middleware Program (2009), http://www.xbox.com/en-US/dev/tools.htm

  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–260

  22. Microsoft Corporation, XBox 360 Programming considerations (2009), http://msdn.microsoft.com/en-us/library/bb203938(XNAGameStudio.10).aspx

  23. Shawn Hargreaves, Point sprites on XBox (2007), http://blogs.msdn.com/shawnhar/archive/2007/01/03/point-sprites-on-xbox.aspx

  24. J. Koza, Genetic Programming II: Automatic Discovery of Reusable Programs (MIT Press, Cambridge, 1998)

    Google Scholar 

  25. J. Andrews, N. Baker, XBox 360 system architecture. IEEE Micro 26, 25–37 (2006)

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Garnett Wilson.

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

Reprints 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

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10710-010-9102-5

Keywords

Navigation