Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java as a cycle-stealing computational environment Acknowledgments Ames: Po Chung, Creon Levit,

Similar presentations


Presentation on theme: "Java as a cycle-stealing computational environment Acknowledgments Ames: Po Chung, Creon Levit,"— Presentation transcript:

1 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Java as a cycle-stealing computational environment Acknowledgments Ames: Po Chung, Creon Levit, Subash Saini UCSC: John Lawton, Rich McClellan, Todd Wipke Al Globus, MRJ Technology Solutions, Inc. at NASA Ames Research Center

2 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ What got done Java implementation of genetic molecular design application No input (Parameters.java) No graphics or GUI Computationally intensive -- O(n 3 ) Many output files Used cycle scavenging batch system (Condor) on NAS workstations Approximately 150 runs so far

3 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Genetic molecular design Randomly generate a set of molecules Many times: Select parent molecules at random with bias towards better performance Randomly rip copies of each parent in two Mate opposite halves Replace random molecules with bias towards worse performance Repeat until satisfied

4 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Algorithm properties Stochastic, embarrassingly parallel Robust to failure No guaranteed outcome Fitness function is crucial and non-trivial Performs well as cycle-scavenger using Condor, University of Wisconsin, http://www.cs.wisc.edu/condor

5 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Crossover

6 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Time to find small molecules

7 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Finding larger molecules

8 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Resources 300-400 NAS workstations are idle nights and weekends Provides an ideal resource if owner access is not degraded University of Wisconsin experience suggests each workstation is idle an average of 17 hours/day. Thus NAS should have approximately 6,800 workstation hours/day or 2,448,000 workstation hours/year available. This extra processing costs $0 for hardware

9 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Condor Cycle-scavenging batch system Developed by University of Wisconsin In production since 1986 Unix workstations (NT port in progress) Free from http://www.cs.wisc.edu/condor

10 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Some Classes Graph, vertex, edge Molecule, atom, bond Breeder, Population FitnessFunction Parameters, Reporter Sample, DataTable Predicate, Procedure, ExtendedVector IntegerInterval, DoubleInterval

11 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Java advantages Cleaner code than C++ Dynamic loading eliminated input file parsing. CLASSPATH Parameters.class directory classes.jar Standard library Garbage collection priceless massive data structure manipulation cyclic data structures make reference counting ineffective

12 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Java advantages continued Serialization eases checkpointing Virtual machine eases cross-platform development Development on WinTel Execution on SGI workstations Standard library (especially Vectors) Automatic html documentation integrated with code Reflection enables automation of Parameters.java toString() Automatic bounds checking

13 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Java disadvantages JAVA with jit 50% slower than c on simple numerical code Symantec Visual Café unacceptably buggy debugger and crashed system very hard Supersede ok with a few bugs Lack of multiple inheritance sometimes irritating Condor cannot perform automatic checkpointing Condor requires relink to automate checkpointing

14 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Checkpointing Condor jobs may be stopped at any arbitrary time Virtual machine checkpointing would allow automatic heterogeneous mobility stack format not defined heap format undefined and universal serialization potentially problematic jit and optimization causes problems Must hack Java Virtual Machine Java threads cannot be truly interrupted suspend(), resume(), stop() depreciated

15 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Checkpointer.java class application implements Checkpointable start(String[] arguments); restart(); Application calls Checkpointer.ok() Checkpointer.checkpoint() Condor calls Checkpointer.prepareToDie() Checkpointer.areYouReadyToDie() Checkpointer.cancelDeath() Checkpointer.checkpointWhenPossible()

16 http://science.nas.nasa.gov/~globus/code/geneticGraphs/ Summary It was fun It was productive 75 classes, 6389 lines of code one unique algorithm two University collaborations two conference presentations one conference poster one journal submission 400-500 CPU hours per day added to NAS batch capability (so far) Java is my favorite programming language


Download ppt "Java as a cycle-stealing computational environment Acknowledgments Ames: Po Chung, Creon Levit,"

Similar presentations


Ads by Google