Evospace-js: Asynchronous Pool-based Execution of Heterogeneous Metaheuristics

This paper is part of a continuing effort in the field of EC to develop algorithms that follow an opportunistic approach to computing, allowing the exploitation of freely available services over the Internet by using free tiers of cloud services or volunteer computing resources; the EvoSpace model is able to tap from both kind of resources, using asynchronous evolutionary algorithms. We present its design, which follows an an event-driven architecture and asynchronous I/O model, and its implementation, with a server-side tier programmed in Node.js that uses Redis as an in-memory and high performance data store for the population. This population store is exposed to clients running population-based and nature-inspired metaheuristics through a REST API. Additional capabilities where implemented in this version to allow the logging of experiments where heterogeneous algorithms are executed in parallel. These logs can then be transformed to other formats. As a case study an hybrid global optimization algorithm has been implemented mixing two algorithms: a PSO algorithm from the EvoloPy library and a GA using the DEAP framework. The result was transformed to files compatible to the Comparing Continuous Optimizer platform in order to use their post-processing code. Clients in this case have been developed in the Python language, the language used to implement both libraries. The results from this case study suggest, first, that EvoSpace can be used as a paradigm- and language-agnostic platform for population-based optimization algorithms, and also that this software can yield performance improvements and a viable platform to execute and compare asynchronous pool-based metaheuristics.

[1]  Heinz Mühlenbein,et al.  Parallel Genetic Algorithms, Population Genetics, and Combinatorial Optimization , 1989, Parallelism, Learning, Evolution.

[2]  Hossam Faris,et al.  EvoloPy: An Open-source Nature-inspired Optimization Framework in Python , 2016, IJCCI.

[3]  Leslie Pérez Cáceres,et al.  The irace package: Iterated racing for automatic algorithm configuration , 2016 .

[4]  Marc Garbey,et al.  Parallel Genetic Algorithm Implementation for BOINC , 2009, PARCO.

[5]  Juan Julián Merelo Guervós,et al.  The EvoSpace Model for Pool-Based Evolutionary Algorithms , 2015, Journal of Grid Computing.

[6]  Kenneth de Jong Parameter Setting in EAs: a 30 Year Perspective , 2007 .

[7]  Daniel Lombraña Gonzalez,et al.  Customizable execution environments for evolutionary computation using BOINC + virtualization , 2012, Natural Computing.

[8]  Yuan Zhao,et al.  A distributed pool architecture for genetic algorithms , 2009, 2009 IEEE Congress on Evolutionary Computation.

[9]  Anne Auger,et al.  BBOB 2009: Comparison Tables of All Algorithms on All Noiseless Functions , 2010 .

[10]  Anne Auger,et al.  COCO: a platform for comparing continuous optimizers in a black-box setting , 2016, Optim. Methods Softw..

[11]  Juan Julián Merelo Guervós,et al.  Asynchronous distributed genetic algorithms with Javascript and JSON , 2008, 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence).

[12]  Filomena Ferrucci,et al.  Towards Migrating Genetic Algorithms for Test Data Generation to the Cloud , 2013 .

[13]  Pedro S. de Souza,et al.  Asynchronous Teams: Cooperation Schemes for Autonomous Agents , 1998, J. Heuristics.

[14]  Andrew Lewis,et al.  Grey Wolf Optimizer , 2014, Adv. Eng. Softw..

[15]  Rainer Storn,et al.  Differential Evolution – A Simple and Efficient Heuristic for global Optimization over Continuous Spaces , 1997, J. Glob. Optim..

[16]  Enrique Alba,et al.  Analyzing synchronous and asynchronous parallel distributed genetic algorithms , 2001, Future Gener. Comput. Syst..

[17]  Juan Julián Merelo Guervós,et al.  Testing the Intermediate Disturbance Hypothesis: Effect of Asynchronous Population Incorporation on Multi-Deme Evolutionary Algorithms , 2008, PPSN.

[18]  Kalyan Veeramachaneni,et al.  Flex-GP: Genetic Programming on the Cloud , 2012, EvoApplications.

[19]  Una-May O'Reilly,et al.  A Library to Run Evolutionary Algorithms in the Cloud Using MapReduce , 2012, EvoApplications.

[20]  Erick Cantú-Paz,et al.  Migration Policies, Selection Pressure, and Parallel Evolutionary Algorithms , 2001, J. Heuristics.

[21]  Marc Parizeau,et al.  DEAP: evolutionary algorithms made easy , 2012, J. Mach. Learn. Res..

[22]  Pedro S. de Souza,et al.  Genetic Algorithms in Asynchronous Teams , 1991, ICGA.

[23]  Juan Julián Merelo Guervós,et al.  An Object-Oriented Library in JavaScript to Build Modular and Flexible Cross-Platform Evolutionary Algorithms , 2014, EvoApplications.

[24]  Dietmar Fey,et al.  Performance investigations of genetic algorithms on graphics cards , 2013, Swarm Evol. Comput..

[25]  Jerzy Duda,et al.  GPU acceleration for the web browser based evolutionary computing system , 2013, 2013 17th International Conference on System Theory, Control and Computing (ICSTCC).

[26]  Steve Vinoski,et al.  Node.js: Using JavaScript to Build High-Performance Network Programs , 2010, IEEE Internet Comput..

[27]  Erick Cantú-Paz,et al.  Efficient and Accurate Parallel Genetic Algorithms , 2000, Genetic Algorithms and Evolutionary Computation.