TABLE OF CONTENTS
::pwtk::queue::submit
SYNOPSIS
proc ::pwtk::queue::submit {queueSystem {file ""}} {
PURPOSE
A generic proc for submitting to the $queueSystem queuing system. An implementation of a specific queing system may define a custom submit routine, which is used if defined.
ARGUMENTS
- queueSystem -- name of the batch queuing system (e.g. slurm, ll, lsf, ...)
- file -- filename of the batch script that will be written (optional, default = job.$queueSystem)
SOURCE
if { $file == {} } { set scriptName job.$queueSystem } fprint $queueSystem {*}$file if { $queueSystem eq "queue" } { # prevent an infinite recursive call to ::pwtk::queue::submit # with '::pwtk::queue::submit queue ?file?' return } elseif { [info procs ::pwtk::${queueSystem}::submit] ne {} } { # the submit command for $queueSystem is defined ::pwtk::${queueSystem}::submit $file } else { # a generic 'submit' recipe variable queue ::pwtk::ifexist queue($queueSystem,submitCmd) { ::pwtk::print "Running: exec $queue($queueSystem,submitCmd) $queue($queueSystem,submitOpts) $file &" ::pwtk::print [::pwtk::try_exec -- {*}$queue($queueSystem,submitCmd) {*}$queue($queueSystem,submitOpts) $file &] # BEWARE: queue($queueSystem,submitOpt) are one-time options, reset them set queue($queueSystem,submitOpts) {} } else { ::pwtk::error "cannot submit jobs because the '$queueSystem' queuing system was not initialized" 1 } } }