Abstract
Concurrent languages such as Perl 6 fully leverage the power of current multi-core and hyper-threaded computer architectures, and they include easy ways of automatically parallelizing code. However, to achieve more computational capability by using all threads and cores, algorithms need to be redesigned to be run in a concurrent environment; in particular, the use of a reactive, fully functional patterns need to turn the algorithm into a series of stateless steps, with simple functions that receive all the context and map it to the next stage. In this paper, we are going to analyze different versions of these stateless, reactive architectures applied to evolutionary algorithms, assessing how they interact with the characteristics of the evolutionary algorithm itself and show how they improve the scaling behavior and performance. We will use the Perl 6 language, which is a modern, concurrent language that was released recently and is still under very active development.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Alba, E., Troya, J.M.: Analyzing synchronous and asynchronous parallel distributed genetic algorithms. Future Gener. Comput. Syst. - Spec. Issue Bioimpaired Solut. Parallel Process. Probl. 17, 451–465 (2001)
Albert-Cruz, J., Acevedo-Martínez, L., Merelo, J., Castillo, P., Arenas, M.: Adaptando algoritmos evolutivos paralelos al lenguaje funcional erlang. In: MAEB 2013 - IX Congreso Espańol de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (2013)
Albert-Cruz, J., Merelo, J., Acevedo-Martínez, L., De Las Cuevas, P.: Implementing parallel genetic algorithm using concurrent-functional languages. In: Proceedings of the International Conference on Evolutionary Computation Theory and Applications, ECTA 2014, pp. 169–175 (2014). (since 1996)
Araujo, L., Guervós, J.J.M., Mora, A., Cotta, C.: Genotypic differences and migration policies in an island model. In: Rothlauf, F. (ed.) GECCO, pp. 1331–1338. ACM (2009)
Armstrong, J.: Concurrency oriented programming in Erlang (2003). http://ll2.ai.mit.edu/talks/armstrong.pdf
Barwell, A.D., Brown, C., Hammond, K., Turek, W., Byrski, A.: Using program shaping and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang. Comput. Inform. 35(4), 792–818 (2017)
Bienz, A., Fokle, K., Keller, Z., Zulkoski, E., Thede, S.: A generalized parallel genetic algorithm in Erlang. In: Proceedings of Midstates Conference on Undergraduate Research in Computer Science and Mathematics (2011)
Briggs, F., O’Neill, M.: Functional genetic programming and exhaustive program search with combinator expressions. Int. J. Know.-Based Intell. Eng. Syst. 12(1), 47–68 (2008). http://dl.acm.org/citation.cfm?id=1375341.1375345
Butcher, S.G., Sheppard, J.W.: An actor model implementation of distributed factored evolutionary algorithms. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion, pp. 1276–1283. ACM (2018)
Cruz, J.A., Merelo-Guervós, J.J., Mora-García, A., de las Cuevas, P.: Adapting evolutionary algorithms to the concurrent functional language Erlang. In: Blum, C., Alba, E. (eds.) GECCO (Companion), pp. 1723–1724. ACM (2013)
Erb, B.: Concurrent programming for scalable web architectures (2012)
García-Arenas, M., et al.: Speedup measurements for a distributed evolutionary algorithm that uses Jini. In: Depto. ATC, U.d.G. (ed.) XI Jornadas de Paralelismo, pp. 241–246 (2000)
García-Valdez, J.M., Merelo-Guervós, J.J.: A modern, event-based architecture for distributed evolutionary algorithms. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion, GECCO 2018, pp. 233–234. ACM, New York (2018). http://doi.acm.org/10.1145/3205651.3205719
Goldberg, D.E.: Genetic Algorithms in Search, Optimization and Machine Learning. Addison Wesley (1989)
Gong, Y.J., et al.: Distributed evolutionary algorithms and their models: a survey of the state-of-the-art. Appl. Soft Comput. 34, 286–300 (2015)
Hawkins, J., Abdallah, A.: A generic functional genetic algorithm. In: Proceedings of the ACS/IEEE International Conference on Computer Systems and Applications, AICCSA 2001, pp. 11-17. IEEE Computer Society, Washington (2001). http://dl.acm.org/citation.cfm?id=872017.872197
Sutter, H., Larus, J.R.: Software and the concurrency revolution. ACM Queue 3(7), 54–62 (2005). http://doi.acm.org/10.1145/1095408.1095421
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978). http://doi.acm.org/10.1145/359576.359585
Huelsbergen, L.: Toward simulated evolution of machine-language iteration. In: Proceedings of the First Annual Conference on Genetic Programming, GECCO 1996, pp. 315–320. MIT Press, Cambridge, MA, USA (1996). http://dl.acm.org/citation.cfm?id=1595536.1595579
Jiménez-Laredo, J.L., Eiben, A.E., van Steen, M., Merelo-Guervós, J.J.: EvAg: a scalable peer-to-peer evolutionary algorithm. Genet. Program. Evol. Mach. 11(2), 227–246 (2010)
Kennedy, J., Spears, W.: Matching algorithms to problems: an experimental test of the particle swarm and some genetic algorithms on the multimodal problem generator. In: The 1998 IEEE International Conference on Evolutionary Computation Proceedings, IEEE World Congress on Computational Intelligence, pp. 78–83. IEEE (1998)
Kerdprasop, K., Kerdprasop, N.: Concurrent data mining and genetic computing implemented with Erlang Language. Int. J. Softw. Eng. Appl. 7(3), 63–76 (2013)
Krzywicki, D., Turek, W., Byrski, A., Kisiel-Dorohinicki, M.: Massively concurrent agent-based evolutionary computing. J. Comput. Sci. 11, 153–162 (2015)
Lobo, F.G., Lima, C.F.: A review of adaptive population sizing schemes in genetic algorithms. In: Proceedings of the 7th Annual Workshop on Genetic and Evolutionary Computation, GECCO 2005, pp. 228–234. ACM, New York (2005). http://doi.acm.org/10.1145/1102256.1102310
Luque, G., Alba, E.: Parallel models for genetic algorithms. In: Luque, G., Alba, E. (eds.) Parallel Genetic Algorithms: Theory and Real World Applications, pp. 15–30. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22084-5_2
Merelo, J.J., García-Valdez, J.M.: Mapping evolutionary algorithms to a reactive, stateless architecture: using a modern concurrent language. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion, GECCO 2018, pp. 1870–1877. ACM, New York (2018). http://doi.acm.org/10.1145/3205651.3208317
Merelo-Guervós, J.J.: Cloudy distributed evolutionary computation. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion, pp. 1138–1140. ACM (2018)
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). https://doi.org/10.1007/978-3-642-21498-1_42
Merelo Guervós, J.J., Valdez, J.M.G.: Performance improvements of evolutionary algorithms in perl 6. In: Aguirre, H.E., Takadama, K. (eds.) Proceedings of the Genetic and Evolutionary Computation Conference Companion, GECCO 2018, Kyoto, Japan, 15–19 July 2018, pp. 1371–1378. ACM (2018). http://doi.acm.org/10.1145/3205651.3208273
Merelo-Guervós, J.J., et al.: Evolving objects. In: Wang, P.P. (ed.) Proceedings of JCIS 2000 (Joint Conference on Information Sciences), vol. 1, pp. 1083–1086 (2000). ISBN 0-9643456-9-2
Santos, L.: Evolutionary computation in Ada95: a genetic algorithm approach. Ada User J. 23(4), 239 (2002)
Schippers, H., Van Cutsem, T., Marr, S., Haupt, M., Hirschfeld, R.: Towards an actor-based concurrent machine model. In: Proceedings of the 4th Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems, pp. 4–9. ACM (2009)
Sher, G.I.: Handbook of Neuroevolution Through Erlang. Springer, Heidelberg (2013). https://doi.org/10.1007/978-1-4614-4463-3
Simson, J., Mayo, M.: Open-source linear genetic programming (2017)
Stypka, J.: The missing link! a new skeleton forevolutionary multi-agent systems in Erlang. Int. J. Parallel Program. 46(1), 4–22 (2018). https://doi.org/10.1007/s10766-017-0503-4
Swan, J., et al.: A research agenda for metaheuristic standardization. In: Proceedings of the XI Metaheuristics International Conference (2015)
Tang, A.: Perl 6: reconciling the irreconcilable. In: Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2007, p. 1. ACM, New York (2007). http://doi.acm.org/10.1145/1190216.1190218
Tang, A.: Perl 6: reconciling the irreconcilable. SIGPLAN Not. 42(1), 1 (2007). http://doi.acm.org/10.1145/1190215.1190218
Valkov, L., Chaudhari, D., Srivastava, A., Sutton, C., Chaudhuri, S.: Synthesis of differentiable functional programs for lifelong learning. arXiv preprint arXiv:1804.00218 (2018)
Walsh, P.: A functional style and fitness evaluation scheme for inducting high level programs. In: Banzhaf, W., et al. (eds.) Proceedings of the Genetic and Evolutionary Computation Conference, vol. 2, pp. 1211–1216. Morgan Kaufmann, Orlando, Florida, USA, 13–17 July 1999. http://www.cs.bham.ac.uk/wbl/biblio/gecco1999/GP-455.ps
Würthinger, T., et al.: One VM to rule them all. In: Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, pp. 187–204. ACM (2013)
Xie, Y.: knitr: a general-purpose package for dynamic report generation in R. R Package Vers. 1(7), 1 (2013)
Acknowledgements
This paper has been supported in part by projects TIN2014-56494-C4-3-P s (Spanish Ministry of Economy and Competitiveness) and DeepBio (TIN2017-85727-C4-2-P). I would like to express my gratefulness to the users in the #perl6 IRC channel, specially Elizabeth Mattijsen, Timo Paulsen and Zoffix Znet, who helped me with the adventure of programming efficient concurrent evolutionary algorithms.
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Merelo, J.J., García-Valdez, JM. (2018). Going Stateless in Concurrent Evolutionary Algorithms. In: Figueroa-García, J., López-Santana, E., Rodriguez-Molano, J. (eds) Applied Computer Sciences in Engineering. WEA 2018. Communications in Computer and Information Science, vol 915. Springer, Cham. https://doi.org/10.1007/978-3-030-00350-0_2
Download citation
DOI: https://doi.org/10.1007/978-3-030-00350-0_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-00349-4
Online ISBN: 978-3-030-00350-0
eBook Packages: Computer ScienceComputer Science (R0)