Download - Dconrails Gecco Presentation
Browser-based distributed evolutionary computation
Browser-based distributed evolutionarycomputation
Performance and scaling behavior
Merelo, Mora-Garcıa, Laredo, Lupion, Tricas
July 5, 2007
Browser-based distributed evolutionary computation
Outline
1 IntroductionAd-hoc ComputingStealth Computing
2 AJAX at workBasic mechanisms
3 Ruby on RailsWhy?
4 Distributed Computation on RailsGeneral scheme
5 ExperimentsSetupTests
6 Results
7 ConclusionsAll’s well that ends well
8 The EndThanks for your attention
Browser-based distributed evolutionary computation
Introduction
Ad-hoc Computing
What is your computer doing now?
Nothing!
... Probably
Browser-based distributed evolutionary computation
Introduction
Ad-hoc Computing
What is your computer doing now?
Nothing!... Probably
Browser-based distributed evolutionary computation
Introduction
Ad-hoc Computing
What is in every computer?
Browser-based distributed evolutionary computation
Introduction
Ad-hoc Computing
What is in every computer?
Browser-based distributed evolutionary computation
Introduction
Ad-hoc Computing
What is in every computer?
Browser-based distributed evolutionary computation
Introduction
Ad-hoc Computing
And every browser is a virtual machine
JavaScript is a standardlanguage, withimplementations in everybrowser.
JavaScript programs areembedded in websites,and run within thebrowser
Limitations: access tolocal files
Speed? Better don’t ask.
Browser-based distributed evolutionary computation
Introduction
Stealth Computing
Again, what’s your computer doing now?
Javascript programs rununnoticed
And they can call back
Browser-based distributed evolutionary computation
AJAX at work
Basic mechanisms
Asynchronous Javascript and XML
AJAX includes anasynchronous mechanismof communication basedin XML
Important thing about A:does not block thebrowser.
Browser-based distributed evolutionary computation
AJAX at work
Basic mechanisms
Checklist for AJAX
Most browser includeECMAScript/Javascript
Object model is mostlycompatible.
XMLHttpRequest objectrequired for async calls.
Browser-based distributed evolutionary computation
AJAX at work
Basic mechanisms
Checklist for AJAX
Most browser includeECMAScript/Javascript
Object model is mostlycompatible.
XMLHttpRequest objectrequired for async calls.
Browser-based distributed evolutionary computation
AJAX at work
Basic mechanisms
Checklist for AJAX
Most browser includeECMAScript/Javascript
Object model is mostlycompatible.
XMLHttpRequest objectrequired for async calls.
Browser-based distributed evolutionary computation
AJAX at work
Basic mechanisms
A picture is worth a thousand...
Browser-based distributed evolutionary computation
Ruby on Rails
Why?
It’s fast and small and sexy
Well, not really.
Rapid developmentenvironment based onRuby (the language),AJAX and a RDBMS(usually MySQL).
Natural communicationclient-server usingJavascript ObjectNotation (JSON).
Browser-based distributed evolutionary computation
Ruby on Rails
Why?
It’s fast and small and sexy
Well, not really.
Rapid developmentenvironment based onRuby (the language),AJAX and a RDBMS(usually MySQL).
Natural communicationclient-server usingJavascript ObjectNotation (JSON).
Browser-based distributed evolutionary computation
Ruby on Rails
Why?
It’s fast and small and sexy
Well, not really.
Rapid developmentenvironment based onRuby (the language),AJAX and a RDBMS(usually MySQL).
Natural communicationclient-server usingJavascript ObjectNotation (JSON).
Browser-based distributed evolutionary computation
Ruby on Rails
Why?
But there could be other alternatives
Really, all you need is aweb browser, a server and(X)Emacs
Google Web Toolkit couldbe an alternative
Also Django, or otherMVC frameworks.
RoR was just the firstthing we thought aboutwe knew how to code with
Browser-based distributed evolutionary computation
Distributed Computation on Rails
General scheme
There you have it
Browser-based distributed evolutionary computation
Distributed Computation on Rails
General scheme
Setting up the algorithms
Browser-based distributed evolutionary computation
Distributed Computation on Rails
General scheme
Downloading from server
Browser-based distributed evolutionary computation
Experiments
Setup
Experimental setup
Browser-based distributed evolutionary computation
Experiments
Tests
Floating-point tests usingthe 10-variable Griewankfunction.
F (x) =n∑
i=1
xi2
4000+
n∏i=1
cosxi√i+1
(1)
20-bit binarychromosome.
80% 2-point crossover,20% mutation.
Browser-based distributed evolutionary computation
Results
Which JS virtual machine?
Browser-based distributed evolutionary computation
Results
Effect of packet size
Browser-based distributed evolutionary computation
Results
Scaling behaviour
Browser-based distributed evolutionary computation
Results
Influence of debugging info on/off
Browser-based distributed evolutionary computation
Conclusions
All’s well that ends well
Still at the proof-of-concept stage
Stealth/browser-based evolutionarycomputation shows its promise.
Problems at the browser level: lowperformance of the JS virtual machineas compared with state-of-the-artlanguages.
But that will be solved in the nearfuture with JIT Tamarin
Problems at the server level: highlymultiprocessing, multithreaded,load-balanced server needed.
Or reduce server load by offloadingmost things to browser
Browser-based distributed evolutionary computation
The End
Thanks for your attention
Any question?
Visit http://geneura.wordpress.com,our group blog!