JavaGenes and Condor: Cycle-Scavenging Genetic Algorithms

Created by W.Langdon from gp-bibliography.bib Revision:1.4202

  title =        "{JavaGenes} and {Condor:} Cycle-Scavenging Genetic
  author =       "Al Globus and Eric Langhirt and Miron Livny and 
                 Ravishankar Ramamurthy and Marvin Solomon and 
                 Steve Traugott",
  booktitle =    "Java Grande 2000, sponsored by ACM SIGPLAN",
  address =      "San Francisco, California",
  month =        "3-4 " # jun,
  year =         "2000",
  URL =          "",
  URL =          "",
  keywords =     "genetic algorithms, genetic programming",
  abstract =     "A genetic algorithm code, JavaGenes, was written in
                 Java and used to evolve pharmaceutical drug molecules
                 and digital circuits. JavaGenes was run under the
                 Condor cycle-scavenging batch system managing 100-170
                 desktop, desk-side, and rack-mounted SGI workstations.
                 Genetic algorithms mimic biological evolution by
                 evolving solutions to problems using crossover and
                 mutation. While most genetic algorithms evolve strings
                 or trees, JavaGenes evolves graphs representing
                 (currently) molecules and circuits. Java was chosen as
                 the implementation language because the genetic
                 algorithm requires random splitting and recombining of
                 graphs, a complex data structure manipulation with
                 ample opportunities for memory leaks, loose pointers,
                 out-of-bound indices, and other hard to find bugs. Java
                 garbage-collection memory management, lack of pointer
                 arithmetic, and array-bounds index checking reduces the
                 frequency of these bugs, substantially reducing
                 development time. While a run-time performance penalty
                 must be paid, the only unacceptable performance we
                 encountered was using standard Java serialization to
                 checkpoint and restart the code. This was fixed by a
                 two-day implementation of custom checkpointing.
                 JavaGenes is minimally integrated with Condor; in other
                 words, JavaGenes must do its own checkpointing and I/O
                 redirection. A prototype Java-aware version of Condor
                 was developed using standard Java serialization for
                 checkpointing. For the prototype to be useful, standard
                 Java serialization must be significantly optimized.
                 JavaGenes is approximately 8700 lines of code and a few
                 thousand JavaGenes jobs have been run. Most jobs ran
                 for a few days. Results include proof that genetic
                 algorithms can evolve directed and undirected graphs,
                 development of a novel crossover operator for graphs, a
                 paper in the journal Nanotechnology [Globus, et al.
                 1999], and another paper in preparation.",

Genetic Programming entries for Al Globus Eric Langhirt Miron Livny Ravishankar Ramamurthy Marvin Solomon Steve Traugott