GPGPGPU: Evaluation of Parallelisation of Genetic Programming Using GPGPU

  • Jinhan Kim
  • Junhwi Kim
  • Shin Yoo
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10452)


We evaluate different approaches towards parallelisation of Genetic Programming (GP) using General Purpose Computing on Graphics Processor Units (GPGPU). Unlike Genetic Algorithms, which uses a single or a fixed number of fitness functions, GP has to evaluate a diverse population of programs. Since GPGPU is based on the Single Instruction Multiple Data (SIMD) architecture, parallelisation of GP using GPGPU allows multiple approaches. We study three different parallelisation approaches: kernel per individual, kernel per generation, and kernel interpreter. The results of the empirical study using a widely studied symbolic regression benchmark show that no single approach is the best: the decision about parallelisation approach has to consider the trade-off between the compilation and the execution overhead of GPU kernels.


  1. 1.
    Langdon, W.B., Banzhaf, W.: A SIMD interpreter for genetic programming on GPU graphics cards. In: O’Neill, M., Vanneschi, L., Gustafson, S., Esparcia Alcázar, A.I., Falco, I., Cioppa, A., Tarantino, E. (eds.) EuroGP 2008. LNCS, vol. 4971, pp. 73–85. Springer, Heidelberg (2008). doi: 10.1007/978-3-540-78671-9_7 CrossRefGoogle Scholar
  2. 2.
    Langdon, W.B., Harman, M.: Genetically improving 50,000 lines of C++. Technical report, RN/12/09, Department of Computer Science, University College London (2012)Google Scholar
  3. 3.
    Le Goues, C., Dewey-Vogt, M., Forrest, S., Weimer, W.: A systematic study of automated program repair: fixing 55 out of 105 bugs for $8 each. In: Proceedings of the 34th International Conference on Software Engineering, pp. 3–13 (2012)Google Scholar
  4. 4.
    Owens, J.D., Luebke, D., Govindaraju, N., Harris, M., Krüger, J., Lefohn, A.E., Purcell, T.J.: A survey of general-purpose computation on graphics hardware. Comput. Graphics Forum 26(1), 80–113 (2007)CrossRefGoogle Scholar
  5. 5.
    Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Using genetic improvement and code transplants to specialise a C++ program to a problem class. In: Nicolau, M., Krawiec, K., Heywood, M.I., Castelli, M., García-Sánchez, P., Merelo, J.J., Rivas Santos, V.M., Sim, K. (eds.) EuroGP 2014. LNCS, vol. 8599, pp. 137–149. Springer, Heidelberg (2014). doi: 10.1007/978-3-662-44303-3_12 Google Scholar
  6. 6.
    Silberstein, M., Ford, B., Keidar, I., Witchel, E.: GPUfs: integrating a file system with GPUs. SIGARCH Comput. Archit. News 41(1), 485–498 (2013)Google Scholar
  7. 7.
    Sohn, J., Yoo, S.: FLUCCS: using code and change metrics to improve fault localisation. In: Proceedings of the International Symposium on Software Testing and Analysis, ISSTA 2017 (2017, to appear)Google Scholar
  8. 8.
    Weimer, W., Nguyen, T., Le Goues, C., Forrest, S.: Automatically finding patches using genetic programming. In: Proceedings of the 31st IEEE International Conference on Software Engineering (ICSE 2009), pp. 364–374. IEEE, 16–24 May 2009Google Scholar
  9. 9.
    White, D., Arcuri, A., Clark, J.: Evolutionary improvement of programs. IEEE Trans. Evol. Comput. 15(4), 515–538 (2011)CrossRefGoogle Scholar
  10. 10.
    White, D.R., McDermott, J., Castelli, M., Manzoni, L., Goldman, B.W., Kronberger, G., Jaśkowski, W., O’Reilly, U.M., Luke, S.: Better GP benchmarks: community survey results and proposals. Genet. Program Evolvable Mach. 14(1), 3–29 (2013)CrossRefGoogle Scholar
  11. 11.
    Wilson, G., Banzhaf, W.: Deployment of CPU and GPU-based genetic programming on heterogeneous devices. In: Proceedings of the 11th Annual Conference Companion on Genetic and Evolutionary Computation Conference (GECCO 2009), pp. 2531–2538. ACM Press, New York, July 2009Google Scholar
  12. 12.
    Yoo, S.: Evolving human competitive spectra-based fault localisation techniques. In: Fraser, G., Teixeira de Souza, J. (eds.) SSBSE 2012. LNCS, vol. 7515, pp. 244–258. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-33119-0_18 CrossRefGoogle Scholar
  13. 13.
    Yoo, S., Harman, M., Ur, S.: GPGPU test suite minimisation: search based software engineering performance improvement using graphics cards. Empirical Softw. Eng. 18(3), 550–593 (2013)CrossRefGoogle Scholar
  14. 14.
    Yoo, S., Xie, X., Kuo, F.-C., Chen, T.Y., Harman, M.: Human competitiveness of genetic programming in spectrum-based fault localisation: theoretical and empirical analysis. ACM Trans. Softw. Eng. Methodol. 26(1), 4:1–4:30 (2017). doi: 10.1145/3078840

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.Korea Advanced Institute of Science and TechnologyDaejeonRepublic of Korea

Personalised recommendations