How long can my job run on Argo?

Queues have two values regarding how long a job may run: a default and a maximum. The default is used when a user does not specify how long to run the job, called walltime (more about this in a moment). The maximum is exactly that: regardless of how much time a user requests, a job is permitted to run no longer than the maximum. The maximums (per queue) are shown in the output of the qstat -q command (the walltime column):

qstat -q
Queue            Memory CPU Time Walltime Node  Run Que Lm  State
---------------- ------ -------- -------- ----  --- --- --  -----
batch              --      --       --      --    0   0 --   E R
staff              --      --    720:00:0    12   6   0 --   E R
student_long       --      --    240:00:0     4   1   0 16   E R
student_short      --      --    04:00:00     4   0   0 10   E R
dedicated          --      --    00:30:00     1   0   0  1   E R
student_medium     --      --    24:00:00     4   0   0 10   E R

The defaults are show using the qmgr command:

qmgr -c "list queue student_short" | grep resources_default.walltime
qmgr -c "list queue student_medium" | grep resources_default.walltime
qmgr -c "list queue student_long" | grep resources_default.walltime
qmgr -c "list queue staff" | grep resources_default.walltime
qmgr -c "list queue dedicated" | grep resources_default.walltime

Walltime is specified, like the queue, as either an operand on the qsub command or as a value in the text file. In your first run, let the system use the default. If you are running an interactive job, specify a value considerably less since you know how long you plan to interact with the software. Walltime MUST be requested using the format HHH:MM:SS and the system interprets the values from right to left. Examples:

Put the walltime on the qsub line: 

qsub -V -l nodes=1,walltime=720:00:00 -q staff my_script

Another way to put walltime on the qsub line: 

qsub -V -l nodes=1 -l walltime=720:00:00 -q staff my_script

In the first example, a comma separates the two options following the lowercase L. In the second example, there is no comma; each of the two options is denoted by its own lowercase L.

Put the walltime in the script file:

#PBS -l walltime=720:00:00

and submit the script without the walltime on the qsub invocation:

qsub -V -l nodes=1 -q staff my_script

There is a gotcha regarding walltime. As was stated, the system reads the walltime specification from right to left and all three fields must be included even if just to contain zeroes. As an example, the following format does not request 720 hours; instead, it asks for only 12 hours:

walltime=720:00

The first field (00) is the number of seconds requested and the second field (720) is the number of minutes. 720 minutes (divided by 60 minutes per hour) translates to 12 hours. To request 720 hours:

walltime=720:00:00

There is no command to tell you how long a job will run (in other words, what to enter as the walltime). You just have to estimate.

Need help?

Last updated: 

February 27, 2012

Browse by tag