Abstract
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.
Similar content being viewed by others
Notes
- 1.
Considering that Octave and Matlab actually use the same language. Besides, we have not measured proprietary implementations of languages such as that one.
References
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_96
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)
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_3
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). http://doi.acm.org/10.1145/2675743.2776773
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)
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)
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)
Jose Filho, L.R., Treleaven, P.C., Alippi, C.: Genetic-algorithm programming environments. Computer 27(6), 28–43 (1994)
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)
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 http://arxiv.org/abs/1511.01088
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_3
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_27
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_45
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_42
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). http://www.springerlink.com/content/8h025g83j0q68270/fulltext.pdf, http://sl.ugr.es/000K
Namiot, D., Sneps-Sneppe, M.: On micro-services architecture. Int. J. Open Inf. Technol. 2(9), 24–27 (2014)
Nesmachnow, S., Luna, F., Alba, E.: An empirical time analysis of evolutionary algorithms as C programs. Softw. Pract. Experience 45(1), 111–142 (2015)
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)
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)
Swann, J., Hammond, K.: Towards ‘metaheuristics in the large’ (2015)
TIOBE team: Tiobe index for April 2016. Technical report, TIOBE, April 2016. http://www.tiobe.com/tiobe_index
Whitley, D., Rana, S., Dzubera, J., Mathias, K.E.: Evaluating evolutionary algorithms. Artif. Intell. 85(1), 245–276 (1996). http://www.sciencedirect.com/science/article/pii/0004370295001247
Wolpert, D.H., Macready, W.G.: No free lunch theorems for optimization. IEEE Trans. Evol. Comput. 1(1), 67–82 (1997). http://citeseer.nj.nec.com/wolpert96no.html
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)
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)
Acknowledgements
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 https://github.com/JJ/2016-ea-languages-PPSN. It has been supported in part by GeNeura Team http://geneura.wordpress.com, projects TIN2014-56494-C4-3-P (Spanish Ministry of Economy and Competitiveness), Conacyt Project PROINNOVA-220590.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Merelo-Guervós, JJ. et al. (2017). Ranking Programming Languages for Evolutionary Algorithm Operations. In: Squillero, G., Sim, K. (eds) Applications of Evolutionary Computation. EvoApplications 2017. Lecture Notes in Computer Science(), vol 10199. Springer, Cham. https://doi.org/10.1007/978-3-319-55849-3_44
Download citation
DOI: https://doi.org/10.1007/978-3-319-55849-3_44
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-55848-6
Online ISBN: 978-3-319-55849-3
eBook Packages: Computer ScienceComputer Science (R0)