Skip to main content
Log in

Fast parallel genetic programming: multi-core CPU versus many-core GPU

  • Original Paper
  • Published:
Soft Computing Aims and scope Submit manuscript

Abstract

Genetic Programming (GP) is a computationally intensive technique which is also highly parallel in nature. In recent years, significant performance improvements have been achieved over a standard GP CPU-based approach by harnessing the parallel computational power of many-core graphics cards which have hundreds of processing cores. This enables both fitness cases and candidate solutions to be evaluated in parallel. However, this paper will demonstrate that by fully exploiting a multi-core CPU, similar performance gains can also be achieved. This paper will present a new GP model which demonstrates greater efficiency whilst also exploiting the cache memory. Furthermore, the model presented in this paper will utilise Streaming SIMD Extensions to gain further performance improvements. A parallel version of the GP model is also presented which optimises multiple thread execution and cache memory. The results presented will demonstrate that a multi-core CPU implementation of GP can yield performance levels that match and exceed those of the latest graphics card implementations of GP. Indeed, a performance gain of up to 420-fold over standard GP is demonstrated and a threefold gain over a graphics card implementation.

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.

Fig. 1

Similar content being viewed by others

References

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

  • Banzhaf W, Harding S, Langdon WB, Wilson G (2009) Accelerating genetic programming through graphics processing units. In: Genetic programming theory and practice VI. Genetic and Evolutionary Computation. Springer, Ann Arbor, pp 1–19

  • 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 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, FL, USA, p 1229

  • Dongarra J, Hinds AR (1979) Unrolling loops in FORTRAN. Softw Pract Exp 9(3):219–226

    Article  MATH  Google Scholar 

  • 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

  • Fernández F, Tomassini M, Vanneschi L (2003) An empirical study of multipopulation genetic programming. Genet Program Evolvable Mach 4(1):21–51

    Article  MATH  Google Scholar 

  • Folino G, Pizzuti C, Spezzano G (2003) A scalable cellular implementation of parallel genetic programming

  • Frank A, Asuncion A (2010) UCI machine learning repository

  • Golub G, Loan C (1989) Matrix computations, Johns Hopkins series in the mathematical sciences. Johns Hopkins University Press, Baltimore

  • Gustafson S, Burke EK (2006) The speciating island model: an alternative parallel evolutionary algorithm. J Parallel Distrib Comput 66(8):1025–1036

    Google Scholar 

  • 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

  • Intel architecture software developer’s manual volume 2: instruction set reference intel architecture software developer’s manual volume 2: instruction set reference (1997)

  • Juille H, Pollack JB (1996) Massively parallel genetic programming. In: Angeline PJ, Kinnear KE Jr (eds) Advances in genetic programming 2. MIT Press, Cambridge, chapter 17, pp 339–358

  • KDD Cup 1999 Data: third international knowledge discovery and data mining tools competition. KDD Cup 1999 data. Third international knowledge discovery and data mining tools competition (1999)

  • King RD, Feng C, Sutherland A (1995) Statlog: comparison of classification algorithms on large real-world problems

  • 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

  • Lam MD, Rothberg EE, Wolf ME (1991) The cache performance and optimizations of blocked algorithms. In: Proceedings of the fourth international conference on architectural support for programming languages and operating systems. ASPLOS-IV, ACM, New York, NY, USA, pp 63–74

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

    Article  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. Genetic Program 4971(CSM-470):73–85

    Article  Google Scholar 

  • Lee VW, Kim C, Chhugani J, Deisher M, Kim D, Nguyen AD, Satish N, Smelyanskiy M, Chennupaty S, Hammarlund P, Singhal R, Dubey P (2010) Debunking the 100× GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU. In: Proceedings of the 37th annual international symposium on Computer architecture, ISCA ’10, ACM, New York, NY, pp 451–460

  • 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, pp 1379–1386

  • 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. Genetic 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, MA, pp 339–344

  • Punch WF (1998) How effective are multiple populations in genetic programming. In: Koza JR, Banzhaf W, Chellapilla K, Deb K, Dorigo M, Fogel DB, Garzon MH, Goldberg DE, Iba H, Riolo R (eds) Genetic programming 1998: proceedings of the third annual conference, Morgan Kaufmann, University of Wisconsin, Madison, Wisconsin, USA, pp 308–313

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

  • Smith AJ (1982) Cache memories. ACM Comput Surv 14(3):473–530

    Article  Google Scholar 

  • 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

  • Wolf ME, Lam MS (1991), A data locality optimizing algorithm. In: Proceedings of the ACM SIGPLAN 1991 conference on programming language design and implementation, PLDI ’91, ACM, New York, pp 30–44

  • Wolfe M (1989) More iteration space tiling. In: Proceedings of the 1989 ACM/IEEE conference on supercomputing. Supercomputing ’89, ACM, New York, pp 655–664

Download references

Acknowledgments

This work was supported in part by the University of Bristol and the UK’s Engineering and Physical Sciences Research Council.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Darren M. Chitty.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chitty, D.M. Fast parallel genetic programming: multi-core CPU versus many-core GPU. Soft Comput 16, 1795–1814 (2012). https://doi.org/10.1007/s00500-012-0862-0

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00500-012-0862-0

Keywords

Navigation