Skip to main content
Log in

Designing and testing a pool-based evolutionary algorithm

Natural Computing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Notes

  1. http://nosql.mypopescu.com/post/9891985838/help-couchdb-break-the-c10k-barrier.

References

  • Alba E, Troya J (2001) Analyzing synchronous and asynchronous parallel distributed genetic algorithms. Futur Gener Comput Syst 17(4):451–465

    Article  MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • Anderson J, Lehnardt J, Slater N (2009) CouchDB: the definitive guide. Oreilly & Associates Inc, Sebastopol

    Google Scholar 

  • 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

    Article  Google Scholar 

  • East I, Macfarlane D (1993) Implementation in Occam of parallel genetic algorithms on transputer networks. Stender 2187:43–64

    Google Scholar 

  • 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

    Chapter  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Chapter  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Whitley LD (1993) Cellular genetic algorithms. In: Proceedings of the 5th international conference on genetic algorithms. Morgan Kaufmann Publishers Inc., San Francisco

Download references

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

Authors

Corresponding author

Correspondence to J. J. Merelo.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11047-012-9338-5

Keywords

Navigation