Presented at 2013 IEEE Congress on Evolutionary Computation, Cancún México. June 20th
We present a distributed evolutionary algorithm that uses exclusively cloud services. This presents certain advantages, such as avoiding the acquisition of expensive resources, but at the same time presents the problem of choice between different services at different levels (infrastructure, platform, software) and, finally the actual scalability that can be achieved in a real distributed evolutionary algorithm. These issues
are addressed by creating a pure-cloud version of EvoSpace, a pool-based evolutionary algorithm previously presented by the authors. EvoSpace is tested using the free tier of two services (one for the pool and other for the clients) and also the paying tier, and speedup is measured and its limits assessed. In general, this paper proves that a low-cost distributed evolutionary algorithm system can be created using cloud services that can be set up in very short time, but that major efficiency improvements can be
obtained by switching to the non-free tier, giving another twist to the famous phrase “there is no free lunch”. We also show that using a pool-based algorithm allows to use cloud services more efficiently (and dynamically) than a static or synchronous service.
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Is there a free lunch for cloud-based evolutionary algorithms?
1. Is there a free lunch for cloud-based
evolutionary algorithms?
Mario García-Valdez,
Alejandra Mancilla
and Leonardo Trujillo
Inst. Tec. de Tijuana, México
Juan-J. Merelo
University of Granada, Spain
2013 IEEE Congress on Evolutionary Computation
Cancún, México
June 20-23, 2013
Francisco Fernández-de-Vega
Universidad de Extremadura, Spain
1
1
14. Recently
there
has
been
several
efforts
to
exploit
the
computing
resources
available
in
the
Internet
for
Evolutionary
Computation
(EC)
research.
10
10
16. Users
share
their
computing
resources
Through
downloaded
software:
N.
Cole
et
al.
“Evolutionary
algorithms
on
volunteer
computing
platforms”
12
12
17. Through
their
browsers:
J.
Merelo
et
al.
“Asynchronous
distributed
genetic
algorithms
with
Javascript
and
JSON,”
Users
share
their
computing
resources
13
13
18. Cloud Computing
Some
services
share
their
computing
resources.
Di
Martino
et
al.
uses
the
Google
App
Engine
platform
to
implement
an
island
model
Genetic
Algorithm.
Garcia-‐Arenas
et
al.
used
Dropbox
as
a
cloud-‐based
storage
server
for
a
pool-‐based
EA
14
14
19. Cloud Computing
Some
research
is
currently
oriented
towards
the
development
of
cloud
based
EAs
and
libraries.
Tulum Clouds
15
15
20. Pool Based
A-‐Teams
system
(S.
Talukdar
et
al.)
A
distributed
pool
architecture
for
GAs
(Roy
et
al.
)
SOFEA
(Merelo
et
al.)
EvoSpace
(García
et
al.)
Map-Reduce
FlexGP
(Sherry
et
al.)
EAs
using
Map/Reduce
(Fazenda
et
al.)
16
16
21. In
this
paper
we
present
a
distributed
evolutionary
algorithm
using
exclusively
low-‐cost
cloud
services.
EvoSpace
is
tested
using
the
free
tier
of
two
services
(one
for
the
pool
and
other
for
the
clients)
and
also
the
paying
tier,
and
speedup
is
measured
and
its
limits
assessed.
17
17
22. EvoSpace
1.
The
EvoSpace
container
that
stores
the
evolving
population.
2.
Remote
clients
called
EvoWorkers,
which
execute
the
actual
evolutionary
process.
EvoSpace
consists
of
two
main
components
:
18
18
61. Advanced
key-‐value
store
Keys
can
contain
strings,
hashes,lists,
sets,
sorted
sets.
In-‐memory
but
persistent
on
disk
database.
Single
threaded.
Master-‐slave
replication.
32
32
62. Efficient
implementation
of
Set
operations
needed
for
evospace:
Add,
remove,
and
test
for
existence
of
members
in
O(1).
Returning
and
removing
a
random
member
from
a
set
is
also
O(1).
33
33
63. Each
individual
is
a
unique
key
and
a
JSON
object
string.
ind:123
-‐>
{
chromosome:[0,1,0,1],
fitness:0.2}
A
Population
is
a
set
of
keys.
pop:1-‐>
{ind:123,
ind:124,
ind:13,
ind:132}
Samples
are
also
sets.
Re-‐Insertion
is
a
union
of
sets.
34
34
64. EvoSpace Use Case
Can
be
used
in
Interactive
Evolution
Algorithms:
Remote
Clients
EvoWorker
EvoSpace Re-Insertion
Manager
Server
Get Sample1
Feed to
Processing Script
2User evaluates
Representations
3
Put Sample
Back
4
After n evaluations
Evolve a sample
5
35
35
67. evoWorkers
1.
Local
processes.
2.
Html-‐5
Web
Workers
in
FireFox
Browsers.
3.
Processes
in
Virtual
Machines.
First
implementations
of
EvoWorkers
37
37
68. EvoSpace
Based
on
Tuple
Spaces.
Simple
Model.
Inherent
load-‐balancing
mechanism.
Provides
mutual
exclusion.
Scalable.
Variable
population
size.
38
38
70. Heroku
Heroku
is
a
multi-‐language
PaaS,
supporting
among
others
Ruby,
Python
and
Java
applications.
The
basic
unit
of
composition
on
Heroku
is
a
Dyno,
a
lightweight
container
running
a
single
user-‐specified
process.
These
process
types
are
the
prototypes
from
which
one
or
more
dynos
can
be
instantiated.
Redis
Add-On
cherryPy
Service
40
40
71. Heroku
Heroku
is
a
multi-‐language
PaaS,
supporting
among
others
Ruby,
Python
and
Java
applications.
The
basic
unit
of
composition
on
Heroku
is
a
Dyno,
a
lightweight
container
running
a
single
user-‐specified
process.
These
process
types
are
the
prototypes
from
which
one
or
more
dynos
can
be
instantiated.
Redis
Add-On
cherryPy
Service
cherryPy
Service 40
40
72. Heroku
Heroku
is
a
multi-‐language
PaaS,
supporting
among
others
Ruby,
Python
and
Java
applications.
The
basic
unit
of
composition
on
Heroku
is
a
Dyno,
a
lightweight
container
running
a
single
user-‐specified
process.
These
process
types
are
the
prototypes
from
which
one
or
more
dynos
can
be
instantiated.
Redis
Add-On
cherryPy
Service
cherryPy
Service
cherryPy
Service
40
40
73. PiCloud
PiCloud
is
a
platform
specialized
in
high
performance
and
scientific
computing.
PiCloud
is
a
PaaS,
with
deep
Python
integration.
Python
functions
are
transparently
uploaded
to
PiCLoud’s
servers
as
units
of
computational
work
they
call
jobs
.
41
41
74. PiCloud Jobs
Standard:
Jobs
are
always
added
to
a
queue;
the
time
they
remain
on
queue
depends
on
available
resources.
Real-‐Time:
Can
be
reserved
(for
a
fee)
for
certain
amount
of
time,
when
reserved,
cores
are
available
immediately.
42
42
75. Is there a free lunch?
Limited
by
three
budgets:
$0.00,
$10.00,
$20.00
Free
Options:
Heroku
gives
750
Dyno
hours
each
month.
Picloud
gives
for
free
20
Compute
hours
a
month.
Notes:
Heroku
requires
credit
card
verification
for
Add-‐Ons.
PiCloud
requires
a
reservation
fee
for
Real
Time
cores.
43
43
79. Kennedy
and
Spears
proposed
P=100
N=100
as
a
difficult
configuration.
Alba
et
al.
[21]
considered
an
instance
with
greater
difficulty
with
P
=
512
and
N
=
512.
In
this
paper
P
=
256
peaks
and
N
=
512
bits
are
used.
Multimodal Problem Generator P-Peaks
47
47
83. Conclusions
PaaS
can
offer
a
transparent
integration
with
current
tools.
Pool-‐Based
EAs
can
be
easily
deployed.
Cloud-‐Based
alternatives
can
reduce
computational
costs
of
demanding
EAs.
51
51
84. EvoSpace in Cloud
Starvation
or
reduction
of
population
size
can
be
a
problem.
We
have
to
adjust
population
size
depending
on
the
number
of
workers.
Can
be
done
automatically
with
a
worker.
Conclusions
52
52
85. Thank You
Please
visit
www.evospace.org
for
more
information.
All
code,
data,
matplotlib
scripts,
latex
files
with
authors
original
comments
and
edits
(in
spanish)
available
in:
https://github.com/mariosky/cec2013
53
53