Pool Evolution: A Parallel Pattern for Evolutionary and Symbolic Computing

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.

[1]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[2]  Arch D. Robison,et al.  Structured Parallel Programming: Patterns for Efficient Computation , 2012 .

[3]  Marco Danelutto,et al.  Loop Parallelism: A New Skeleton Perspective on Data Parallel Patterns , 2014, 2014 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[4]  Peter Kilpatrick,et al.  Accelerating Code on Multi-cores with FastFlow , 2011, Euro-Par.

[5]  Kay Chen Tan,et al.  A Multi-Facet Survey on Memetic Computation , 2011, IEEE Transactions on Evolutionary Computation.

[6]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[7]  James Demmel,et al.  the Parallel Computing Landscape , 2022 .

[8]  Gennaro Della Vecchia,et al.  Parallel, distributed and network-based processing , 2008, J. Syst. Archit..

[9]  Michael Rossbory,et al.  Parallelization of Algorithms for Linear Discrete Optimization Using ParaPhrase , 2013, 2013 24th International Workshop on Database and Expert Systems Applications.

[10]  Dana Petcu,et al.  SymGrid: A Framework for Symbolic Computation on the Grid , 2007, Euro-Par.

[11]  Enrique Alba,et al.  A survey of parallel distributed genetic algorithms , 1999, Complex..

[12]  James P. Rice,et al.  Finding an Impulse Response Function Using Genetic Programming , 1993, 1993 American Control Conference.

[13]  D. E. Goldberg,et al.  Genetic Algorithms in Search , 1989 .

[14]  De Giusti,et al.  Structured Parallel Programming: patterns for efficient computation , 2015 .

[15]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[16]  Thomas Horstmeyer,et al.  Iterating Skeletons - Structured Parallelism by Composition , 2012, IFL.

[17]  Zsófia Osváth,et al.  DOI: 10 , 2011 .

[18]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[19]  Enrique Alba,et al.  MALLBA: a software library to design efficient optimisation algorithms , 2007 .

[20]  Murray Cole,et al.  Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming , 2004, Parallel Comput..