Skip to main content

Going Stateless in Concurrent Evolutionary Algorithms

  • Conference paper
  • First Online:

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 915))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. 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)

    MATH  Google Scholar 

  2. 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)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Armstrong, J.: Concurrency oriented programming in Erlang (2003). http://ll2.ai.mit.edu/talks/armstrong.pdf

  6. 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)

    MathSciNet  Google Scholar 

  7. 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)

    Google Scholar 

  8. 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

    Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Erb, B.: Concurrent programming for scalable web architectures (2012)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. 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

  14. Goldberg, D.E.: Genetic Algorithms in Search, Optimization and Machine Learning. Addison Wesley (1989)

    Google Scholar 

  15. 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)

    Article  Google Scholar 

  16. 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

  17. 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

    Article  Google Scholar 

  18. Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21(8), 666–677 (1978). http://doi.acm.org/10.1145/359576.359585

    Article  Google Scholar 

  19. 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

  20. 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)

    Article  Google Scholar 

  21. 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)

    Google Scholar 

  22. Kerdprasop, K., Kerdprasop, N.: Concurrent data mining and genetic computing implemented with Erlang Language. Int. J. Softw. Eng. Appl. 7(3), 63–76 (2013)

    Google Scholar 

  23. Krzywicki, D., Turek, W., Byrski, A., Kisiel-Dorohinicki, M.: Massively concurrent agent-based evolutionary computing. J. Comput. Sci. 11, 153–162 (2015)

    Article  MathSciNet  Google Scholar 

  24. 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

  25. 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

    Chapter  MATH  Google Scholar 

  26. 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

  27. Merelo-Guervós, J.J.: Cloudy distributed evolutionary computation. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion, pp. 1138–1140. ACM (2018)

    Google Scholar 

  28. 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

    Chapter  Google Scholar 

  29. 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

  30. 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

    Google Scholar 

  31. Santos, L.: Evolutionary computation in Ada95: a genetic algorithm approach. Ada User J. 23(4), 239 (2002)

    Google Scholar 

  32. 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)

    Google Scholar 

  33. Sher, G.I.: Handbook of Neuroevolution Through Erlang. Springer, Heidelberg (2013). https://doi.org/10.1007/978-1-4614-4463-3

    Book  Google Scholar 

  34. Simson, J., Mayo, M.: Open-source linear genetic programming (2017)

    Google Scholar 

  35. 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

    Article  Google Scholar 

  36. Swan, J., et al.: A research agenda for metaheuristic standardization. In: Proceedings of the XI Metaheuristics International Conference (2015)

    Google Scholar 

  37. 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

  38. Tang, A.: Perl 6: reconciling the irreconcilable. SIGPLAN Not. 42(1), 1 (2007). http://doi.acm.org/10.1145/1190215.1190218

    Article  Google Scholar 

  39. Valkov, L., Chaudhari, D., Srivastava, A., Sutton, C., Chaudhuri, S.: Synthesis of differentiable functional programs for lifelong learning. arXiv preprint arXiv:1804.00218 (2018)

  40. 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

  41. 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)

    Google Scholar 

  42. Xie, Y.: knitr: a general-purpose package for dynamic report generation in R. R Package Vers. 1(7), 1 (2013)

    Google Scholar 

Download references

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

Authors

Corresponding authors

Correspondence to Juan J. Merelo or José-Mario García-Valdez .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics