ABSTRACT
Concurrency in evolutionary algorithms allow researchers to leverage the performance of powerful multi-core desktop architectures by parallelizing tasks using a high-level interface. However, concurrency also introduces additional complexity at the model and the implementation level. In this paper we describe how using parallel execution monitoring tools to check the effective parallelism of the implementation, can help to work out some of said complexities at the implementation-level, which in turn, are translated into improvements at the algorithmic-level. The performance gain is noticeable from an evaluations/seconds point of view to the possible scaling that can be achieved in the running machine, up to a superlinear scaling in an off-the-shelf platfonn. We show that the design using communicating sequential processes implemented in the language Raku is the basis for these improvements.
- Enrique Alba. 2002. Parallel evolutionary algorithms can achieve super-linear performance. Inform. Process. Lett. 82 (2002), 7--13.Google ScholarCross Ref
- Adam D Harwell, Christopher Brown, Kevin Hammond, Wojciech Turek, and Aleksander Byrski. 2017. Using program shaping and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang. Computing and Informatics 35, 4 (2017), 792--818.Google Scholar
- Amanda Bienz, Kossi Fokle, Zachary Keller, Ed Zulkoski, and Scott Thede. 2011. A Generalized Parallel Genetic Algorithm in Erlang. In Midstates Conference For Undergraduate Research in Computer Science and Mathematics. N/A, N/A, 1--1.Google Scholar
- James P Cohoon. Shailesh U Hegde, Worthy N Martin, and 13 Richards. 1987. Punctuated equilibria: a parallel genetic algorithm. In Genetic algorithms and their applications: proceedings of the second International Conference on Genetic Algorithms: Juty 28-31, 1987 at the Massachusetts institute of Technology, Cambridge, MA. L. Erlhaum Associates, 1987., Hillsdale, NJ, 8pp.Google Scholar
- J. Albert Cruz, Juan-Julián Merelo-Guervós, Antonio Mora-García, and Paloma de las Cuevas, 2013. Adapting evolutionary algorithms to the concurrent functional language Erlang. In GECCO (Companion), Christian Blum and Enrique Alba (Eds.). ACM, NY, US, 1723--1724.Google Scholar
- Luis delaOssa, José A. Gámez, and José M. Puerta, 2004. Migration of Probability Models Instead of Individuals: An Alternative When Applying the Island Model to EDAs. In Parallel Problem Solving from Nature - PPSN VIII, Xin Yon, Edmund K. Burke, José A. Lorano, Jim Smith, Juan Julián Merelo-Guervós, et al. (Eds.). Springer, Berlin, Heidelberg, 242--252.Google Scholar
- IR East and D. McFarlane, 1993. Implementation in Occam of Parallel Genetic Algorithms on Transputer Networks. Parallel genetic algorithms: Theory and applications 14 (1993), 43.Google Scholar
- C. A. R. Hoare. 1978. Communicating Sequential Processes. Commun, ACM 21, 8 (Aug. 1978), 666--677. Google ScholarCross Ref
- Kittisak Kerdprasop and Nittaya Kerdprasop. 2012, Concurrent Computation for Genetic Algorithms. In 1st international Conference on Software Technology. SERSC, Cebu, Philippines, 79--84.Google Scholar
- Pavel Krömer, Jan Platoš, Václav Snášel, and Ajith Abraham. 2011. A comparison of many-threaded differential evolution and genetic algorithms on CUDA. In 2011 Third World Congress on Nature and Biologically Inspired Computing. IEEE, Piscataway, NY, 509--514.Google ScholarCross Ref
- JJ Merelo, 2019. Running Perl 6. In Perl 6 Quick Syntax Reference. Springen, Cham, 1--10.Google Scholar
- Juan J. Merelo and José-Mario García-Valdez. 2018. Mapping Evolutionary Algorithms to a Reactive, Stateless Architecture: Using a Modern Concurrent Language. In Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO '18). ACM. New York, NY, USA, 1870--1877. Google ScholarDigital Library
- Juan J Merelo, Juan Luis Jiménez Laredo, Pedro A Castillo, José-Mario Gareia-Valdez, and Sergio Rojas-Galeano. 2019. Scaling in Concurrent Evolutionary Algorithms. In Workshop on Engineering Applications. Springer, Cham, 16--27.Google Scholar
- Juan-Julián Merelo-Guervós, Gustavo Romero, Maribel Garcla-Arenas, Pedro A. Castillo, Antonio-Miguel Mora, and Juan-Luis Jiménez-Laredo. 2011. Implementation Matters: Programming Best Practices for Evolutionary Algorithms. In IWANN (2) (Lecture Notes in Computer Science), Joan Cabestany, Ignacio Rojas, and Gonzalo Joya Caparrós (Eds), Vol. 6692. Springer, Cham, 333--340.Google Scholar
- Juan Julián Merelo Guervós and José Mario García Valdez. 2018. Performance improvements of evolutionary algorithms in perl 6. In Proceedings of the Genetic and Evolutionary Computation Conference Companion, GECCO 2018, Kyoto, Japan, July 15-19. 2018, Hernán E. Aguirre and Keiki Takadama (Eds). ACM, NY, US, 1371--1378. Google ScholarDigital Library
- Dorival M. Pedroso, Mohammad Reza Bonyadi, and Marcus Gallagher. 2017. Parallel evolutionary algorithm for single and multi-objective optimisation: Differential evolution and constraints handling. Applied Soft Computing 61 (2017). 995 -- 1012. Google ScholarCross Ref
- Rob Pike and A Gerrand. 2012. Concurrency is not parallelism, Heroku Waza conference. (2012).Google Scholar
Index Terms
- Implementation matters, also in concurrent evolutionary algorithms
Recommendations
Mapping evolutionary algorithms to a reactive, stateless architecture: using a modern concurrent language
GECCO '18: Proceedings of the Genetic and Evolutionary Computation Conference CompanionGenetic algorithms (GA) [8] are currently one of the most widely used meta-heuristics to solve engineering problems. Furthermore, parallel genetic algorithms (pGAs) are useful to find solutions of complex optimizations problems in adequate times [16]; ...
Software-based contention management for efficient compare-and-swap operations
Many concurrent data-structure implementations - both blocking and non-blocking - use the well-known compare-and-swap CAS operation, supported in hardware by most modern multiprocessor architectures, for inter-thread synchronization. A key weakness of ...
FLY: A Domain-Specific Language for Scientific Computing on FaaS
Euro-Par 2019: Parallel Processing WorkshopsAbstractCloud Computing is widely recognized as distributed computing paradigm for the next generation of dynamically scalable applications. Recently a novel service model, called Function-as-a-Service (FaaS), has been proposed, that enables users to ...
Comments