Soft Computing

, Volume 21, Issue 14, pp 3859–3878 | Cite as

Faster GPU-based genetic programming using a two-dimensional stack

  • Darren M. ChittyEmail author
Methodologies and Application


Genetic programming (GP) is a computationally intensive technique which also has a high degree of natural parallelism. Parallel computing architectures have become commonplace especially with regards to Graphics Processing Units (GPU). Hence, versions of GP have been implemented that utilise these highly parallel computing platforms enabling significant gains in the computational speed of GP to be achieved. However, recently a two-dimensional stack approach to GP using a multi-core CPU also demonstrated considerable performance gains. Indeed, performances equivalent to or exceeding that achieved by a GPU were demonstrated. This paper will demonstrate that a similar two-dimensional stack approach can also be applied to a GPU-based approach to GP to better exploit the underlying technology. Performance gains are achieved over a standard single-dimensional stack approach when utilising a GPU. Overall, a peak computational speed of over 55 billion Genetic Programming Operations per Second are observed, a twofold improvement over the best GPU-based single-dimensional stack approach from the literature.


Genetic programming Many-core GPU Parallel programming 


Conflict of interest

The author declares that they have no conflict of interest.


  1. Al-Madi N, Ludwig S (2013) Scaling genetic programming for data classification using mapreduce methodology. In: 2013 World Congress on Nature and Biologically Inspired Computing (NaBIC), pp 132–139Google Scholar
  2. Andre D, Koza JR (1996) Parallel genetic programming: a scalable implementation using the transputer network architecture. MIT Press, CambridgeGoogle Scholar
  3. Augusto DA, Barbosa HJC (2013) Accelerated parallel genetic programming tree evaluation with OpenCL. J Parallel Distrib Comput 73(1):86–100CrossRefGoogle Scholar
  4. Brameier M, Banzhaf W (2001) A comparison of linear genetic programming and neural networks in medical data mining. IEEE Trans Evol Comput 5(1):17–26CrossRefzbMATHGoogle Scholar
  5. Cano A, Luna J, Ventura S (2013) High performance evaluation of evolutionary-mined association rules on GPUs. J Supercomput 66(3):1438–1461CrossRefGoogle Scholar
  6. Cano A, Ventura S (2014) GPU-parallel subtree interpreter for genetic programming. In: Proceedings of the 2014 Conference on Genetic and Evolutionary Computation, GECCO ’14. ACM, New York, NY, USA, pp 887–894Google Scholar
  7. Cano A, Zafra A, Ventura S (2012) Speeding up the evaluation phase of GP classification algorithms on GPUs. Soft Comput. 16(2):187–202CrossRefGoogle Scholar
  8. Chitty D (2012) Fast parallel genetic programming: multi-core CPU versus many-core GPU. Soft Comput 16(10):1795–1814CrossRefGoogle Scholar
  9. Chitty D (2014) Improving the performance of GPU based genetic programming through exploitation of on-chip memory. Soft Comput 20(2):661–680CrossRefGoogle Scholar
  10. Chitty DM (2007) A data parallel approach to genetic programming using programmable graphics hardware. In: Proceedings of the 9th annual conference on Genetic and evolutionary computation, GECCO ’07, pp 1566–1573Google Scholar
  11. Chong FS, Langdon WB (1999) Java based distributed genetic programming on the internet. In: Banzhaf W, Daida J, Eiben AE, Garzon MH, Honavar V, Jakiela M, Smith RE (eds) Proceedings of the Genetic and Evolutionary Computation Conference, vol 2. Morgan Kaufmann, Orlando, p 1229Google Scholar
  12. Cupertino LF, Silva CP, Dias DM, Pacheco MAC, Bentes C (2011) Evolving CUDA PTX programs by quantum inspired linear genetic programming. In: Proceedings of the 13th annual conference companion on Genetic and evolutionary computation, GECCO ’11. ACM, New York, NY, USA, pp 399–406Google Scholar
  13. Eklund SE (2003) Time series forecasting using massively parallel genetic programming. In: Proceedings of the 17th International Symposium on Parallel and Distributed Processing, IPDPS ’03, IEEE Computer Society, Washington, DC, USA, p 143.1Google Scholar
  14. Frank A, Asuncion A (2010) UCI machine learning repository.
  15. Harding S, Banzhaf W (2007) Fast genetic programming on GPUs. In: Proceedings of the 10th European Conference on Genetic Programming, vol 4445 of LNCS’. Springer pp 90–101Google Scholar
  16. Harding S, Banzhaf W (2009) Distributed genetic programming on GPUs using CUDA. In: Risco-Martn JL, Garnica O (eds) WPABA’09: Proceedings of the Second International Workshop on Parallel Architectures and Bioinspired Algorithms (WPABA 2009). Universidad Complutense de Madrid, Raleigh, NC, USA, pp 1–10Google Scholar
  17. Juillé H, Pollack JB (1996) Massively parallel genetic programming. In: Angeline PJ, Kinnear KE, Jr. (eds) Advances in Genetic Programming 2, chapter 17. MIT Press, Cambridge, pp 339–358Google Scholar
  18. KDD Cup 1999 Data: Third international knowledge discovery and data mining tools competition (1999).
  19. King RD, Feng C, Sutherland A (1995) Statlog: Comparison of classification algorithms on large real-world problems. Appl Artif Intell 9(3):289–333CrossRefGoogle Scholar
  20. Klein J, Spector L (2007) Unwitting distributed genetic programming via asynchronous javascript and XML. In: Proceedings of the 9th annual conference on Genetic and evolutionary computation, GECCO ’07. ACM, New York, NY, USA, pp 1628–1635Google Scholar
  21. Koza JR (1992) Genetic programming: on the programming of computers by means of natural selection. MIT Press, CambridgezbMATHGoogle Scholar
  22. Langdon WB (2010) A many threaded CUDA interpreter for genetic programming. In: ‘EuroGP’, pp 146–158Google Scholar
  23. Langdon WB, Banzhaf W (2008) A SIMD interpreter for genetic programming on GPU graphics cards. In: Proceedings of the 11th European Conference on Genetic Programming, EuroGP’08. Springer, Berlin, Heidelberg, pp 73–85Google Scholar
  24. Langdon W, Harrison A (2008) GP on SPMD parallel graphics hardware for mega bioinformatics data mining. Soft Comput 12:1169–1183CrossRefGoogle Scholar
  25. Lewis TE, Magoulas GD (2009) Strategies to minimise the total run time of cyclic graph based genetic programming with GPUs. In: Proceedings of the 11th Annual conference on Genetic and evolutionary computation, GECCO ’09. ACM, New York, NY, USA, pp 1379–1386Google Scholar
  26. Lewis TE, Magoulas GD (2011) TMBL kernels for CUDA GPUs compile faster using PTX: computational intelligence on consumer games and graphics hardware. In: Proceedings of the 13th annual conference companion on Genetic and evolutionary computation, GECCO ’11. ACM, New York, NY, USA, pp 455–462Google Scholar
  27. Maitre O, Lachiche N, Collet P (2010) Fast evaluation of GP trees on GPGPU by optimizing hardware scheduling. In: ‘EuroGP’, pp 301–312Google Scholar
  28. Martin P (2001) A hardware implementation of a genetic programming system using FPGAs and Handel-C. Genet Program Evolvable Mach 2:317–343. doi: 10.1023/A:1012942304464 CrossRefzbMATHGoogle Scholar
  29. Niwa T, Iba H (1996) Distributed genetic programming: empirical study and analysis. In: Proceedings of the First Annual Conference on Genetic Programming, GECCO ’96. MIT Press, Cambridge, pp 339–344Google Scholar
  30. Nordin P (1994) A compiling genetic programming system that directly manipulates the machine code. In: Kinnear KE Jr (ed) Advances in Genetic Programming. MIT Press, Cambridge, pp 311–331Google Scholar
  31. Nordin P, Banzhaf W, (1995) Evolving turing-complete programs for a register machine with self-modifying code. In: Eshelman LJ (ed) ICGA, Morgan Kaufmann, pp 318–327Google Scholar
  32. Poli R, Langdon WB (1999) Sub-machine-code genetic programming. In: Spector L, Langdon WB, O’Reilly U-M, Angeline PJ (eds) Advances in Genetic Programming. MIT Press, Cambridge, pp 301–323CrossRefGoogle Scholar
  33. Robilliard D, Marion-Poty V, Fonlupt C (2008) Population parallel GP on the G80 GPU. In: Proceedings of the 11th European conference on Genetic programming, EuroGP’08. Springer, Berlin, Heidelberg, pp 98–109Google Scholar
  34. Robilliard D, Marion-Poty V, Fonlupt C (2009) Genetic programming on graphics processing units. Genet Program Evol Mach 10:447–471CrossRefGoogle Scholar
  35. Sherry D, Veeramachaneni K, McDermott J, O’Reilly U-M (2012) Flex-gp: Genetic programming on the cloud. In: Proceedings of the 2012 European Conference on Applications of Evolutionary Computation, EvoApplications’12. Springer-Verlag, Berlin, Heidelberg, pp 477–486Google Scholar
  36. Tufts P (1995) Parallel case evaluation for genetic programming. In: Nadel L, Stein DL (eds) 1993 Lectures in Complex Systems, vol VI of Santa Fe Institute Studies in the Science of Complexity. Addison-Wesley, pp 591–596Google Scholar
  37. Vasicek Z, Sekanina L (2008) Hardware accelerators for cartesian genetic programming. In: ONeill M, Vanneschi L, Gustafson S, Esparcia Alczar A, Falco I, Cioppa A, Tarantino E (eds) Genetic Programming, vol 4971 of Lecture Notes in Computer Science. Springer Berlin Heidelberg, pp 230–241Google Scholar
  38. Vašíček Z, Slaný K (2012) Efficient phenotype evaluation in cartesian genetic programming. In: Moraglio A, Silva S, Krawiec K, Machado P, Cotta C (eds) Genetic Programming, vol 7244., Lecture Notes in Computer ScienceSpringer, Berlin Heidelberg, pp 266–278CrossRefGoogle Scholar
  39. White D, McDermott J, Castelli M, Manzoni L, Goldman B, Kronberger G, Jakowski W, OReilly UM, Luke S (2013) Better GP benchmarks: community survey results and proposals. Genet Program Evolvable Mach 14(1):3–29CrossRefGoogle Scholar
  40. Wilson G, Banzhaf W (2008) Linear genetic programming GPGPU on Microsoft’s Xbox 360. In: IEEE Congress on Evolutionary Computation, 2008. CEC 2008. (IEEE World Congress on Computational Intelligence), pp 378–385Google Scholar
  41. Wilson G, Banzhaf W (2010) Deployment of parallel linear genetic programming using GPUs on PC and video game console platforms. Genet Program Evolvable Mach 11(2):147–184CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  1. 1.Department of Computer ScienceUniversity of BristolBristolUK

Personalised recommendations