Abstract
This paper focuses on the iterative design of SofEA , an architecture for distributing evolutionary algorithms (EAs) across computer networks in an asynchronous and decentralized way. SofEA is based on a pool architecture implemented on an object store, allowing the asynchronous interaction with which several clients. The fact that each client is autonomous leads to complex behavior, which will be examined in the work, so that the design can be validated, rules of thumb can be extracted, and the limits of scalability can be found. In this paper we advance the design of an asynchronous, fault-tolerant, and hopefully scalable distributed EA based on the object store CouchDB. We do so by iteratively analyzing running time and average evaluations to solutions on increasingly better versions of the algorithm, looking for the best results, at least from the point of view of running time. By doing so, we increase speed almost fourfold, and also decrement the average number of evaluations to solution in some cases. Experiments have shown also which critical parameters have the bigger influence on the performance in this kind of systems: live population size and number of conflicts, with both being influenced by the number of clients and the size of the population block each client handles at a time. These experiments also show that there is a balance between scalability and fault tolerance, with scalability dropping when a certain number of clients is reached; further clients only increase fault tolerance, at least in the configurations we are using in this paper. The paper also shows that experimentation and measurement conform a good methodology for the design of this kind of asynchronous, heterogeneous and distributed systems, where analytic performance prediction is almost impossible.
References
Alba E, Troya J (2001) Analyzing synchronous and asynchronous parallel distributed genetic algorithms. Futur Gener Comput Syst 17(4):451–465
Anderson DP, Cobb J, Korpela E, Lebofsky M, Werthimer D (2002) SETI@home: an experiment in public-resource computing. Commun ACM 45(11):56–61. doi:10.1145/581571.581573
Anderson J, Lehnardt J, Slater N (2009) CouchDB: the definitive guide. Oreilly & Associates Inc, Sebastopol
Bollini A, Piastra M (1999) Distributed and persistent evolutionary algorithms: a design pattern. In: Genetic programming, proceedings EuroGP’99. Lecture notes in computer science, no. 1598. Springer, pp 173–183
Castillo PA, Bernier JL, García-Arenas M, Merelo-Guervós JJ, García-Sánchez P (2011) SOAP vs REST: comparing a master-slave GA implementation. CoRR abs/1105.4978
Crockford D (2006) JavaScript Object Notation (JSON). http://www.ietf.org/rfc/rfc4627
Davis M, Liu L, Elias J (1994) VLSI circuit synthesis using a parallel genetic algorithm. In: Proceedings of the first IEEE conference on Evolutionary computation, 1994. IEEE world congress on computational intelligence, vol 1, pp 104–109. doi:10.1109/ICEC.1994.350033
de Souza P, Talukdar S (1991) Genetic algorithms in asynchronous teams. In: Proceedings of the fourth international conference on genetic algorithms. Morgan Kaufmann Publishers, pp 392–399
Dean J, Ghemawat S (2008) MapReduce: simplified data processing on large clusters. Commun ACM 51(1):107
East I, Macfarlane D (1993) Implementation in Occam of parallel genetic algorithms on transputer networks. Stender 2187:43–64
Gagné C, Parizeau M, Dubreuil M (2003) Distributed beagle: an environment for parallel and distributed evolutionary computations. In: Proceedings of the 17th annual international symposium on high performance computing systems and applications (HPCS), pp 201–208
Jedrzejowicz P (2009) A-teams and their applications. In: Nguyen N, Kowalczyk R, Chen SM (eds) Computational collective intelligence. Semantic web, social networks and multiagent systems, Lecture notes in computer science, vol 5796. Springer, Berlin, pp. 36–50. doi:10.1007/978-3-642-04441-0_3
Kovács K (2012) Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison. http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis. Accessed 15 March 2012
Laredo J, Castillo P, Mora A, Fernandes C, Merelo J (2008a) Resilience to churn of a peer-to-peer evolutionary algorithm. Int J High Perform Syst Archit 1(4):260–268
Laredo JLJ, Castillo PA, Mora AM, Merelo JJ (2008b) Evolvable agents, a fine grained approach for distributed evolutionary computing: walking towards the peer-to-peer computing frontiers. Soft Comput 12(12):1145–1156
Lennon J (2009a) Developing CouchDB applications with CouchApp, pp 163–184. In: Lennon J (ed) Beginning CouchDB. Apress, New York
Lennon J (2009b) Introduction to CouchDB. In: Lennon J (ed) Beginning CouchDB. Apress, New York, pp 3–9
Llorà X (2009) Data-intensive computing for competent genetic algorithms: a pilot study using meandre. In: Proceedings of the 11th annual conference on genetic and evolutionary computation. ACM, pp 1387–1394
Llorà X, Ács B, Auvil L, Capitanu B, Welge M, Goldberg D (2008) Meandre: semantic-driven data-intensive flows in the clouds. Technical report 2008103. Illinois Genetic Algorithms Laboratory
Logofătu D, Gruber M, Dan Dumitrescu D (2011) Distributed evolutionary algorithm using the mapreduce paradigm—a case study for data compaction problem. Intelligent Decision Systems in Large-Scale Distributed Environments, pp 279–291
Marin F, Trelles-Salazar O, Sandoval F (1994) Genetic algorithms on LAN-message passing architectures using PVM: application to the Routing problem. In: Davidor Y, Schwefel HP, Männer R (eds) Parallel problem solving from nature PPSN III. Lecture notes in computer science, vol 866. Springer, Berlin, pp 534–543. doi:10.1007/3-540-58484-6_296
May D, Shepherd R (1987) Communicating process computers. Inmos technical notes no 72-TCH-022
Merelo JJ, García AM, Laredo JLJ, Lupión J, Tricas F (2007) Browser-based distributed evolutionary computation: performance and scaling behavior. In: GECCO ’07: proceedings of the 2007 GECCO conference companion on genetic and evolutionary computation. ACM Press, New York, pp 2851–2858. doi:10.1145/1274000.1274083
Merelo JJ, Castillo P, Laredo J, Mora A, Prieto A (2008) Asynchronous distributed genetic algorithms with Javascript and JSON. In: WCCI 2008 proceedings. IEEE Press, pp 1372–1379. http://atc.ugr.es/I+D+i/congresos/2008/CEC_2008_1372.pdf
Merelo-Guervós JJ, Arenas MG, Mora AM, Castillo PA, Romero G, Laredo JLJ (2011a) Cloud-based evolutionary algorithms: an algorithmic study. CoRR abs/1105.6205
Merelo-Guervós JJ, Romero G, García-Arenas M, Castillo PA, Mora AM, Jiménez-Laredo JL (2011b) Implementation matters: programming best practices for evolutionary algorithms. In: Cabestany J, Rojas I, Caparrós GJ (eds) IWANN (2). Lecture notes in computer science, vol 6692. Springer, Berlin, pp 333–340
Merelo-Guervós J, Mora A, Cruz J, Esparcia-Alcazar A, Cotta C (2012a) Scaling in distributed evolutionary algorithms with persistent population. In: Evolutionary Computation (CEC), 2012 IEEE Congress on. pp 1–8. doi:10.1109/CEC.2012.6256622
Merelo-Guervós JJ, Mora A, Cruz JA, Esparcia AI (2012b) Pool-based distributed evolutionary algorithms using an object database. In: di Chio C et al (eds) EvoApplications 2012 proceedings, pp 441–450
Roy G, Lee H, Welch J, Zhao Y, Pandey V, Thurston D (2009) A distributed pool architecture for genetic algorithms. In: IEEE Congress on evolutionary computation, 2009. CEC ’09, pp 1177–1184. doi:10.1109/CEC.2009.4983079
Talukdar S (1997) A-Teams project home page. Technical report. Carnegie-Mellon University. http://www.cs.cmu.edu/afs/cs/project/edrc-22/project/ateams/www/
Talukdar S, Murthy S, Akkiraju R (2003) Asynchronous teams. International series in operations research and management science, pp 537–556
Tanese R (1989) Distributed genetic algorithms. In: Schaffer JD (ed) Proceedings of the third international conference on genetic algorithms. Morgan Kaufmann Publishers, San Mateo
Whitley LD (1993) Cellular genetic algorithms. In: Proceedings of the 5th international conference on genetic algorithms. Morgan Kaufmann Publishers Inc., San Francisco
Acknowledgments
This work was supported by project TIN2011-28627-C04-02 awarded by the Spanish Ministry of Science and Innovation and P08-TIC-03903 awarded by the Andalusian Regional Government. We would also like to thank the anonymous reviewers for their helpful comments to the previous versions of this paper. Fernandes wishes to thank FCT, Ministério da Ciência e Tecnologia, his Research Fellowship SFRH/BPD/66876/2009.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Merelo, J.J., Mora, A.M., Fernandes, C.M. et al. Designing and testing a pool-based evolutionary algorithm. Nat Comput 12, 149–162 (2013). https://doi.org/10.1007/s11047-012-9338-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11047-012-9338-5