Interface with LSF using taskerLSF.tcl
Start the LSF Tasker
You can start the tasker from the command line:
% vovtasker -a LSF -i 0 -I $VOVDIR/etc/tasker_scripts/taskerLSF.tcl -r "lsf" -T 100
Alternatively, you can define the tasker in the
taskers.tcl file:
# Fragment of taskers.tcl file
vtk_tasker_define localhost -name LSF -indirect $env(VOVDIR)/etc/tasker_scripts/taskerLSF.tcl -transient 0
-resources "lsf" -capacity 100
The tasker is non transient, to preserve the status of the jobs submitted to LSF even in the event of a crash of the tasker.
Environment Variable VOV_LSF_QUEUES
The variable VOV_LSF_QUEUES is a comma separated list of queue names. If the variable is defined, the first queue in the list is going to be the default queue to which the jobs are submitted. This default can be overridden on a job by job basis by defining the resource "Queue:QNAME".
Job Submission with vovfire
Each job submitted from taskerLSF.tcl uses
vovfire. The
submission command is going to have the following form:
bsub [BSUB OPTIONS] vovfire 00012345 label_computed_from_command_line
Resource Mapping
The procedure taskerMapResources in file
taskerLSF.tcl performs mapping of
job resources into LSF submission specifications. This procedure can be redefined in
a file called $VOVDIR/local/taskerLSF.tcl.
The default mapping is described in the following table.
Job Resource | LSF bsub parameter | Example | |
---|---|---|---|
Jobname:jname | -J jname | Jobname:abc | -J abc |
LSFcpus#N | -n $N | LSFcpus#4 | -n 4 |
LSFtiles#N | -n $N | LSFtiles#2 | -n 2 |
License:lic | rusage [lic=1] | License:qx | rusage [qx=1] |
Queue:qname | -q qname | Queue:night | -p night |
RAM/* | rusage [mem=*] | RAM/200 | rusage [mem=200] |
RAMFREE/* | rusage [mem=*] | RAMFREE/200 | rusage [mem=200] |
swp/* | rusage[swp=*] | swp/100 | rusage [swp=100] |
tmp/* | rusage[tmp=*] | tmp/200 | rusage [tmp=100] |
anything else is ignored