Queue
eval15 is a cpu intensive program. Different experiments or even
different boxfiles can be processed independently. The following set
of commands use the gridengine queue system to process a set of boxfiles.
QueueSetup
Syntax: queuesetup -m experiment/first/rest/set/thread [-s/-ns] [-c/-nc]
Default: queuesetup -m set -s -c
-
- -m experiment
eval15 integration for all boxfiles in one experiment. The average
shifts will propagate through the sequeuence of boxfiles.
- -m first
eval15 integration on all first boxfiles of every experiment.
When the average shifts for these boxfiles have been determined, you can
use queuesetup -m rest to run eval15 on
the remaining boxfiles. The saved shifts of the first boxfile will
be used as initial shifts of the remaining boxfiles of the
corresponding experiment.
- -m rest
Independent eval15 run on on boxfiles. The initial shifts used for every
boxfile are the results of the average shifts of a first boxfile in
every experiment (i.e. after queuesetup -m first)
- -m set
eval15 integration per boxfile. One job for each boxfile. If the number
of boxfiles is large, consider -m thread.
If, by coincidence, the average shifts
of a specific boxfile sNNfMMM.shoe have been saved, they will be
used if sNNfMMM+1 is started.
- -m thread
eval15 integration per boxfile. The number of jobs is set with the
-t option (default=48). Every job will process
a number of sets. This option is useful with large numbers
of boxfiles.
If, by coincidence, the average shifts
of a specific boxfile sNNfMMM.shoe have been saved, they will be
used if sNNfMMM+1 is started.
- A list of experiments/boxfiles (joblist) is
created. This list is sorted on boxfile size or experiment size
(largest one first), unless the commandline
argument -ns has been specified.
-
A script joba is created. This script will be invoked
by the gridengine system using an environment variable SGE_TASK_ID.
This variable specifies the n'th line in joblist.
An eval15all run will be executed for that specific line (experiment or
boxfile or list of boxfiles).
-
A script jobb is created.
- -m first
Nothing will be done
- -m rest
mergey on all *.y files
- otherwise
mergey on all files from joblist
If -c has been specified,
jobb will try to remove:
- for every zero-length error file joba.eJJJJ.K
(with JJJJ the job id of joba and K the sequence
number of the array job):
- joba.eJJJJ.K (stderr of eval15 run)
- joba.oJJJJ.K (stdout of eval15 run)
- If no non-zero errorfiles exist:
- for every boxfile sMMfNNN.shoe:
- sMMfNNN.log (eval15 text output)
- sMMfNNN.y (eval15 reflection output)
- joblist. The list of jobs.
- joba jobb. The batch scripts.
jobb will create a file jobb.done
once the yfiles are merged. The cleanup will be running after the creation
of jobb.done.
-
A script jobc can be created by queuestart.
This script can be used to
wait for termination of jobb. See the
wait argument of queuestart.
QueueStart
syntax: queuestart [wait]
- submits the arrayjob joba to the gridengine
queue eval.q. The number of lines in
joblist is specified as argument to the qsub command
to indicate the size of the arrayjob. The gridengine system will
start joba
for every entry in joblist.
- submits job jobb to the gridengine
queue eval.q. This job will only start running
if all the processes of joba have finished.
- queuestart ends here, unless the the optional
argument wait has been given. In that case, a
third job jobc is submitted to the queuesystem.
This job will simply wait for completion of jobb
and the terminal window will synchronize on jobc.
A (premature) control-c in the terminal window will
abort jobc and will not affect
joba or jobb.
- The jobs will be submitted to the queue eval.q.
The environment variable queuename
may be used to select a different queue. For example:
export queuename=main.q
queuestart
or
queuename=main.q queuestart
QueueWait
Use this command to monitor the progress of the batch process, started
with queuestart.
As long as jobb.done is not created, this command
repeatedly invokes
qstat -q $queuename -s r | tail -n +3 | sort -k 6; qstat -s p
queuename defaults to eval.q
-
qstat -q
$queuename
-s r | tail -n +3 | sort -k 6
print all running (-s r) jobs of this user in the
queue $queuename. Strip the first
two lines of the output, and sort the jobslist on starttime.
- qstat -s p
show pending jobs of this user
QueueClean
syntax: queuestart [-a]
When the batch process has finished, a lot of files are created.
- joblist. The list of jobs.
- joba jobb jobc. The batch scripts.
- jobb.done. Finished signal of jobb
- for every boxfile sMMfNNN.shoe:
- sMMfNNN.evc average shifts
- sMMfNNN.log eval15 text output
- sMMfNNN.y eval15 reflection output
- joba.oJJJJ.K stdout of eval15 run
- joba.eJJJJ.K stderr of eval15 run
JJJJ is the job id of joba. K is the sequence
number of the array job.
- jobb.oLLLL stdout of jobb
- jobb.eLLLL stderr of jobb
If all processes terminated normally,
joba.eJJJJ.K and
jobb.eLLLL will
be empty files, otherwise they will contain the error message describing
the failure of the job.
- queueclean removes all
joba.o*,
joba.e*,
jobb.o* and
jobb.e* files if the corresponding
.e* files are empty.
If an .e* file is not empty, the
corresponding .o* file is also not removed.
- If all .e* files are empty,
queueclean -a also removes all
s*.log and
s*.y files
(for every s in joblist).
- And finally, if all .e* files are empty,
queueclean removes
joblist,
joba,
jobb,
jobb.done and
jobc
EVPY Suite Overview