Skip to content

OpenPBS

Configure SOCA installer to deploy OpenPBS

OpenPBS is the original HPC scheduler on SOCA and enabled by default default_config.yml.

  scheduler:
    # Scheduler(s) to install/configure on the SOCA_CONTROLLER host
    scheduler_engine: 
      - "openpbs" # Production ready - Stable & Tested
      # - "lsf" # Preview - Development, not stable, not fully tested and not suitable for production.
      # - "slurm" # Preview - Development, not stable, not fully tested and not suitable for production.

Note

You can keep lsf / slurm if you want to run a dual-scheduler setup, or you can choose to use only OpenPBS.

Navigate to system.scheduler.openpbs section below and update the following parameters:

openpbs:
    # Install path. We recommend you to not change this path
    # if you do, make sure to update relevant cluster_analytics / log_backup paths as well
    # Note: $SOCA_CLUSTER_ID will be automatically replaced by the SOCA Cluster Name specified at install time
    install_prefix_path: "/opt/soca/$SOCA_CLUSTER_ID/schedulers/default/pbs"
    pbs_home: "/opt/soca/$SOCA_CLUSTER_ID/schedulers/default/pbs/var/spool/pbs" # include spooler dirs, hierarchy will be created at compilation time but use the same tree as install_prefix_path. You can override this setting if needed.

    deployment_type: "git" # tgz or git
    tgz:  # Download OpenPBS tgz from the URL listed below
        version: "23.06.06"
        url: "https://github.com/openpbs/openpbs/archive/v23.06.06.tar.gz"
        sha256: "689df6caa101422237118d81f9cfb0e6cad432209c77a6b3b8021cf984a91a90"
    git:  # Install OpenPBS from Source.
        version: "23.06.06"  # Version to install (this can be anything, it's just used to avoid re-installation if the same version is already detected)
        repo: "https://github.com/openpbs/openpbs.git"  # Repo to clone from, e.g https://github.com/openpbs/openpbs.git
        branch: "master"  # (Optional: Specify the branch if you do not want to use the default)
        commit_id: "2bf8f31fbd5bbd7fff4b1c620c625d2944b422b1"  # (Optional: Specify the commit id if you do not want to use the default)

    compatibility_packages:
        # Package installed/replaced on older distro (RHEL8, Rocky8 ..) to enable OpenPBS compilation for python3.13
        automake:
            url: "https://ftp.gnu.org/gnu/automake/automake-1.16.5.tar.gz"
            sha256: "07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605"
        # Package installed/replaced on older distro (RHEL8, Rocky8 ..) to enable OpenPBS compilation for python3.13
        libtool:
            url: "https://ftp.gnu.org/gnu/libtool/libtool-2.4.7.tar.gz"
            sha256: "04e96c2404ea70c590c546eba4202a4e12722c640016c12b9b2f1ce3d481e9a8"
        # Package installed/replaced on older distro (RHEL8, Rocky8 ..) to enable OpenPBS compilation for python3.13
        pkgconfig:
            url: "https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz"
            sha256: "6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591"
        # Dependency when compiling OpenPBS from source
        cjson:
            url: "https://github.com/DaveGamble/cJSON/archive/refs/tags/v1.7.18.tar.gz"
            sha256: "3aa806844a03442c00769b83e99970be70fbef03735ff898f4811dd03b9f5ee5"

You're all set, you can now continue with a regular SOCA installation. While your cluster is provisioning, we suggest reviewing the SOCA OpenPBS bootstrap scripts to become familiar with the automation happening behind the scenes.

Interact with your OpenPBS cluster

Load your OpenPBS shell

Once your system is up and running, load your openpbs shell by running soca_openpbs-<scheduler_identifier> on your machine, where <scheduler_identifier> is a unique identifier automatically generated by SOCA.

This unique identifier is helpful if you plan to host multiple OpenPBS environments on your SOCA controller or if you intend to access an on-premises OpenPBS system through SOCA. You can install as many OpenPBS environment(s) as you want on your SOCA environment.

# Load your OpenPBS env using soca_openpbs_<identifier> command
[socaadmin@ip-202-0-107-9 ~]$ soca_pbs_openpbs-default-soca-demo 
========= SOCA ========= 
>> PBS environment loaded, you can now run commands such as qsub/qstat/qalter etc ...
>> PBS is installed under: /opt/soca/soca-demo/schedulers/default/pbs
>> Add /bin/soca_pbs to your .bashrc or .bash_profile to automatically run this script
>> Type exit to close this shell
======================== 
(soca_openpbs) socaadmin@ip-202-0-107-9:~# 

# You can now run all your regular OpenPBS commands specific to your environment
(soca_openpbs) socaadmin@ip-202-0-107-9:~# qstat
Job id            Name             User              Time Use S Queue
----------------  ---------------- ----------------  -------- - -----
0.ip-202-0-107-9  STDIN            socaadmin                0 Q normal

Submit a job

CLI

You can submit an OpenPBS job using the qsub command. You can refer to this page to get additional details about OpenPBS job submission.

Pass the SOCA Job Resource Parameters via -l parameter.

Web Interface

You can submit your OpenPBS jobs using the SOCA Web Interface

HTTP API

You can your submit your OpenPBS job using the SOCA HTTP REST API.

View jobs using Web Interface

You can view and control your OpenPBS HPC jobs using "My Job Queue" page on the SOCA Web Interface: