Skip to main content
Log in

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

  • Methodologies and Application
  • Published:
Soft Computing Aims and scope Submit manuscript

Abstract

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.

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

Similar content being viewed by others

References

  • 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–139

  • Andre D, Koza JR (1996) Parallel genetic programming: a scalable implementation using the transputer network architecture. MIT Press, Cambridge

    Google Scholar 

  • Augusto DA, Barbosa HJC (2013) Accelerated parallel genetic programming tree evaluation with OpenCL. J Parallel Distrib Comput 73(1):86–100

    Article  Google Scholar 

  • 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–26

    Article  MATH  Google Scholar 

  • Cano A, Luna J, Ventura S (2013) High performance evaluation of evolutionary-mined association rules on GPUs. J Supercomput 66(3):1438–1461

    Article  Google Scholar 

  • 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–894

  • Cano A, Zafra A, Ventura S (2012) Speeding up the evaluation phase of GP classification algorithms on GPUs. Soft Comput. 16(2):187–202

    Article  Google Scholar 

  • Chitty D (2012) Fast parallel genetic programming: multi-core CPU versus many-core GPU. Soft Comput 16(10):1795–1814

    Article  Google Scholar 

  • Chitty D (2014) Improving the performance of GPU based genetic programming through exploitation of on-chip memory. Soft Comput 20(2):661–680

    Article  Google Scholar 

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

  • 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 1229

    Google Scholar 

  • 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–406

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

  • Frank A, Asuncion A (2010) UCI machine learning repository. http://archive.ics.uci.edu/ml

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

  • 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–10

  • 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–358

  • KDD Cup 1999 Data: Third international knowledge discovery and data mining tools competition (1999). http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html

  • King RD, Feng C, Sutherland A (1995) Statlog: Comparison of classification algorithms on large real-world problems. Appl Artif Intell 9(3):289–333

    Article  Google Scholar 

  • 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–1635

  • Koza JR (1992) Genetic programming: on the programming of computers by means of natural selection. MIT Press, Cambridge

    MATH  Google Scholar 

  • Langdon WB (2010) A many threaded CUDA interpreter for genetic programming. In: ‘EuroGP’, pp 146–158

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

  • Langdon W, Harrison A (2008) GP on SPMD parallel graphics hardware for mega bioinformatics data mining. Soft Comput 12:1169–1183

    Article  Google Scholar 

  • 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–1386

  • 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–462

  • Maitre O, Lachiche N, Collet P (2010) Fast evaluation of GP trees on GPGPU by optimizing hardware scheduling. In: ‘EuroGP’, pp 301–312

  • 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

    Article  MATH  Google Scholar 

  • 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–344

  • 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–331

    Google Scholar 

  • 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–327

  • 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–323

    Chapter  Google Scholar 

  • 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–109

  • Robilliard D, Marion-Poty V, Fonlupt C (2009) Genetic programming on graphics processing units. Genet Program Evol Mach 10:447–471

    Article  Google Scholar 

  • 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–486

  • 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–596

  • 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–241

  • 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–278

    Chapter  Google Scholar 

  • 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–29

    Article  Google Scholar 

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

  • 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–184

    Article  Google Scholar 

Download references

Conflict of interest

The author declares that they have no conflict of interest.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Darren M. Chitty.

Additional information

Communicated by V. Loia.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Chitty, D.M. Faster GPU-based genetic programming using a two-dimensional stack. Soft Comput 21, 3859–3878 (2017). https://doi.org/10.1007/s00500-016-2034-0

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00500-016-2034-0

Keywords

Navigation