Is there a free lunch for cloud-based evolutionary algorithms?

Introduction

The famous Sun Microsystems slogan “The network is the computer”, represented a vision that today is in many ways a reality. The network now includes the computing power of millions of personal computers, smart mobile devices, data centers and even people (Paolacci 2010). Cloud computing is defined as the use of certain computing resources, both hardware and software delivered as a service through the network, this model is now a significant part of “the computer”. Recently there has been several efforts to exploit the computing resources available in the Internet for Evolutionary Computation (EC) research, as a low cost alternative to buying dedicated servers for this purpose. An approach is to obtain computing resources through volunteer computing, where users share their computing resources through a downloaded software(Cole 2010) or their browser(Merelo-Guervos June). Other works propose the use of cloud computing services that give for free certain amount of resources; for instance Google App Engine(Di Martino 2013) or Drop Box(Garcia-Arenas 2011). But even when cloud resources are not free they can reduce operational costs by outsourcing hardware and software maintenance and support to the cloud provider. Another advantage of cloud services is that they enable the provisioning of resources beyond what is available in most laboratories, allowing researches to scale algorithms at reasonable costs. Researchers have proposed the use of public clusters as Amazon EC2 (Wilson 2013).

The approach that we propose is to use the Evospace (García-Valdez 2013) evolutionary platform together with Heroku and PiCloud cloud services as an easy to implement and low-cost alternative, that leverages existing tools and libraries. EvoSpace is a population storage model for the development of evolutionary algorithms (EA) that are intended to run on a cloud architecture (Varia 2008). It is conceived as a Platform as a Service (PaaS) component, where users can create populations of individuals on demand without the need to install software or invest in additional hardware. EvoSpace is designed to be versatile, since the population is decoupled from any particular evolutionary (or, for that matter, metaheuristic) algorithm. Client processes, called EvoWorkers, perform the required evolutionary routines dynamically and asynchronously interacting with the population stored in EvoSpace. EvoWorkers can reside on any web enabled device from web browsers to high performance servers. Moreover, Software as a Service (SaaS) applications could also be developed using EvoSpace, where users could run entire experiments on the cloud or implement interactive applications that are completely hosted by the service. EvoSpace is well suited for this kind of interactive environments since it is robust to lost connections with remote clients. Figure \ref{fig:evocloud} shows a conceptual diagram of how EvoSpace fits within the cloud computing landscape. Evospace implementations have been deployed in virtual private servers (VPS), as the backend of an interactive evolutionary computation application (Garcia-Valdez 2013).

In this paper a cloud based implementation of the service is presented. The system has been implemented using two popular platforms: Heroku [http://www.heroku.com/] for the Evospace store and PiCloud [http://www.picloud.com/] as the Evoworker’s computing power. Both platforms offer to facilitate the deployment of applications without the complexity of managing the underlying hardware, software and provisioning hosting capabilities. A schematic view of the cloud architecture is shown in figure \ref{herokuPiCloud}. An experiment using an instance of the P-Peaks problem generator benchmark is used to evaluate the scalability and ease of use of the platform and also the level of performance of the Evospace model in this setting.

The remainder of the paper proceeds as follows. Section 2 reviews related work. Afterwards, Section 3 describes the EvoSpace model and implementation details. The experimental work is presented in Section 4. Finally, conclusions are given in Section 5.

Conceptual diagram of how EvoSpace fits within the cloud computing model.