Ranking Programming Languages for Evolutionary Algorithm Operations

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10199)


In this paper we measure the speed of several popular and recent programming languages performing the most usual operators in the canonical evolutionary algorithm, mutation and crossover, as well as an usual fitness function, OneMax. These three operations are representative of the kind of the ones performed in binary chromosomes. Our main objectives are, first, to create programs in programming languages that use the fastest available implementation. Second, to find out the differences in speeds for the different languages. Third, to find out whether the usual assumptions about the speed of languages really holds. And, finally, to find if the assumed order of speed in languages used in evolutionary algorithms holds true for all kinds of operations. In order to do that, we use available implementations or perform our own, concluding that the evolutionary algorithm scenario is more complex than usually assumed and finding out some surprising winners and losers among the languages tested.


Benchmarking Implementation of evolutionary algorithms OneMax Genetic operators Programming languages Performance measurements 



This paper is part of the open science effort at the university of Granada. It has been written using knitr, and its source as well as the data used to create it can be downloaded from the GitHub repository It has been supported in part by GeNeura Team, projects TIN2014-56494-C4-3-P (Spanish Ministry of Economy and Competitiveness), Conacyt Project PROINNOVA-220590.


  1. 1.
    Alba, E., Ferretti, E., Molina, J.M.: The influence of data implementation in the performance of evolutionary algorithms. In: Moreno Díaz, R., Pichler, F., Quesada Arencibia, A. (eds.) EUROCAST 2007. LNCS, vol. 4739, pp. 764–771. Springer, Heidelberg (2007). doi: 10.1007/978-3-540-75867-9_96CrossRefGoogle Scholar
  2. 2.
    Desell, T., Anderson, D.P., Magdon-Ismail, M., Newberg, H., Szymanski, B.K., Varela, C.A.: An analysis of massively distributed evolutionary algorithms. In: IEEE Congress on Evolutionary Computation, pp. 1–8. IEEE (2010)Google Scholar
  3. 3.
    Desell, T., Magdon-Ismail, M., Szymanski, B., Varela, C.A., Newberg, H., Anderson, D.P.: Validating evolutionary algorithms on volunteer computing grids. In: Eliassen, F., Kapitza, R. (eds.) DAIS 2010. LNCS, vol. 6115, pp. 29–41. Springer, Heidelberg (2010). doi: 10.1007/978-3-642-13645-0_3CrossRefGoogle Scholar
  4. 4.
    Erb, B., Kargl, F.: A conceptual model for event-sourced graph computing. In: Proceedings of the 9th ACM International Conference on Distributed Event-Based Systems, DEBS 2015, pp. 352–355. ACM, New York, NY, USA (2015).
  5. 5.
    Fortin, F.A., Rainville, D., Gardner, M.A.G., Parizeau, M., Gagné, C., et al.: Deap: evolutionary algorithms made easy. J. Mach. Learn. Res. 13(1), 2171–2175 (2012)MathSciNetzbMATHGoogle Scholar
  6. 6.
    García-Sánchez, P., González, J., Castillo, P., Merelo, J., Mora, A., Laredo, J., Arenas, M.: A distributed service oriented framework for metaheuristics using a public standard. In: González, J.R., Pelta, D.A., Cruz, C., Terrazas, G., Krasnogor, N. (eds.) Nature Inspired Cooperative Strategies for Optimization (NICSO 2010), vol. 284, pp. 211–222. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  7. 7.
    García-Sánchez, P., González, J., Castillo, P.A., García-Arenas, M., Merelo-Guervós, J.J.: Service oriented evolutionary algorithms. Soft Comput. 17(6), 1059–1075 (2013)CrossRefGoogle Scholar
  8. 8.
    Jose Filho, L.R., Treleaven, P.C., Alippi, C.: Genetic-algorithm programming environments. Computer 27(6), 28–43 (1994)CrossRefGoogle Scholar
  9. 9.
    Laredo, J.L.J., Bouvry, P., González, D.L., De Vega, F.F., Arenas, M.G., Merelo, J., Fernandes, C.M.: Designing robust volunteer-based evolutionary algorithms. Genet. Program. Evolvable Mach. 15(3), 221–244 (2014)CrossRefGoogle Scholar
  10. 10.
    Merelo, J.J., García-Sánchez, P., García-Valdez, M., Blancas, I.: There is no fast lunch: an examination of the running speed of evolutionary algorithms in several languages, November 2015. ArXiv e-prints
  11. 11.
    Merelo, J.J., et al.: Benchmarking languages for evolutionary algorithms. In: Squillero, G., Burelli, P. (eds.) EvoApplications 2016. LNCS, vol. 9598, pp. 27–41. Springer, Cham (2016). doi: 10.1007/978-3-319-31153-1_3CrossRefGoogle Scholar
  12. 12.
    Merelo, J.J., et al.: Testing the intermediate disturbance hypothesis: effect of asynchronous population incorporation on multi-deme evolutionary algorithms. In: Rudolph, G., Jansen, T., Beume, N., Lucas, S., Poloni, C. (eds.) PPSN 2008. LNCS, vol. 5199, pp. 266–275. Springer, Heidelberg (2008). doi: 10.1007/978-3-540-87700-4_27CrossRefGoogle Scholar
  13. 13.
    Merelo-Guervós, J.-J., Mora, A., Cruz, J.A., Esparcia, A.I.: Pool-based distributed evolutionary algorithms using an object database. In: Chio, C., et al. (eds.) EvoApplications 2012. LNCS, vol. 7248, pp. 446–455. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-29178-4_45CrossRefGoogle Scholar
  14. 14.
    Merelo, J.J., Romero, G., Arenas, M.G., Castillo, P.A., Mora, A.M., Laredo, J.L.J.: Implementation matters: programming best practices for evolutionary algorithms. In: Cabestany, J., Rojas, I., Joya, G. (eds.) IWANN 2011. LNCS, vol. 6692, pp. 333–340. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-21498-1_42CrossRefGoogle Scholar
  15. 15.
    Merelo-Guervós, J.J., Castillo, P.A., Alba, E.: Algorithm::Evolutionary, a flexible perl module for evolutionary computation. Soft Comput. 14(10), 1091–1109 (2010).,
  16. 16.
    Namiot, D., Sneps-Sneppe, M.: On micro-services architecture. Int. J. Open Inf. Technol. 2(9), 24–27 (2014)Google Scholar
  17. 17.
    Nesmachnow, S., Luna, F., Alba, E.: An empirical time analysis of evolutionary algorithms as C programs. Softw. Pract. Experience 45(1), 111–142 (2015)CrossRefGoogle Scholar
  18. 18.
    Santana, R.: Estimation of distribution algorithms: from available implementations to potential developments. In: Proceedings of the 13th Annual Conference Companion on Genetic and Evolutionary Computation, pp. 679–686. ACM (2011)Google Scholar
  19. 19.
    Scott, E.O., De Jong, K.A.: Understanding simple asynchronous evolutionary algorithms. In: Proceedings of the 2015 ACM Conference on Foundations of Genetic Algorithms XIII, pp. 85–98. ACM (2015)Google Scholar
  20. 20.
    Swann, J., Hammond, K.: Towards ‘metaheuristics in the large’ (2015)Google Scholar
  21. 21.
    TIOBE team: Tiobe index for April 2016. Technical report, TIOBE, April 2016.
  22. 22.
    Whitley, D., Rana, S., Dzubera, J., Mathias, K.E.: Evaluating evolutionary algorithms. Artif. Intell. 85(1), 245–276 (1996). Scholar
  23. 23.
    Wolpert, D.H., Macready, W.G.: No free lunch theorems for optimization. IEEE Trans. Evol. Comput. 1(1), 67–82 (1997). Scholar
  24. 24.
    Wu, Q., Peng, C.: A least squares support vector machine optimized by cloud-based evolutionary algorithm for wind power generation prediction. Energies 9(8), 585 (2016)CrossRefGoogle Scholar
  25. 25.
    Zhang, G., He, R., Liu, Y., Li, D., Chen, G.: An evolutionary algorithm based on cloud model. Chin. J. Comput. 31(7), 1082–1091 (2008)MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  1. 1.CITIC and Computer Architecture and Technology DepartmentUniversity of GranadaGranadaSpain
  2. 2.Department of Computer EngineeringUniversity of CádizCádizSpain
  3. 3.Department of Computer SciencesUniversity of JaénJaénSpain
  4. 4.Tijuana Institute of TechnologyTijuanaMexico
  5. 5.University of GranadaGranadaSpain
  6. 6.Real Time InnovationsGranadaSpain

Personalised recommendations