Launching Mechanism - PBS

Architecture

Single machine (B) running the OMII container with the GridSAM Web Service deployed. Jobs are launched onto a PBS Pool (C). The OMII container (B) is available to the Internet. User holding a certificate trusted by the OMII container (B) can submit jobs over the internet to the GridSAM instance running on the OMII container (B).

If Host (B) is a PBS submission host, the GridSAM service can submit the job locally to the pool (although the jobs can be executed remotely depending on the pool setup).

If Host (B) is not a PBS submission host, the SSH variation allows a host (C) that is a PBS submission host to be used by (B) to submit jobs. (B) can submit jobs under an alternative user similar to the SSH Forking scenario.

Requirements

You must have the PBS system installed on the submission host. The user running the OMII container (or the user used in the SSH variant) must be able to launch jobs onto the PBS pool.

Configuration

<?xml version="1.0" encoding="UTF-8"?>
<module id="jobmanager.ssh" version="1.0.0">

    <!-- dependent modules -->
    <sub-module descriptor="org/icenigrid/gridsam/resource/config/common.xml"/>
    <sub-module descriptor="org/icenigrid/gridsam/resource/config/shell.xml"/>
    <sub-module descriptor="org/icenigrid/gridsam/resource/config/pbs.xml"/>
    <sub-module descriptor="org/icenigrid/gridsam/resource/config/embedded.xml"/>
    <sub-module descriptor="database.xml"/>
    <sub-module descriptor="authorisation.xml"/>


    <!-- override the factory defaults here -->
    <contribution configuration-id="hivemind.ApplicationDefaults">

        <!-- PBS command location -->
        <default symbol="spool.directory" value="/tmp/pbs"/>
        <!-- <default symbol="pbs.PBSSubmitCommand" value="/local/torque/bin/qsub"/> -->
        <default symbol="pbs.PBSSubmitCommand" value="/usr/bin/qsub"/>
        <!-- <default symbol="pbs.PBSRmCommand" value="/local/torque/bin/qdel"/> -->
        <default symbol="pbs.PBSRmCommand" value="/usr/bin/qdel"/>
        <!-- <default symbol="pbs.PBSJobStatusCommand" value="/local/torque/bin/qstat"/> -->
        <default symbol="pbs.PBSJobStatusCommand" value="/usr/bin/qstat -f "/>

        <!-- the location of the tail command -->
        <default symbol="pbs.PBSTailCommand" value="tail"/>

       <!-- PBS named queue for submissions -->
        <default symbol="pbs.PBSNamedQueue" value="test"/>

        <!--
            uncomment the following to use your own script for translating JSDL into classad, otherwise the default will be used.
            Place your script in WEB-INF/classes, and reference it like a classpath resource
        -->

        <!-- <default symbol="pbs.ScriptResource" value="pbsscript.groovy"/>-->

    </contribution>

    <!-- uncomment the following to use ssh-based shell -->
    <!--

    <sub-module descriptor="org/icenigrid/gridsam/resource/config/ssh.xml"/>
    <contribution configuration-id="ssh.ShellConfig">
        <Server host="localhost" user="${user.name}">
            <PublicKeyAuthentication keyfile="${user.home}/.ssh/id_rsa" passphrase=""/>
        </Server>
    </contribution>

    -->

</module>
  • [SYMBOL] spool.directory: Path to a directory on the PBS submission host used to spool and stage jobs. This directory must be readable, writable and owned by the user used by (B) to launch job. This directory must also be exposed through SFTP to (B) if the SSH variation is adopted.
  • [SYMBOL] pbs.PBSSubmitCommand: The path to the PBS_submit command on the PBS submission host.
  • [SYMBOL] pbs.PBSRmCommand:
  • [SYMBOL] pbs.PBSJobStatusCommand:
  • [SYMBOL] pbs.TailCommand: The path to the POSIX tail command on the platform. Default to be "tail" assuming the command is defined in the PATH.
  • [SYMBOL] pbs.PBSNamedQueue:
  • [SYMBOL] pbs.ScriptResource: The groovy script for creating the Classad for the PBSDRMConnector to submit the job to the underlying PBS system. The groovy script must save the generated Classad in the "urn:PBS:classad" job property. The default script is in webapps/gridsam/WEB-INF/classes/classad.groovy. Administrator should modify this script to customise any local installation specific settings. Changes to the script is automatically reloaded by the runtime system without restarting the engine.
  • [CONTRIBUTION] ssh.ShellConfig: (Only required when the SSH variation is adopted) XML fragment for configuring host and account information for (B) to access (C). The fragment must satisfy the following pseudo schema. The org/icenigrid/gridsam/resource/config/ssh.xml sub-module must be included in the jobmanager.xml script. Consult the SSH deployment scenario for the definition of this contribution.