Your SlideShare is downloading. ×
Is there a free lunch for cloud-based evolutionary algorithms?
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

505
views

Published on

Presented at 2013 IEEE Congress on Evolutionary Computation, Cancún México. June 20th …

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.

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
505
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 2. Are you hungry? 2 How much computing power do you need? 2
  • 3. 3data center 3
  • 4. 4 When you’re done, do you share? 4
  • 5. “The Network is the Computer” John  Gage,  Sun  Microsystems 5 5
  • 6. 6 6
  • 7. 7 7
  • 8. 8 8
  • 9. 9 9
  • 10. 9 9
  • 11. 9 9
  • 12. 9 9
  • 13. 9 9
  • 14. Recently  there  has  been  several  efforts  to  exploit   the  computing  resources  available  in  the  Internet   for  Evolutionary  Computation  (EC)  research. 10 10
  • 15. Volunteer Computing 11 11
  • 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
  • 23. evospace evospace read(n)   get_sample(n) re_insert(i)   insert(A) put_back(A,i) remove(A)   19 19
  • 24. evospace.get_sample(n) 20 20
  • 25. evoWorker 2 evospace evoWorker 1 21 21
  • 26. evoWorker 2 evospace get_Sample(5) evoWorker 1 21 21
  • 27. evoWorker 2 evospace evoWorker 1 21 21
  • 28. evoWorker 2 evospace evoWorker 1 phantom 21 21
  • 29. evoWorker 2 evospace evoWorker 1 21 21
  • 30. evoWorker 2 evospace evoWorker 1 get_Sample(3) 21 21
  • 31. evoWorker 2 evospace evoWorker 1 get_Sample(3) 21 21
  • 32. evoWorker 2 evospace evoWorker 1 21 21
  • 33. worker1.evolve(n) 22 22
  • 34. evospace evoWorker 2 evoWorker 1 23 23
  • 35. evospace evolve(50) evoWorker 2 evoWorker 1 23 23
  • 36. evospace evoWorker 2 evoWorker 1 23 23
  • 37. evospace.put_back(samplei) 24 24
  • 38. evospace evoWorker 2 evoWorker 1 25 25
  • 39. evospace put_back(s1) evoWorker 2 evoWorker 1 25 25
  • 40. evospace evoWorker 2 evoWorker 1 25 25
  • 41. evospace evoWorker 2 evoWorker 1 25 25
  • 42. evospace phantoms from s1 are deleted evoWorker 2 evoWorker 1 25 25
  • 43. evospace phantoms from s1 are deleted evoWorker 2 evoWorker 1 25 25
  • 44. evospace evoWorker 2 evoWorker 1 25 25
  • 45. evospace.re_insert(samplei) 26 26
  • 46. evospace evoWorker 2 evoWorker 1 27 27
  • 47. evospace evoWorker 2 evoWorker 1 27 27
  • 48. evospace re_insert( ) evoWorker 2 evoWorker 1 27 27
  • 49. evospace re_insert( ) evoWorker 2 evoWorker 1 27 27
  • 50. evospace evoWorker 2 evoWorker 1 27 27
  • 51. evospace.read_sample(n) 28 28
  • 52. evospace evoWorker 2 evoWorker 1 29 29
  • 53. evospace read_Sample(5) evoWorker 2 evoWorker 1 29 29
  • 54. evospace evoWorker 2 evoWorker 1 29 29
  • 55. evospace read_Sample(3) evoWorker 2 evoWorker 1 29 29
  • 56. evospace read_Sample(3) evoWorker 2 evoWorker 1 29 29
  • 57. EvoSpace 30 30
  • 58. Implementation Redis evospace.py cherrypy javascript Python c# Objective-C Others json-rpc application-server redis-server process python 31 31
  • 59. Implementation Redis evospace.py cherrypy javascript Python c# Objective-C Others json-rpc application-server redis-server process python core 31 31
  • 60. Implementation Redis evospace.py cherrypy javascript Python c# Objective-C Others json-rpc application-server redis-server process python 31 31
  • 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
  • 65. Implementation Redis evospace.py cherrypy javascript Python c# Objective-C Others json-rpc application-server redis-server process python 36 36
  • 66. Implementation Redis evospace.py cherrypy javascript Python c# Objective-C Others json-rpc application-server redis-server process python evoWorkers 36 36
  • 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
  • 69. EvoSpace Cloud Architecture 39 39
  • 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
  • 76. 44 44
  • 77. 45 45
  • 78. 46 46
  • 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
  • 80. 48 48
  • 81. Population:  512              Sample  Size:  16 2:480        4  :  448              8  :  384        16:    256                28:  64 49 49
  • 82. 50 50
  • 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

×