Pool Evolution: A Parallel Pattern for Evolutionary and Symbolic Computing

  • Marco Aldinucci
  • Sonia Campa
  • Marco Danelutto
  • Peter Kilpatrick
  • Massimo Torquati


We introduce a new parallel pattern derived from a specific application domain and show how it turns out to have application beyond its domain of origin. The pool evolution pattern models the parallel evolution of a population subject to mutations and evolving in such a way that a given fitness function is optimized. The pattern has been demonstrated to be suitable for capturing and modeling the parallel patterns underpinning various evolutionary algorithms, as well as other parallel patterns typical of symbolic computation. In this paper we introduce the pattern, we discuss its implementation on modern multi/many core architectures and finally present experimental results obtained with FastFlow and Erlang implementations to assess its feasibility and scalability.


Parallel design patterns Algorithmic skeletons Multi/many core architectures Evolutionary computing FastFlow 



The work has been partially supported by FP7 EU Projects No. 288570 ParaPhrase and No. 609666 Repara. We wish to thank Holger Schöner who contributed greatly to the abstraction of the evolution pool pattern from the genetic sub-patterns.


  1. 1.
    Alba, E., Luque, G., Garcia-Nieto, J., Ordonez, G., Leguizamon, G.: Mallba: a software library to design efficient optimisation algorithms. Int. J. Innov. Comput. Appl. 1(1), 74–85 (2007). doi: 10.1504/IJICA.2007.013403 CrossRefGoogle Scholar
  2. 2.
    Alba, E., Troya, J.M.: A survey of parallel distributed genetic algorithms. Complex. 4(4), 31–52 (1999). doi: 10.1002/(SICI)1099-0526(199903/04)4:4<31::AID-CPLX5>3.3.CO;2-W
  3. 3.
    Aldinucci, M., Danelutto, M., Kilpatrick, P., Meneghin, M., Torquati, M.: Accelerating code on multi-cores with fastflow. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Proceedings of 17th International Euro-Par 2011 Parallel Processing, LNCS, vol. 6853, pp. 170–181. Springer, Bordeaux (2011). doi: 10.1007/978-3-642-23397-5_17
  4. 4.
    Asanovic, K., Bodik, R., Demmel, J., Keaveny, T., Keutzer, K., Kubiatowicz, J., Morgan, N., Patterson, D., Sen, K., Wawrzynek, J., Wessel, D., Yelick, K.: A view of the parallel computing landscape. Commun. ACM 52(10), 56–67 (2009). doi: 10.1145/1562764.1562783 CrossRefGoogle Scholar
  5. 5.
    Brown, C.: SKEL home page and repository (2012).
  6. 6.
    Chen, X., Ong, Y.S., Lim, M.H., Tan, K.C.: A multi-facet survey on memetic computation. Trans. Evol. Comp. 15(5), 591–607 (2011)CrossRefGoogle Scholar
  7. 7.
    Cole, M.: Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Comput. 30(3), 389–406 (2004). doi: 10.1016/j.parco.2003.12.002 CrossRefGoogle Scholar
  8. 8.
    Danelutto, M., Torquati, M.: Loop parallelism: a new skeleton perspective on data parallel patterns. In: Aldinucci, M., D’Agostino, D., Kilpatrick, P. (eds.) Proceedings of International Euromicro PDP 2014: Parallel Distributed and Network-Based Processing. IEEE, Torino (2014)Google Scholar
  9. 9.
    Dieterle, M., Horstmeyer, T., Berthold, J., Loogen, R.: Iterating skeletons—structured parallelism by composition. In: Hinze, R. (ed.) IFL, Lecture Notes in Computer Science, vol. 8241, pp. 18–36. Springer, Berlin (2012)Google Scholar
  10. 10.
    Elliott, A., Brown, C., Danelutto, M., Hammond, K.: Skel: A streaming process-based skeleton library for Erlang. 24th Symposium on Implementation and Application of Functional Languages, IFL 2012, Oxford (2012)Google Scholar
  11. 11.
  12. 12.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman, Boston (1995)zbMATHGoogle Scholar
  13. 13.
    Goldberg, D.E.: Genetic Algorithms in Search, Optimization and Machine Learning, 1st edn. Addison-Wesley Longman, Boston (1989)zbMATHGoogle Scholar
  14. 14.
    Hammond, K., Zain, A.A., Cooperman, G., Petcu, D., Trinder, P.: Symgrid: A framework for symbolic computation on the grid. In: Verlag, S. (ed.) Euro-Par 2007 Parallel Processing, Lecture Notes in Computer Science, vol. 4641, pp. 457–466. (2007)Google Scholar
  15. 15.
    Keane, M.A., Koza, J.R., Rice, J.P.: Finding an impulse response function using genetic programming (1993)Google Scholar
  16. 16.
    Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge (1992)zbMATHGoogle Scholar
  17. 17.
    Mattson, T., Sanders, B., Massingill, B.: Patterns for Parallel Programming, 1st edn. Addison-Wesley Professional, Boston (2004)zbMATHGoogle Scholar
  18. 18.
    McCool, M., Reinders, J., Robison, A.: Structured Parallel Programming: Patterns for Efficient Computation. Elsevier, Amsterdam(2012).
  19. 19.
    ParaPhrase web page (2014).
  20. 20.
    Paraphrase project report. Final Pattern Definition Report (2013).
  21. 21.
    Rossbory, M., Reisner, W.: Parallelization of algorithms for linear discrete optimization using paraphrase. In: Proceedings of the 23rd International Workshop on Database and Expert Systems Applications, pp. 241–245 (2013). doi: 10.1109/DEXA.2013.32
  22. 22.
    SCIEnce deliverable series: Deliverable D5.10 (JRA 1.6). Report on Symbolic Computation Grid Examplars (2012)Google Scholar
  23. 23.
    SCIEnce deliverable series: Deliverable D5.13 (JRA 1.6). Report on Multilevel Parallelism (2012)Google Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  • Marco Aldinucci
    • 1
  • Sonia Campa
    • 2
  • Marco Danelutto
    • 2
  • Peter Kilpatrick
    • 3
  • Massimo Torquati
    • 2
  1. 1.Department of Computer ScienceUniversity of TorinoTurinItaly
  2. 2.Department of Computer ScienceUniversity of PisaPisaItaly
  3. 3.Department of Computer ScienceQueen’s University BelfastBelfastNorthern Ireland, UK

Personalised recommendations