Skip to main content

Advertisement

Log in

Genetic programming on graphics processing units

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

Abstract

The availability of low cost powerful parallel graphics cards has stimulated the port of Genetic Programming (GP) on Graphics Processing Units (GPUs). Our work focuses on the possibilities offered by Nvidia G80 GPUs when programmed in the CUDA language. In a first work we have showed that this setup allows to develop fine grain parallelization schemes to evaluate several GP programs in parallel, while obtaining speedups for usual training sets and program sizes. Here we present another parallelization scheme and optimizations about program representation and use of GPU fast memory. This increases the computation speed about three times faster, up to 4 billion GP operations per second. The code has been developed within the well known ECJ library and is open source.

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

Access this article

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

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

Notes

  1. http://www.graphics.stanford.edu/projects/brookgpu/.

  2. http://www.libsh.org/.

  3. See http://www.gpgpu.org for a survey.

  4. http://www.gpgpgpu.com.

  5. see http://www.nvidia.com/object/cuda_home.html.

  6. iflte is a quaternary operator that stands for: if sibling1 less than sibling2 then sibling3 else sibling4.

References

  1. J.R. Koza, M.A. Keane, M.J. Streeter, W. Mydlowec, J. Yu, G. Lanza, Genetic Programing IV: Routine Human-Competitive Machine Intelligence. (Springer, 2005)

  2. C. Gathercole, P. Ross, Dynamic training subset selection for supervised learning in genetic programming, in Proceedings of the third Conference on Parallel Problem Solving from Nature, volume 866 of Lecture Notes in Computer Science, (Springer, Berlin, 1994), pp. 312–321

  3. C. Gathercole, P. Ross, Tackling the boolean even N parity problem with genetic programming and limited-error fitness, in Proceedings of the Second Annual Conference on Genetic Programming, (Morgan Kaufmann, Los Altos, 1997), pp. 119–127

  4. M. Keijzer, Alternatives in subtree caching for genetic programming, in Genetic Programming 7th European Conference, EuroGP 2004, Proceedings, volume 3003 of LNCS, (Springer, Berlin, 2004), pp. 328–337

  5. C. Fillon, A. Bartoli, A divide and conquer strategy for improving efficiency and probability of success in genetic programming, in Proceedings of the 9th European Conference on Genetic Programming, volume 3905 of Lecture Notes in Computer Science, (Springer, Berlin, 2006), pp. 13–23

  6. W.B. Langdon, Size fair and homologous tree genetic programming crossovers, in Proceedings of the Genetic and Evolutionary Computation Conference, (Morgan-Kaufmann, Los Altos, 1999), pp. 1092–1097

  7. P. Nordin, A compiling genetic programming system that directly manipulates the machine code, in Advances in Genetic Programming, Chapter 14. (MIT Press, Cambridge, 1994), pp. 311–331.

  8. P. Nordin, W. Banzhaf, Evolving turing-complete programs for a register machine with self-modifying code, in Genetic Algorithms: Proceedings of the Sixth International Conference (ICGA95), (Morgan Kaufmann, Los Altos 1995), pp. 318–325

  9. P. Tufts, Parallel case evaluation for genetic programming, in 1993 Lectures in Complex Systems, volume VI of Santa Fe Institute Studies in the Science of Complexity, (Addison-Wesley, Reading, 1995), pp. 591–596

  10. H. Juillé, J.B. Pollack, Massively parallel genetic programming, in Advances in Genetic Programming 2, Chapter 17. (MIT Press, Cambridge, 1996), pp. 339–358

  11. F. Fernandez, M. Tomassini, L. Vanneschi, An empirical study of multipopulation genetic programming. Genet. Programm. Evolvable Mach., 4(1), 21–51, (2003)

    Google Scholar 

  12. S.M. Cheang, K.S. Leung, K.H. Lee, Genetic parallel programming: design and implementation. Evol. Comput., 14(2), 129–156, Summer (2006)

    Article  Google Scholar 

  13. M.L. Wong, T.T. Wong, K.L. Fok, Parallel evolutionary algorithms on graphics processing unit, in Proceedings of IEEE Congress on Evolutionary Computation 2005 (CEC 2005), vol. 3. (Edinburgh, UK, 2005), pp. 2286–2293. IEEE

  14. Q. Yu, C. Chen, Z. Pan, Parallel genetic algorithms on programmable graphics hardware, in Advances in Natural Computation, volume 3162 of LNCS, (Springer, Berlin, 2005), pp. 1051–1059

  15. Z. Luo, H. Liu, Cellular genetic algorithms and local search for 3-sat problem on graphic hardware, in IEEE Congress on Evolutionary Computation—CEC 2006., (2006), pp. 988–2992

  16. K. Kaul, C.-A. Bohn, A genetic texture packing algorithm on a graphical processing unit, in Proceedings of the 9th International Conference on Computer Graphics and Artificial Intelligence (2006)

  17. T.-T. Wong, M.L. Wong, Parallel Evolutionary Computations, Chapter 7. (Springer, Berlin, 2006), pp. 133–154

  18. K.-L. Fok, T.-T. Wong, M.-L. Wong, Evolutionary computing on consumer graphics hardware. IEEE Int. Syst., 22(2), 69–78 (2007)

    Google Scholar 

  19. S. Harding, W. Banzhaf, Fast genetic programming on GPUs, in proceedings of the 10th European Conference on Genetic Programming, EuroGP 2007, volume 4445 of Lecture Notes in Computer Science, (Springer, Berlin, 2007), pp. 90–101

  20. S. Harding, W. Banzhaf, Fast genetic programming and artificial developmental systems on GPUs, in proceedings of the 2007 High Performance Computing and Simulation (HPCS’07) Conference. (IEEE Computer Society, 2007), p. 2

  21. D.M. Chitty, A data parallel approach to genetic programming using programmable graphics hardware, in Proceedings of the 2007 Genetic and Evolutionary Computing Conference (GECCO’07), (ACM Press, London, UK, 2007), pp. 1566–1573

  22. W.B. Langdon, W. Banzhaf, A SIMD interpreter for genetic programming on GPU graphics cards, in Proceedings of the 11th European Conference on Genetic Programming, EuroGP 2008, volume 4971 of Lecture Notes in Computer Science ed by M. O’Neill, L. Vanneschi, S. Gustafson, A.I.E. Alcazar, I. De Falco, A. Della Cioppa, E. Tarantino, (Springer, Naples, 2008) pp. 73–85

  23. D. Robilliard, V. Marion-Poty, C. Fonlupt, Population parallel GP on the G80 GPU, in Proceedings of the 11th European Conference on Genetic Programming, EuroGP 2008, volume 4971 of Lecture Notes in Computer Science ed by M. O’Neill, L. Vanneschi, S. Gustafson, A.I.E. Alcazar, I. De Falco, A. Della Cioppa, E. Tarantino, (Springer, Naples, 2008), pp. 98–109

  24. W.B. Langdon, A.P. Harrison, GP on SPMD parallel graphics hardware for mega bioinformatics data mining, Soft Computing, (2008). Special Issue. On line first

  25. S. Harding, Evolution of image filters on graphics processor units using cartesian genetic programming, in 2008 IEEE World Congress on Computational Intelligence ed by J. Wang, (IEEE Computational Intelligence Society, IEEE Press, Hong Kong, 2008)

  26. D.T. Anderson, R.H. Luke, J.M. Keller, Speedup of fuzzy clustering through stream processing on graphics processing units, in 2008 IEEE World Congress on Computational Intelligence ed by J. Wang, (IEEE Press, Hong Kong, 2008), pp. 1101–1106

  27. S. Luke, L. Panait, G. Balan, S. Paus, Z. Skolicki, E. Popovici, K. Sullivan, J. Harrison, J. Bassett, R. Hubley, A. Chircop, ECJ 18—a Java-based evolutionary computation research system. Available at http://www.cs.gmu.edu/eclab/projects/ecj, (2008)

  28. P. Sanders, Emulating MIMD behavior on SIMD machines, in Proceedings of International Conference on Massively Parallel Processing Applications and Development, (Elsevier, Delft, 1994).

  29. D. Robilliard, V. Marion-Poty, C. Fonlupt, GPURegression: Population parallel GP on G80 GPUs—ECJ compatible code. Available at http://www.lil.univ-littoral.fr/~robillia/GPUregression.html, (2008)

  30. A.V. Aho, R. Sethi, J.D. Ullman, Compilers—Principles, Techniques and Tools. (Addison-Wesley, Reading, 1986)

    Google Scholar 

  31. J.R. Koza, Genetic Programming II: Automatic Discovery of Reusable Programs. (The MIT Press, 1994)

  32. J.R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection. (The MIT Press, 1992)

  33. K.J. Lang, M.J. Witbrock, Learning to tell two spirals apart, in Proceedings of the 1988 Connectionist Summer Schools, ed by Morgan-Kaufmann (1988)

  34. W.B. Langdon, Evolving programs on graphics cards—C++ code. Available at http://www.cs.ucl.ac.uk/external/W.Langdon/ftp/gp-code/gpu_gp_1.tar.gz, (2008)

  35. M. Brameier, W. Banzhaf, Linear Genetic Programming. Number XVI in Genetic and Evolutionary Computation. (Springer, 2007)

Download references

Acknowledgment

We thank W. B. Langdon for kindly giving access to his RPN breeding code.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Denis Robilliard.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Robilliard, D., Marion-Poty, V. & Fonlupt, C. Genetic programming on graphics processing units. Genet Program Evolvable Mach 10, 447–471 (2009). https://doi.org/10.1007/s10710-009-9092-3

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10710-009-9092-3

Keywords

Navigation