Designing and testing a pool-based evolutionary algorithm
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.
evolutionary algorithms cloud computing cloud storage distributed algorithms nosql databases key-value stores complex systems