8.1.4. Job Configuration File

The jobConfiguration.xml file, located in the [RSMInstall]\Config\xml directory, contains the files that will be used for each job type. For every HPC job that is run, a <keyword> is used to describe the job type. For example, LSF is used for a job running on an LSF cluster, and LSFSSH is used for a job running on an LSF cluster that uses SSH. Each job type uses slightly different files to run the job.

The jobConfiguration.xml file contains keyword entries for the following job types:

  • LSF, LSFSSH, LSFSMB

  • PBS, PBSSSH, PBSSMB

  • SGE, SGESSH, SGESMB

  • SLURM, SLURMSSH, SLURMSMB

  • MSCC

  • RSM, RSMSSH, RSMSMB

  • ARC, ARCSSH, ARCSMB

  • STORAGE_SSH (for file transfers to/from the HPC staging directory using SSH)

The file also contains entries for a Custom Integration Sample (CIS), and various example clusters.

How Keyword Entries Work

Each keyword entry in the jobConfiguration.xml file includes a reference to the HPC commands file (and/or Protocol) that is to be used for that job type. The <include> option is used to add more HPC command files to the list, which enables you to reuse commands that are common to multiple job types.

Below is the standard keyword entry for jobs running on an LSF cluster using SSH. The keyword for this job type is LSFSSH. Commands from the uppermost file in the list, hpc_commands_LSF.xml, will be used first. Subsequently, commands from the included hpc_commands_extensions_SSH.xml file will be used. Duplicate commands in included file will be ignored (because it is not first in the list), and commands that are not duplicates will be combined with those in the first file to form the complete HPC commands file.

  <keyword name="LSFSSH">
    <hpcCommands name="hpc_commands_LSF.xml">
      <include name="hpc_commands_extensions_SSH.xml"/>
    </hpcCommands>
    <protocol name="protocol_definition_SSH.xml"/>
  </keyword>

If you want to customize the way jobs are run on an HPC resource, you will need to modify the jobConfiguration.xml file, either by editing existing keyword entries or adding new ones for each custom HPC job type.

Customizing HPC Job Type Entries

If you only want to make small changes to HPC job execution, and those changes apply to all users, projects and groups, then editing one of the standard keyword entries may be sufficient.

For example, assuming that your cluster is most like a standard LSF cluster that uses SSH, you could modify the existing LSFSSH keyword entry in the jobConfiguration.xml file. The modified entry below references a new hpc_commands file, MyCustomChanges.xml, that contains changes to only one or a few commands. The <include> option is used to include the original hpc_commands_LSF.xml and hpc_commands_extensions_SSH.xml files to make use of any standard commands that are not present in the custom file. Commands in the MyCustomChanges.xml file will be used first, because that file is at the top of the list. Any non-duplicate commands in the two included files will be merged with those in the custom file to form the complete HPC commands file.

  <keyword name="LSFSSH">
    <hpcCommands name="MyCustomChanges.xml"> <!-- First file in the list will override commands in the 
    included files below -->
      <include name=hpc_commands_LSF.xml/>
      <include name="hpc_commands_extensions_SSH.xml"/>
    </hpcCommands>
    <protocol name="protocol_definition_SSH.xml"/>
  </keyword>

If significant changes are to be made to HPC job execution, or there are different customization requirements for different projects, groups, and so on, then you will need to add a custom keyword entry to the jobConfiguration.xml file.

In the example below, a new entry has been created for jobs running on a custom cluster that has been assigned the keyword CUSTOM. It references a custom HPC commands file, hpc_commands_CUSTOM.xml, as well as the standard hpc_commands_PBS.xml file.

  <keyword name="CUSTOM">
    <hpcCommands name="hpc_commands_CUSTOM.xml">
      <include name="hpc_commands_PBS.xml"/>
    </hpcCommands>
  </keyword>

For more information see Modifying the Job Configuration File for a New Cluster Type.