PBS Tools

Copyright 2005-2009, 2015-2018, Ohio Supercomputer Center
Copyright 2008-2015, University of Tennessee

Contained herein are several utilities that have been developed at OSC, NICS, and elsewhere to aid in the administration and management of PBS variants (including OpenPBS, PBS Pro, and TORQUE). They have been developed primarily on Linux clusters, but most of them should be applicable to virtually any system running PBS.

All programs in PBS Tools are licensed under the GNU GPL version 2.

User tools

  • ja -- Job accounting within a PBS job; similar to ja in NQE.
  • pbsdcp -- Distributed copy command within a PBS job. This can optionally include an MPI-based scatter functionality that should scale better than the default rcp-based approach.
  • qexec -- Workalike for the SGE qlogin, qrsh, and qsh commands.
  • parallel-command-processor -- An MPI program for running an array of serial jobs in the context of a single parallel job (a.k.a. the poor man's job arrays).
  • supermover -- A highly configurable wrapper around other data transfer utilities such as scp, globus-url-copy, and hsi.
  • dmsub -- A tool for submitting data movement jobs. It understands data transfer descriptions in the formats of DMOVER, RFT, and Stork; it can also use several different data movement tools, including supermover.
  • dagsub -- A workalike for condor_submit_dag. This allows the submission of large, complex sets of dependent jobs using a relatively simple syntax. It relies on dmsub for data movement.
  • job-vm-launch -- A tool for launching VMs inside a PBS batch job using libvirtd.
  • pbs-spark-submit -- A tool for launching Apache Spark programs inside a PBS batch job.

Admin tools

  • reaver -- Find (and optionally clean up) processes on a host which have not been allocated jobs on that host; requires root privilege.
  • js -- DB-based equivalent to showscript; does not require root access but should probably be ACL-limited to admin and support staff.

Reporting tools

  • jobstats -- Generate an HTML report summarizing PBS job statistics over a period of months. Relies on gnuplot; requires root privilege.
  • find-outlyers -- Extract statistical outlyers from the jobdist.dat file generated by jobstats.

Database/web tools

Note: these all assume a MySQL DB back end running on the same server as pbs_server and PHP-enabled httpd.

  • etc/create-tables.sql -- Create "pbsacct" database, table, and two user accounts (pbsacct and webapp) used by the other DB tools. To initialize, run mysql -u root -p passwd < create-tables.sql.
  • sbin/job-db-update -- Parses PBS job accounting records and inserts them into DB.
  • sbin/jobscript-to-db -- Inserts one or more job scripts into the job DB.
  • sbin/spool-jobscripts -- Spools newly submitted jobscripts to /tmp and then invokes jobscript-to-db on them.
  • web/*.php -- A number of web-based reports. These rely on PEAR::DB, JPGraph, Spreadsheet_WriteExcel, and ODS-PHP.
  • examples/db-example -- An example of putting job data from multiple PBS instances into a single job DB.


Basic Tools

# ksh/bash syntax
export PREFIX=/usr/local
make install PREFIX=$PREFIX

MPI-Based Tools

# ksh/bash syntax
export PREFIX=/usr/local
export MPICC=mpicc

Perl-Based Reporting Tools

# ksh/bash syntax
export PREFIX=/usr/local
make statstools PREFIX=$PREFIX

PHP/MySQL-Based Reporting Tools

# ksh/bash syntax
export PREFIX=/usr/local
export WEBPREFIX=/var/www/html/pbsacct
export DBSERVER=localhost

Further details can be found in the INSTALL file.

Release Tarballs

The latest release is PBS Tools 3.4.4.

Previous releases can be found on the PBS Tools Github releases page.

Git Repository

Bug List

To-Do List


Comments and suggestions on this software are welcomed; please send them to Troy Baer or Doug Johnson.