Question

I am using a cluster. I will use qsub command to distribute my job, what I want is I can get back the job id so that I can monitor the job.

Basically, I want some thing like this:

#!/bin/bash
JOBID=$( qsub job1 )
# Monitoring base on $JOBID

I found a page http://wiki.ibest.uidaho.edu/index.php/Tutorial:_Submitting_a_job_using_qsub, and it talks about a variable PBS_JOBID but I don't know how to use it. Does anyone know how to do it?

(My solution now is jobID='qsub task | cut -d ' ' -f 3')

Was it helpful?

Solution 2

qsub has a very predictable output. Many automated submission systems (such as Grid interfaces) simply parse the output from qsub, looking for the jobid.

An example of parsing is available from the BLAHP project (European grid middleware).

jobID=`${pbs_binpath}/qsub $bls_tmp_file` # actual submission
...

# The job id is actually the first numbers in the string (slurm support)
jobID=`echo $jobID | awk 'match($0,/[0-9]+/){print substr($0, RSTART, RLENGTH)}'`

(source)

This code has been used in production for many years, and has worked for qsub in both PBS, PBS Pro, and SLURM.

OTHER TIPS

You can use the -terse:

$ echo sleep 5 | qsub -terse
3543
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top