This document discusses using web browsers and JavaScript for distributed evolutionary computation. It presents a framework where an evolutionary algorithm is run across multiple browser clients coordinated by a Ruby on Rails server. Experiments show scaling to larger problem sizes is limited by JavaScript performance in browsers and server load. Future work to address JavaScript optimization in browsers and offloading more work to clients could help improve the scalability of this browser-based distributed approach.
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Dconrails Gecco Presentation
1. Browser-based distributed evolutionary computation
Browser-based distributed evolutionary
computation
Performance and scaling behavior
Merelo, Mora-Garc´ Laredo, Lupi´n, Tricas
ıa, o
July 5, 2007
2. Browser-based distributed evolutionary computation
Outline
1 Introduction
Ad-hoc Computing
Stealth Computing
AJAX at work
2
Basic mechanisms
Ruby on Rails
3
Why?
Distributed Computation on Rails
4
General scheme
Experiments
5
Setup
Tests
Results
6
Conclusions
7
All’s well that ends well
The End
8
Thanks for your attention
8. Browser-based distributed evolutionary computation
Introduction
Ad-hoc Computing
And every browser is a virtual machine
JavaScript is a standard
language, with
implementations in every
browser.
JavaScript programs are
embedded in websites,
and run within the
browser
Limitations: access to
local files
Speed? Better don’t ask.
9. Browser-based distributed evolutionary computation
Introduction
Stealth Computing
Again, what’s your computer doing now?
Javascript programs run
unnoticed
And they can call back
10. Browser-based distributed evolutionary computation
AJAX at work
Basic mechanisms
Asynchronous Javascript and XML
AJAX includes an
asynchronous mechanism
of communication based
in XML
Important thing about A:
does not block the
browser.
12. Browser-based distributed evolutionary computation
AJAX at work
Basic mechanisms
Checklist for AJAX
Most browser include
ECMAScript/Javascript
Object model is mostly
compatible.
13. Browser-based distributed evolutionary computation
AJAX at work
Basic mechanisms
Checklist for AJAX
Most browser include
ECMAScript/Javascript
Object model is mostly
compatible.
XMLHttpRequest object
required for async calls.
16. Browser-based distributed evolutionary computation
Ruby on Rails
Why?
It’s fast and small and sexy
Well, not really.
Rapid development
environment based on
Ruby (the language),
AJAX and a RDBMS
(usually MySQL).
17. Browser-based distributed evolutionary computation
Ruby on Rails
Why?
It’s fast and small and sexy
Well, not really.
Rapid development
environment based on
Ruby (the language),
AJAX and a RDBMS
(usually MySQL).
Natural communication
client-server using
Javascript Object
Notation (JSON).
18. Browser-based distributed evolutionary computation
Ruby on Rails
Why?
But there could be other alternatives
Really, all you need is a
web browser, a server and
(X)Emacs
Google Web Toolkit could
be an alternative
Also Django, or other
MVC frameworks.
RoR was just the first
thing we thought about
we knew how to code with
23. Browser-based distributed evolutionary computation
Experiments
Tests
Floating-point tests using
the 10-variable Griewank
function.
n n
xi 2 xi
cos √ +1
F (x) = +
4000 i
i=1 i=1
(1)
20-bit binary
chromosome.
80% 2-point crossover,
20% mutation.
28. Browser-based distributed evolutionary computation
Conclusions
All’s well that ends well
Still at the proof-of-concept stage
Stealth/browser-based evolutionary
computation shows its promise.
Problems at the browser level: low
performance of the JS virtual machine
as compared with state-of-the-art
languages.
But that will be solved in the near
future with JIT Tamarin
Problems at the server level: highly
multiprocessing, multithreaded,
load-balanced server needed.
Or reduce server load by offloading
most things to browser