Evolving AVX512 Parallel C Code Using GP

  • William B. LangdonEmail author
  • Ronny Lorenz
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11451)


Using 512 bit Advanced Vector Extensions, previous development history and Intel documentation, BNF grammar based genetic improvement automatically ports RNAfold to AVX, giving up to a 1.77 fold speed up. The evolved code pull request is an accepted GI software maintenance update to bioinformatics package ViennaRNA.


RNA secondary structure prediction Genetic programming GGGP SIMD parallel computing Software engineering RCS SBSE 



Funded by EPSRC grant EP/M025853/1.

GP code will be available via the author’s home page.


  1. 1.
    Lorenz, R., et al.: ViennaRNA Package 2.0. AMB 6(1) (2011).
  2. 2.
    Langdon, W.B., Harman, M.: Grow and graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation. In: Langdon, W.B., et al. (eds.) Genetic Improvement 2015 Workshop, pp. 805–810. ACM, Madrid, 11–15 July 2015.
  3. 3.
    Langdon, W.B., Lorenz, R.: Improving SSE parallel code with grow and graft genetic programming. In: Petke, J., et al. (eds.) GI-2017, pp. 1537–1538. ACM, Berlin, 15–19 July 2017.
  4. 4.
    Langdon, W.B., Lorenz, R.: CUDA RNAfold. Technical report RN/18/02, Computer Science, University College, London, Gower Street, London, 27 March 2018.
  5. 5.
    Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. IEEE Trans. EC 19(1), 118–135 (2015). Scholar
  6. 6.
    Langdon, W.B., Petke, J., Lorenz, R.: Evolving better RNAfold structure prediction. In: Castelli, M., Sekanina, L., Zhang, M., Cagnoni, S., García-Sánchez, P. (eds.) EuroGP 2018. LNCS, vol. 10781, pp. 220–236. Springer, Cham (2018). Scholar
  7. 7.
    Andronescu, M., Bereg, V., Hoos, H.H., Condon, A.: RNA STRAND: the RNA secondary structure and statistical analysis database. BMC Bioinform. 9(1), 340 (2008). Scholar
  8. 8.
    Langdon, W.B.: Genetic improvement of programs. In: Matousek, R. (ed.) 18th International Conference on Soft Computing, MENDEL 2012. Brno University of Technology, Brno, 27–29 June 2012. Invited Keynote
  9. 9.
    Petke, J., Haraldsson, S.O., Harman, M., Langdon, W.B., White, D.R., Woodward, J.R.: Genetic improvement of software: a comprehensive survey. IEEE Trans. EC 22(3), 415–432 (2018). Scholar
  10. 10.
    Langdon, W.B.: Genetically improved software. In: Gandomi, A.H., Alavi, A.H., Ryan, C. (eds.) Handbook of Genetic Programming Applications, pp. 181–220. Springer, Cham (2015). Scholar
  11. 11.
    Langdon, W.B., Lam, Brian Y.H., Petke, J., Harman, M.: Improving CUDA DNA analysis software with genetic programming. In: Silva, S., et al. (eds.) GECCO 2015, pp. 1063–1070. ACM, Madrid, 11–15 July 2015.
  12. 12.
    Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Specialising software for different downstream applications using genetic improvement and code transplantation. IEEE Trans. SE 44(6), 574–594 (2018). Scholar
  13. 13.
    Koza, J.R.: Genetic Programming: On the Programming of Computers by Natural Selection. MIT Press, Cambridge (1992)zbMATHGoogle Scholar
  14. 14.
    Banzhaf, W., Nordin, P., Keller, R.E., Francone, F.D.: Genetic Programming - An Introduction. Morgan Kaufmann, San Francisco (1998)CrossRefGoogle Scholar
  15. 15.
    Poli, R., Langdon, W.B., McPhee, N.F.: A field guide to genetic programming (2008), (With Contributions by J.R. Koza). Published via and freely available at
  16. 16.
    Langdon, W.B.: Genetic improvement of software for multiple objectives. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 12–28. Springer, Cham (2015). Scholar
  17. 17.
    Langdon, W.B.: Genetic improvement GISMOE blue software tool demo. Technical report RN/18/06, University College, London, 22 September 2018.
  18. 18.
    Lopez-Lopez, V.R., Trujillo, L., Legrand, P.: Novelty search for software improvement of a SLAM system. In: Alexander, B., et al. (eds.) 5th Edition of GI @ GECCO 2018, pp. 1598–1605. ACM, Kyoto, 15–19 July 2018.
  19. 19.
    Langdon, W.B., Lam, B.Y.H., Modat, M., Petke, J., Harman, M.: Genetic improvement of GPU software. Genet. Program. Evol. Mach. 18(1), 5–44 (2017). Scholar
  20. 20.
    Langdon, W.B.: Evolving better RNAfold C source code. Technical report RN/17/08, University College, London (2017).
  21. 21.
    Langdon, W.B., Lam, B.Y.H.: Genetically improved BarraCUDA. BioData Min. 20(28) (2017).
  22. 22.
    Schaffer, J.D.: Multiple objective optimization with vector evaluated genetic algorithms. In: Grefenstette, J.J. (ed.) Proceedings of an International Conference on Genetic Algorithms and the Applications, pp. 93–100. Carnegie-Mellon University, Pittsburgh, 24–26 July 1985.
  23. 23.
    Goldberg, D.E.: Genetic Algorithms in Search Optimization and Machine Learning. Addison-Wesley, Boston (1989)zbMATHGoogle Scholar
  24. 24.
    De Jong, K.A.: An analysis of the behavior of a class of genetic adaptive systems. Ph.D. thesis, Computer and Communications Sciences, Michigan, USA (1975)Google Scholar
  25. 25.
    Deb, K., Pratap, A., Agarwal, S., Meyarivan, T.: A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans. EC 6(2), 182–197 (2002). Scholar
  26. 26.
    Langdon, W.B.: Genetic Programming and Data Structures. Kluwer, Boston (1998). Scholar
  27. 27.
    Knieper, T., Defo, B., Kaufmann, P., Platzner, M.: On robust evolution of digital hardware. In: Hinchey, M., Pagnoni, A., Rammig, F.J., Schmeck, H. (eds.) BICC 2008. ITIFIP, vol. 268, pp. 213–222. Springer, Boston (2008). Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Computer Science, CRESTUCLLondonUK
  2. 2.Institute for Theoretical ChemistryUniversity of ViennaViennaAustria

Personalised recommendations