PBS Scheduler basics


Zenobe supercomputer uses the Portable Batch System (PBS) from Altair for job submission, job monitoring, and job management. Current release is 13.1.2.

Batch and Interactive jobs are available. Interactive jobs can be particularly useful for developing and debugging applications.

Basic Commands

The most commonly used PBS commands, qsub, qdel, qhold, qalter and qstat are briefly described below. These commands are run from the login node to manage your batch jobs.
See PBS Reference manual for a list of all PBS commands


The qsub is used to submit a job to the batch system.

  • To submit a batch job script:
    qsub [options] my_script
  • To submit a batch job executable:
    qsub [options] my_executable [my_executable_arguments]
  • To submit a interactive job:
    qsub -I [options]
  • To submit a job array:
    qsub -J <num-range> [options] script or executable

Most common options:


-o path

standard output file
-e path path standard error file
-j oe (eo) joins standard error to standard output (standard output to standard error). oe is the default.
-q <queue_name> runs jobs in queue <queue_name>
-M email address notifications will be sent to this email address
-m b|e|a|n notifications on the following events:
begin, end, abort, no mail (default)
Do not forget to specify an email address (with -M) if you want to get these notifications.
-l walltime=[hours:minutes:]seconds requests real time; the default is 12 hours.
-l select=N:ncpus=NCPU requests N times NCPU slots (=CPU cores) for the job (default for NCPU: 1)
-l select=N:mem=size requests N times size bytes of memory for each chunk (default is 1GB).
-l pmem=size request a maximum of size bytes of memory for all processes of the job.
-l model=<model_type> request fit, fat, xfat Haswell nodes when allowed in the queue.
-l place=  chooses the sharing, grouping and the placement of nodes when it is allowed in the queue (default is free).
-W depend=afterok:job-id starts job only if the job with job id job-id has finished successfully.
-r y|n

notifies that job is rerunnable (default no)

-v  specifies the environment variables and shell functions to be exported to the job.
-V Declares that all environment variables and shell functions in the user's login environment where qsub is run are to be exported to the job.

To delete a job:
qdel <jobid>


To hold a job:
qhold <jobid>

Only the job owner or a system administrator can place a hold on a job. The hold can be released using the qrls <jobid> command.


The qalter command is used to modify attributes of one or more PBS queued (not running) jobs. The options you can modify are a subset of the directives that can be used when submitting a job. A non-privileged user may only lower the limits for resources.
qalter [options] <jobid>


To display queue information:
qstat -Q

Common options to display job information :

  • -a Display all jobs in any status (running, queued, held)
  • -r Display running jobs
  • -u <username> Display user username jobs
  • -f <jobid> Display detailed information about a specific job
  • -xf <jobid> Display detailed information about a finished specific job (within past 48 hours)
  • -T Display estimated start time
  • -w Display information in a wide format

PBS Environment Variables

Several environment variables are provided to PBS jobs. All PBS-provided environment variable names start with the characters "PBS_". Some start with "PBS_O_", which indicates that the variable is taken from the job's originating environment (that is, the user's environment).

A few useful PBS environment variables are described in the following list:

PBS_O_WORKDIR Contains the name of the directory from which the user submitted the PBS job
PBS_O_QUEUE Contains the queue name
PBS_JOBID Contains the PBS job identifier
PBS_NODEFILE Contains a list of nodes assigned to the job
PBS_JOBNAME Contains the job name