Asynchronous distributed genetic algorithms with Javascript and JSON

In a connected world, spare CPU cycles are up for grabs, if you only make its obtention easy enough. In this paper we present a distributed evolutionary computation system that uses the computational capabilities of the ubiquituous Web browser. Asynchronous Javascript and JSON (Javascript object notation, a serialization protocol) allows anybody with a Web browser (that is, mostly everybody connected to the Internet) to participate in a genetic algorithm experiment with little effort, or none at all. Since, in this case, computing becomes a social activity and is inherently impredictable, in this paper we will explore the performance of this kind of virtual computer by solving simple problems such as the royal road function and analyzing how many machines and evaluations it yields. We will also examine possible performance bottlenecks and how to solve them, and, finally, issue some advice on how to set up this kind of experiments to maximize turnout and, thus, performance. The experiments show that we we can obtain high, and to a certain point, reliable performance from volunteer computing based on AJAJ, with speedups of up to several (averaged) machines.

[1]  William B. Langdon,et al.  Pfeiffer - A Distributed Open-ended Evolutionary System , 2005 .

[2]  Ray Paton,et al.  JavaSpaces - An Affordable Technology for the Simple Implementation of Reusable Parallel Evolutionary Algorithms , 2004, KELSI.

[3]  Ben Paechter,et al.  Empirical Validation of a Gossiping Communication Mechanism for Parallel EAs , 2007, EvoWorkshops.

[4]  Klaus Wehrle,et al.  Peer-to-Peer Systems and Applications , 2005, Peer-to-Peer Systems and Applications.

[5]  Periklis Akritidis,et al.  Puppetnets: Misusing Web Browsers as a Distributed Attack Infrastructure , 2008, TSEC.

[6]  G. Nicholas,et al.  Thin film transistors guide the way to active-matrix revolutions , 2008, IEEE Potentials.

[7]  David Flanagan JavaScript Pocket Reference (2nd Edition) , 2002 .

[8]  David P. Anderson,et al.  High-performance task distribution for volunteer computing , 2005, First International Conference on e-Science and Grid Computing (e-Science'05).

[9]  David P. Anderson,et al.  SETI@home: an experiment in public-resource computing , 2002, CACM.

[10]  Satoshi Hirano,et al.  Bayanihan: building and studying web-based volunteer computing systems using Java , 1999, Future Gener. Comput. Syst..

[11]  Lee Spector,et al.  Unwitting distributed genetic programming via asynchronous JavaScript and XML , 2007, GECCO '07.

[12]  Peter R. Cappello,et al.  A scalable, robust network for parallel computing , 2001, JGI '01.

[13]  Luis F. G. Sarmenta Sabotage-tolerance mechanisms for volunteer computing systems , 2002, Future Gener. Comput. Syst..

[14]  Erick Cantú-Paz,et al.  Migration Policies, Selection Pressure, and Parallel Evolutionary Algorithms , 2001, J. Heuristics.

[15]  A. Barabasi,et al.  Parasitic computing , 2001, Nature.

[16]  Ben Paechter,et al.  A Framework for Distributed Evolutionary Algorithms , 2002, PPSN.

[17]  Juan Julián Merelo Guervós,et al.  Exploring selection mechanisms for an agent-based distributed evolutionary algorithm , 2007, GECCO '07.

[18]  Wayne Kelly,et al.  G2-P2P: A Fully Decentralised Fault-Tolerant Cycle-Stealing Framework , 2005, ACSW.

[19]  Juan Julián Merelo Guervós,et al.  Browser-based distributed evolutionary computation: performance and scaling behavior , 2007, GECCO '07.

[20]  Daniel S. Myers,et al.  Necessity is the mother of invention: a simple grid computing system using commodity tools , 2003, J. Parallel Distributed Comput..

[21]  Francisco Fernández de Vega,et al.  A Fault Tolerant Optimization Algorithm based on Evolutionary Computation , 2006, 2006 International Conference on Dependability of Computer Systems.

[22]  Gregory Allen Kohring,et al.  Implicit Simulations using Messaging Protocols , 2002, ArXiv.

[23]  David P. Anderson,et al.  BOINC: a system for public-resource computing and storage , 2004, Fifth IEEE/ACM International Workshop on Grid Computing.

[24]  William B. Langdon,et al.  Java based Distributed Genetic Programming on the Internet , 1999, GECCO.