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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.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
Augusto DA, Barbosa HJC (2013) Accelerated parallel genetic programming tree evaluation with OpenCL. J Parallel Distrib Comput 73(1):86–100
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
Cano A, Luna J, Ventura S (2013) High performance evaluation of evolutionary-mined association rules on GPUs. J Supercomput 66(3):1438–1461
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
Chitty D (2012) Fast parallel genetic programming: multi-core CPU versus many-core GPU. Soft Comput 16(10):1795–1814
Chitty D (2014) Improving the performance of GPU based genetic programming through exploitation of on-chip memory. Soft Comput 20(2):661–680
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
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
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
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
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
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
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
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
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
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
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
Conflict of interest
The author declares that they have no conflict of interest.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by V. Loia.
Rights and permissions
About this article
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00500-016-2034-0