T03_Bob/
- holds common jar files used by all experiments and common data
files
ecj.jar
javacsv.jar
yearssn-and-ice-cores-crete-1721-1983-multivariate-train1.dat
yearssn-and-ice-cores-crete-1721-1983-multivariate-test1.dat
Experiments/
- holds the condor job submission files
b_01_submitAllJobs.bat - file to submit the
condor job
b_02_allJobs.sub
- file with condor paramters
EXP_000001/
- directory for experiment 1
ssnAndIceCores.ALLparams
EXP_000002/
- directory for experiment 2
ssnAndIceCores.ALLparams
EXP_000003/
- directory for experiment 3
ssnAndIceCores.ALLparams
b_01_submitAllJobs.bat
------------------------------------
condor_submit
b_02_allJobs.sub
b_02_allJobs.sub
--------------------------
universe
= java
executable
=
..\..\ecj.jar
arguments
= ec.Evolve -file
ssnAndIceCores.ALLparams
transfer_input_files =
..\..\yearssn-and-ice-cores-crete-1721-1983-multivariate-train1.dat,..\..\yearssn-and-ice-cores-crete-1721-1983-multivariate-test1.dat,ssnAndIceCores.ALLparams
jar_files
=
..\..\ecj.jar,..\..\javacsv.jar
initialdir
= EXP_000001/
should_transfer_files =
YES
when_to_transfer_output =
ON_EXIT
log
=
00_condorNode.log
error
=
00_condorNode.err
output
= 00_condorNode.out
Queue
executable
=
..\..\ecj.jar
arguments
= ec.Evolve -file
ssnAndIceCores.ALLparams
transfer_input_files =
..\..\yearssn-and-ice-cores-crete-1721-1983-multivariate-train1.dat,..\..\yearssn-and-ice-cores-crete-1721-1983-multivariate-test1.dat,ssnAndIceCores.ALLparams
jar_files
=
..\..\ecj.jar,..\..\javacsv.jar
initialdir
= EXP_000002/
should_transfer_files =
YES
when_to_transfer_output =
ON_EXIT
log
=
00_condorNode.log
error
=
00_condorNode.err
output
= 00_condorNode.out
Queue
executable
=
..\..\ecj.jar
arguments
= ec.Evolve -file
ssnAndIceCores.ALLparams
transfer_input_files =
..\..\yearssn-and-ice-cores-crete-1721-1983-multivariate-train1.dat,..\..\yearssn-and-ice-cores-crete-1721-1983-multivariate-test1.dat,ssnAndIceCores.ALLparams
jar_files
=
..\..\ecj.jar,..\..\javacsv.jar
initialdir
= EXP_000003/
should_transfer_files =
YES
when_to_transfer_output =
ON_EXIT
log
=
00_condorNode.log
error
=
00_condorNode.err
output
= 00_condorNode.out
Queue
Note that the
executable class (with main) is actually ec.Evolve BUT this class is in the
ecj.jar file.
I tried using
ec.Evolve in this and other java submissions (that work) but found that
Condor can't
deal with the
class when it's in a jar file ... it looks for the class file and can't find
it to 'transfer' (even
though the
example in the manual with a jar file that contains the clasees suggests
that you
should put the
executable class in thie executable statement). So I found that it was
necessary to
specify the jar
file in the executable. So given this starting point I try to submit the job
...
D:\ecj\Condor\T03_Bob\Experiments>condor_submit
b_02_allJobs.sub
Submitting job(s).
ERROR: failed to transfer
executable file
..\..\ecj.jar
D:\ecj\Condor\T03_Bob\Experiments>
Since we set the
inital directory to EXP_000001, etc. we expected that it would find the jar
files
in ../../
relative to the initial directoy as it does for the files to be transferred.
but it cannot find the jar file.
We changed the
references to the jar file in the executable statement so it
reads:
executable
= ..\ecj.jar
Now it gets past the first message suggesting it
found the file relative to the submit directory.
But it gives the following
message:
D:\ecj\Condor\T03_Bob\Experiments>condor_submit
b_02_allJobs.sub
Submitting job(s)
ERROR: Can't open
"D:\ecj\Condor\T03_Bob\Experiments\EXP_000001/..\ecj.jar" with flags
00 (No such file or directory)
So initially it
expected the execuatable jar file to be in a directory relative to the
submit directory and then later
it expects it to
be in a directory relative to the initial directory. But condor can't have it both ways. I
would
consider
this to be a bug. If I put
the jar files in both the T03_Bob and Experiments directory it will submit
the jobs correctly.
I also wanted to
ask why Condor is trying to transfer the executable file when reading the
executable
statement since
it seems it only needs to use this to determine where to find the correct
class
to start the
program (it should also accept ec.Evolve the class with the main method as specified
in the manual but this does not work). Once
the files are transferred (as
specified in the
transfer_input_files and jar_files directives) it can try to find
the executable.