Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "PTP/designs/resource manager xsd"

< PTP‎ | designs
(Resource Manager XSD)
Line 23: Line 23:
 
'''''Revised version 9 (27/02/2011):'''''  Numerous structural changes.  -alr
 
'''''Revised version 9 (27/02/2011):'''''  Numerous structural changes.  -alr
  
<source lang="xml">
+
'''''Revised version 10 (27/02/2011):''''' More structural changes. Because the page content was becoming long, I've taken down the XSD; it can be examined in the data directory of the org.eclipse.ptp.rm.jaxb.core plugin, along with the example PBS xml.   -alr
<?xml version="1.0" encoding="UTF-8"?>
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+
<xs:element name="resource-manager-data">
+
<xs:annotation>
+
<xs:documentation>
+
It is assumed that the xml instance of the schema will bear a name which sufficiently distinguishes it from others
+
of a similar type; e.g., pbs-torque-v_2.3.7_abe is specific to an installation on the host abe, ll-v_4.0 suits all installations of
+
LoadLeveler version 4, etc.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element minOccurs="0" ref="site"/>
+
<xs:element ref="control"/>
+
<xs:element ref="monitor"/>
+
</xs:sequence>
+
<xs:attribute name="name" type="xs:string"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="site">
+
<xs:annotation>
+
<xs:documentation>
+
An optional place to set remote site information.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element minOccurs="0" name="control-connection" type="xs:string"/>
+
<xs:element minOccurs="0" name="monitor-server-install" type="xs:string"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="control">
+
<xs:annotation>
+
<xs:documentation>
+
The implementation will construct a variable map serving as the resource manager "environment"; these are dereferenced in the
+
configuration file via ${rm:name} or ${rm:name#getterName}; in addition to the properties specified at the top level of the control
+
tree, all attributes and parsers will be mapped for reference. The following hard-coded variables are added at runtime:
+
<!-- from runtime configuration information -->
+
control.user.name
+
control.address
+
monitor.user.name
+
monitor.address
+
<!-- from the monitoring part -->
+
available_queues
+
<!-- from the launch command stdout parser -->
+
jobId
+
<!-- from the other Run Configuration tabs -->
+
executablePath
+
progArgs
+
directory
+
The top level of the tree represents the available commands/methods on all resource managers, places
+
for defining stdout or stderr parsers, for defining the structure of a batch script to be used, for defining (job) attributes, and
+
finally for describing how to construct the UI (Launch Configuration Tab).
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
+
<xs:element minOccurs="0" ref="managed-files"/>
+
<xs:element minOccurs="0" ref="on-start-up"/>
+
<xs:element minOccurs="0" ref="discover-attributes"/>
+
<xs:element name="submit-commands">
+
<xs:complexType>
+
<xs:choice minOccurs="1" maxOccurs="3">
+
<xs:element ref="submit-interactive"/>
+
<xs:element ref="submit-batch"/>
+
<xs:element ref="submit-debug"/>
+
</xs:choice>
+
</xs:complexType>
+
</xs:element>
+
<xs:element ref="terminate-job"/>
+
<xs:element minOccurs="0" ref="suspend-job"/>
+
<xs:element minOccurs="0" ref="resume-job"/>
+
<xs:element minOccurs="0" ref="hold-job"/>
+
            <xs:element minOccurs="0" ref="release-job"/>
+
<xs:element minOccurs="0" ref="on-shut-down"/>
+
<xs:element minOccurs="0" ref="commands"/>
+
<xs:element minOccurs="0" ref="parsers"/>
+
<xs:element minOccurs="0" ref="script"/>
+
<xs:element ref="attribute-definitions"/>
+
<xs:element ref="launch-tab"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="property">
+
<xs:annotation>
+
<xs:documentation>
+
The value is any object type; these are set at runtime.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="value" minOccurs="0" type="xs:string"/>
+
</xs:sequence>
+
<xs:attribute name="name" type="xs:string"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="managed-files">
+
<xs:annotation>
+
<xs:documentation>
+
List of files to be staged.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="file-source-location" minOccurs="0" type="xs:string"/>
+
<xs:element name="file-staging-location" minOccurs="0" type="xs:string"/>
+
<xs:element maxOccurs="unbounded" ref="managed-file"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="managed-file">
+
<xs:annotation>
+
<xs:documentation>
+
If 'contents' is present, the file is written.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="contents" minOccurs="0" type="xs:string"/>
+
</xs:sequence>
+
<xs:attribute name="name" use="required"/>
+
<xs:attribute name="uniqueIdPrefix" type="xs:boolean" default="false"/>
+
<xs:attribute name="deleteAfterUse" type="xs:boolean" default="false"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="on-start-up">
+
<xs:annotation>
+
<xs:documentation>
+
Arbitrary commands which need to be run on startup.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command-ref"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="discover-attributes">
+
<xs:annotation>
+
<xs:documentation>
+
A command for retrieving (if possible) attributes defined by the service dynamically.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command-ref"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="submit-interactive">
+
<xs:annotation>
+
<xs:documentation>
+
The command(s) for running interactive jobs.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command-ref"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="submit-batch">
+
<xs:annotation>
+
<xs:documentation>
+
The command(s) for running jobs through the scheduler.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command-ref"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="submit-debug">
+
<xs:annotation>
+
<xs:documentation>
+
The command(s) for running debug jobs.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command-ref"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="terminate-job">
+
<xs:annotation>
+
<xs:documentation>
+
The command(s) for canceling or killing jobs.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command-ref"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="suspend-job">
+
<xs:annotation>
+
<xs:documentation>
+
The command(s) for suspending jobs.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command-ref"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="resume-job">
+
<xs:annotation>
+
<xs:documentation>
+
The command(s) for restarting suspended jobs.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command-ref"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="hold-job">
+
      <xs:annotation>
+
        <xs:documentation>
+
            The command(s) for holding jobs.
+
        </xs:documentation>
+
      </xs:annotation>
+
      <xs:complexType>
+
        <xs:sequence>
+
            <xs:element maxOccurs="unbounded" ref="command-ref"/>
+
        </xs:sequence>
+
      </xs:complexType>
+
  </xs:element>
+
  <xs:element name="release-job">
+
      <xs:annotation>
+
        <xs:documentation>
+
            The command(s) for releasing suspended jobs.
+
        </xs:documentation>
+
      </xs:annotation>
+
      <xs:complexType>
+
        <xs:sequence>
+
            <xs:element maxOccurs="unbounded" ref="command-ref"/>
+
        </xs:sequence>
+
      </xs:complexType>
+
  </xs:element>
+
<xs:element name="on-shut-down">
+
<xs:annotation>
+
<xs:documentation>
+
Arbitrary commands which need to be run on shut-down.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command-ref"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="commands">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="command"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="parsers">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="stream-parser"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="script">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element minOccurs="0" ref="directive-definitions"/>
+
<xs:element minOccurs="0" ref="environment-variables"/>
+
<xs:element minOccurs="0" ref="pre-execute-commands"/>
+
<xs:element ref="execute-command"/>
+
<xs:element minOccurs="0" ref="post-execute-commands"/>
+
</xs:sequence>
+
<xs:attribute name="shell" use="required"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="directive-definitions">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="directive-definition"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="directive-definition">
+
<xs:annotation>
+
<xs:documentation>
+
'ValueFrom' refers to properties in the resource manager environment.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType mixed="true">
+
<xs:attribute name="valueFrom"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="environment-variables">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="environment-variable"/>
+
</xs:sequence>
+
<xs:attribute name="syntax" use="required">
+
            <xs:simpleType>
+
              <xs:restriction base="xs:string">
+
                  <xs:enumeration value="sentenv"/>
+
                  <xs:enumeration value="export"/>
+
              </xs:restriction>
+
            </xs:simpleType>
+
        </xs:attribute>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="environment-variable">
+
<xs:annotation>
+
<xs:documentation>
+
'ValueFrom' refers to properties in the resource manager environment.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType >
+
  <xs:attribute name="variableName" use="required" type="xs:string"/>
+
<xs:attribute name="valueFrom" use="required" type="xs:string"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="pre-execute-commands">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="arglist" maxOccurs="unbounded"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="execute-command">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="arglist"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="post-execute-commands">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="arglist" maxOccurs="unbounded"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="attribute-definitions">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="job-attribute" maxOccurs="unbounded"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="job-attribute">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="description" type="xs:string"/>
+
<xs:element name="tooltip" minOccurs="0" type="xs:string"/>
+
<xs:element name="choice" minOccurs="0" type="xs:string">
+
<xs:annotation>
+
<xs:documentation>
+
A a comma-delimited set of values.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:element>
+
<xs:element name="default" minOccurs="0" type="xs:string"/>
+
<xs:element minOccurs="0" ref="validator"/>
+
<xs:element name="value" minOccurs="0" type="xs:string"/>
+
</xs:sequence>
+
<xs:attribute name="id" use="required" type="xs:string"/>
+
<xs:attribute name="name" use="required" type="xs:string"/>
+
<xs:attribute name="type" use="required" type="xs:string"/>
+
<xs:attribute name="basic" type="xs:boolean" default="false">
+
<xs:annotation>
+
<xs:documentation>
+
Indicates if this attribute is part of a basic (required) set, or if it is an (advanced) option.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:attribute>
+
<xs:attribute name="min" type="xs:int"/>
+
<xs:attribute name="max" type="xs:int"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="command-ref" type="xs:string"/>
+
<xs:element name="parser-ref" type="xs:string"/>
+
<xs:element name="command">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="arglist"/>
+
<xs:element minOccurs="0" maxOccurs="2" ref="parser-ref"/>
+
<xs:element minOccurs="0" ref="environment-variables"/>
+
</xs:sequence>
+
<xs:attribute name="name" type="xs:string"/>
+
<xs:attribute name="displayStdout" type="xs:boolean" default="false"/>
+
<xs:attribute name="displayStderr" type="xs:boolean" default="false"/>
+
<xs:attribute name="directory" type="xs:string"/>
+
<xs:attribute name="redirectStderr" type="xs:boolean" default="false"/>
+
<xs:attribute name="replaceEnvironment" type="xs:boolean" default="false"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="arglist">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="arg"/>
+
</xs:sequence>
+
<xs:attribute name="dynamicAppend" type="xs:boolean" default="false">
+
<xs:annotation>
+
<xs:documentation>
+
Iterate over all dynamic attributes, appending the sequence of args for each attribute.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:attribute>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="arg">
+
<xs:annotation>
+
<xs:documentation>
+
The text of the argument will be parsed for references to the resource manager environment; e.g., ${rm:a}, v=${rm:v},
+
etc. By convention, '${rm:@name}' and '${rm:@value}' will refer to a given dynamic attribute name and value (of undefined position i in
+
the list).
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType mixed="true">
+
<xs:attribute name="isUndefinedIfEquals" type="xs:string">
+
<xs:annotation>
+
<xs:documentation>
+
If this is defined (even a zero-length string is valid), an equality check on the arg will be run and if satisfied the arg will be
+
eliminated from the list.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:attribute>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="stream-parser">
+
<xs:annotation>
+
<xs:documentation>
+
These are attached to the stdout or stderr streams in order to capture the output of the command and add values
+
into the resource manager environment. The range indicates which lines of output should be examined. If redirect is true, the
+
stream will be passed on to an output stream provided by the caller.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="range"/>
+
<xs:element ref="token"/>
+
</xs:sequence>
+
<xs:attribute name="name" use="required" type="xs:string"/>
+
<xs:attribute name="stderr" type="xs:boolean" default="false"/>
+
<xs:attribute name="redirect" type="xs:boolean" default="false"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="token">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element minOccurs="0" ref="range"/>
+
<xs:choice>
+
<xs:element ref="token"/>
+
<xs:sequence>
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="put"/>
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="set"/>
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="add"/>
+
</xs:sequence>
+
</xs:choice>
+
</xs:sequence>
+
<xs:attribute name="delim">
+
<xs:annotation>
+
<xs:documentation>
+
The absence of a delimiter means match the entire segment.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:attribute>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="add">
+
<xs:annotation>
+
<xs:documentation>
+
Value is the concatenation of tokens matching the range; this is then added as an element to the named list. If
+
there is no such list, a list will be created and assigned to the variable name. If no range is present, the value equals the
+
entire element.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element minOccurs="0" ref="range"/>
+
</xs:sequence>
+
<xs:attribute name="name" use="required" type="xs:string"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="set">
+
<xs:annotation>
+
<xs:documentation>
+
Value assigned to the setter is the concatenation of tokens matching the range; in the context of this
+
implementation, setter refers to the name of an attribute or element of JobAttribute or to a Property value; name designates the
+
variable to which the JobAttribute or Property has been assigned. If no such element exists an exception is thrown. If no
+
range is
+
present, the value equals the entire element.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element minOccurs="0" ref="range"/>
+
</xs:sequence>
+
<xs:attribute name="name" use="required" type="xs:string"/>
+
<xs:attribute name="setter" use="required" type="xs:string"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="put">
+
<xs:annotation>
+
<xs:documentation>
+
Value is the concatenation of tokens matching the range; this is assigned as a Property variable with the given
+
name. This method will overwrite any variable with the same name. If no range is present, the value equals
+
the entire element.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element minOccurs="0" ref="range"/>
+
</xs:sequence>
+
<xs:attribute name="name" use="required" type="xs:string"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="range" type="xs:string">
+
<xs:annotation>
+
<xs:documentation>
+
Indicates which elements generated by a segmentation should be returned; expression is a comma-delimited list,
+
which may also contain colon-delimited ranges; by convention, ":N" = up to final segment returned.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:element>
+
<xs:element name="validator">
+
<xs:annotation>
+
<xs:documentation>
+
A regular expression or an acl used to validate an attribute value.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:choice>
+
<xs:element name="regex" type="xs:string"/>
+
<xs:element name="acl" type="xs:string"/>
+
</xs:choice>
+
<xs:element name="error-message" minOccurs="0" type="xs:string"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="launch-tab">
+
<xs:annotation>
+
<xs:documentation>
+
This is a recursive description of the main UI element associated with the control part, the Launch Tab. NOTE: I
+
do not as yet know how many of the underlying widget options need to be exposed here for effective building in the createControl
+
method. What follows is minimal.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element maxOccurs="unbounded" ref="tab-controller"/>
+
</xs:sequence>
+
<xs:attribute name="advancedModeEnabled" type="xs:boolean" default="false">
+
<xs:annotation>
+
<xs:documentation>
+
If this is set to true, a tab-controller which allows the user to browse the local file system and/or workspace
+
to open and edit a custom batch script will be created; this will include copy and renaming buttons.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:attribute>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="tab-controller">
+
<xs:annotation>
+
<xs:documentation>
+
as in: org.eclipse.ptp.rm.ui.launch.ExtendableRMLaunchConfigurationDynamicTab; a top-level "switch" between views.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="title" type="xs:string"/>
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="group"/>
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="tab-folder"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="tab-folder">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="title" type="xs:string"/>
+
<xs:element maxOccurs="unbounded" ref="tab-item"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="tab-item">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="title" type="xs:string"/>
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="group"/>
+
<xs:element minOccurs="0" maxOccurs="unbounded" ref="tab-folder"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="group">
+
<xs:annotation>
+
<xs:documentation>
+
We may want a few tweaks here, such as borders, etc. Dynamic attribute means this group gets rebuilt if there is a
+
button allowing the user to select displayed attributes.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="grid-data" minOccurs="0"/>
+
<xs:element ref="grid-layout" minOccurs="0"/>
+
<xs:element name="title" type="xs:string" minOccurs="0"/>
+
<xs:element ref="style" minOccurs="0"/>
+
<xs:choice>
+
<xs:choice maxOccurs="unbounded">
+
<xs:element ref="group"/>
+
<xs:element ref="tab-folder"/>
+
<xs:element ref="widget"/>
+
<xs:element ref="viewer"/>
+
</xs:choice>
+
<xs:element ref="discovered-attributes"/>
+
<xs:element ref="all-attributes"/>
+
</xs:choice>
+
</xs:sequence>
+
<xs:attribute name="dynamic" type="xs:boolean" default="false"/>
+
<xs:attribute name="scrollable" type="xs:boolean" default="false"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="all-attributes">
+
<xs:annotation>
+
<xs:documentation>
+
Indicates that all the attributes defined at initialization and runtime be placed in this group.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="viewer" minOccurs="0">
+
<xs:annotation>
+
<xs:documentation>
+
The presence of this element indicates all attributes should be placed in a single table; otherwise, attributes
+
are mapped serially to widgets by type.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:element>
+
<xs:element name="include">
+
<xs:complexType>
+
<xs:attribute name="headers" type="xs:boolean" default="true"/>
+
<xs:attribute name="sort" type="xs:boolean" default="true"/>
+
<xs:attribute name="name" type="xs:boolean" default="true"/>
+
<xs:attribute name="tooltip" type="xs:boolean" default="true"/>
+
<xs:attribute name="description" type="xs:boolean" default="true"/>
+
</xs:complexType>
+
</xs:element>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="discovered-attributes">
+
<xs:annotation>
+
<xs:documentation>
+
Indicates that all the attributes defined at runtime be placed in this group.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="viewer" minOccurs="0">
+
<xs:annotation>
+
<xs:documentation>
+
The presence of this element indicates all attributes should be placed in a single table; otherwise, attributes
+
are mapped serially to widgets by type.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:element>
+
<xs:element name="include">
+
<xs:complexType>
+
<xs:attribute name="headers" type="xs:boolean" default="true"/>
+
                  <xs:attribute name="sort" type="xs:boolean" default="true"/>
+
                  <xs:attribute name="name" type="xs:boolean" default="true"/>
+
                  <xs:attribute name="tooltip" type="xs:boolean" default="true"/>
+
                  <xs:attribute name="description" type="xs:boolean" default="true"/>
+
</xs:complexType>
+
</xs:element>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="grid-data">
+
<xs:complexType>
+
<xs:attribute name="horizontalAlign" type="xs:string"/>
+
<xs:attribute name="verticalAlign" type="xs:string"/>
+
<xs:attribute name="grabExcessHorizontal" type="xs:boolean" default="true"/>
+
<xs:attribute name="grabExcessVertical" type="xs:boolean" default="false"/>
+
<xs:attribute name="horizontalSpan" type="xs:integer"/>
+
<xs:attribute name="verticalSpan" type="xs:integer"/>
+
<xs:attribute name="minHeight" type="xs:integer"/>
+
<xs:attribute name="minWidth" type="xs:integer"/>
+
<xs:attribute name="heightHint" type="xs:integer"/>
+
<xs:attribute name="widthHint" type="xs:integer"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="grid-layout">
+
<xs:complexType>
+
<xs:attribute name="numColumns" type="xs:integer"/>
+
<xs:attribute name="horizontalSpacing" type="xs:integer"/>
+
<xs:attribute name="makeColumnsEqualWidth" type="xs:boolean" default="true"/>
+
<xs:attribute name="marginBottom" type="xs:integer"/>
+
<xs:attribute name="marginHeight" type="xs:integer"/>
+
<xs:attribute name="marginLeft" type="xs:integer"/>
+
<xs:attribute name="marginRight" type="xs:integer"/>
+
<xs:attribute name="marginTop" type="xs:integer"/>
+
<xs:attribute name="marginWidth" type="xs:integer"/>
+
<xs:attribute name="verticalSpacing" type="xs:integer"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="column-data">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="style"/>
+
</xs:sequence>
+
<xs:attribute name="name" type="xs:string"/>
+
<xs:attribute name="width" type="xs:string"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="style">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="tag" type="xs:string" maxOccurs="unbounded">
+
<xs:annotation>
+
<xs:documentation>
+
The strings will be converted into their integer values;
+
e.g., "SWT.NONE". They will then be 'or'd' ( | ).
+
</xs:documentation>
+
</xs:annotation>
+
</xs:element>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="viewer">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="grid-data" minOccurs="0"/>
+
<xs:element ref="grid-layout" minOccurs="0"/>
+
<xs:element name="label" minOccurs="0" type="xs:string"/>
+
<xs:element ref="style" minOccurs="0"/>
+
<xs:element ref="column-data" minOccurs="0"/>
+
<xs:element name="initial-rows" minOccurs="0">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="row" maxOccurs="unbounded">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="column-text" maxOccurs="unbounded" type="xs:string"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
</xs:sequence>
+
<xs:attribute name="editable" type="xs:boolean" default="true"/>
+
<xs:attribute name="type" default="table">
+
<xs:simpleType>
+
<xs:restriction base="xs:string">
+
<xs:enumeration value="table"/>
+
<xs:enumeration value="tree"/>
+
<xs:enumeration value="checkboxTable"/>
+
</xs:restriction>
+
</xs:simpleType>
+
</xs:attribute>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="widget">
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element name="label" minOccurs="0" type="xs:string"/>
+
<xs:element ref="style" minOccurs="0"/>
+
<xs:element name="tooltip" minOccurs="0" type="xs:string"/>
+
<xs:element name="content" minOccurs="0">
+
<xs:annotation>
+
<xs:documentation>
+
The text of this element will be parsed for references to the resource manager environment; e.g., ${a},
+
version-${b}, etc.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:complexType>
+
<xs:sequence>
+
<xs:element ref="arglist"/>
+
</xs:sequence>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="saveValueTo" type="xs:string" minOccurs="0">
+
<xs:annotation>
+
<xs:documentation>
+
The text of this element will be the name of a property.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:element>
+
</xs:sequence>
+
<xs:attribute name="type" default="text">
+
<xs:annotation>
+
<xs:documentation>
+
Custom, fixed widgets:
+
1. select-attributes: push button which brings up wizard exposing attribute names with
+
checkboxes, allowing dynamic groups to be rebuilt.
+
2. show-script: push button which displays the batch script as it would
+
currently be submitted.
+
</xs:documentation>
+
</xs:annotation>
+
<xs:simpleType>
+
<xs:restriction base="xs:string">
+
<xs:enumeration value="label"/> <!-- automatically read-only -->
+
<xs:enumeration value="text"/>
+
<xs:enumeration value="pushButton"/> <!-- automatically read-only -->
+
<xs:enumeration value="radioButton"/> <!-- automatically read-only -->
+
<xs:enumeration value="spinner"/>
+
<xs:enumeration value="checkbox"/> <!-- automatically read-only -->
+
<xs:enumeration value="combo"/>
+
<xs:enumeration value="browseDirectoryButton"/>
+
<xs:enumeration value="browseExistingFileButton"/>
+
<xs:enumeration value="browseOrCreateFileButton"/>
+
<xs:enumeration value="selectAttributes"/> <!-- automatically read-only -->
+
<xs:enumeration value="showScript"/> <!-- automatically read-only -->
+
</xs:restriction>
+
</xs:simpleType>
+
</xs:attribute>
+
<xs:attribute name="readOnly" type="xs:boolean" default="false"/>
+
</xs:complexType>
+
</xs:element>
+
<xs:element name="monitor">
+
<xs:annotation>
+
<xs:documentation>
+
I have for the moment left this undefined.
+
</xs:documentation>
+
</xs:annotation>
+
</xs:element>
+
</xs:schema>
+
</source>
+
 
+
'''''Revised version 9 (27/02/2011):''''' PBS instance example
+
 
+
<source lang="xml">
+
<?xml version="1.0" encoding="UTF-8"?>
+
<resource-manager-data name="rm-pbs-torque_2.3.7">
+
  <site>
+
      <control-connection>ssh://abe.ncsa.uiuc.edu/usr/local/bin/qsub</control-connection>
+
  </site>
+
<control>
+
<managed-files>
+
<file-staging-location>.eclipsesettings</file-staging-location>
+
<managed-file name="pbs_script" uniqueIdPrefix="true" deleteAfterUse="true">
+
<contents>${rm:script}</contents>
+
</managed-file>
+
</managed-files>
+
<on-start-up>
+
        <command-ref>find_queues</command-ref>
+
      </on-start-up>
+
<submit-commands>
+
<submit-batch>
+
<command-ref>submit_script</command-ref>
+
</submit-batch>
+
</submit-commands>
+
<terminate-job>
+
<command-ref>cancel_job</command-ref>
+
</terminate-job>
+
<commands>
+
  <command name="find_queues">
+
            <arglist>
+
              <arg>qstat -Q -f</arg>
+
              <arg>| grep Queue:</arg>
+
              <arg>| cut -d ' ' -f 2</arg>
+
            </arglist>
+
            <parser-ref>queueParser</parser-ref>
+
        </command>
+
<command name="submit_script">
+
<arglist>
+
<arg>qsub</arg>
+
<arg>${rm:pbs_script}</arg>
+
</arglist>
+
<parser-ref>jobIdParser</parser-ref>
+
</command>
+
<command name="cancel_job">
+
<arglist>
+
<arg>qdel</arg>
+
<arg>${rm:jobId}</arg>
+
</arglist>
+
</command>
+
</commands>
+
<parsers>
+
<stream-parser name="queueParser" stderr="false">
+
<range>0:N</range>
+
<token>
+
  <add name="available_queues"/>
+
</token>
+
</stream-parser>
+
<stream-parser name="jobIdParser" stderr="false">
+
            <range>0:N</range>
+
            <token delim="[.]">
+
              <put name="jobId">
+
                  <range>0</range>
+
              </put>
+
            </token>
+
        </stream-parser>
+
</parsers>
+
<script shell="#!/bin/bash">
+
<directive-definitions>
+
<directive-definition valueFrom="Account_Name"># @ PBS -A </directive-definition>
+
<directive-definition valueFrom="Checkpoint"># @ PBS -c </directive-definition>
+
<directive-definition valueFrom="depend"># @ PBS -W depend=</directive-definition>
+
<directive-definition valueFrom="destination"># @ PBS -q </directive-definition>
+
<directive-definition valueFrom="directive"># @ PBS -C </directive-definition>
+
<directive-definition valueFrom="Error_Path"># @ PBS -e </directive-definition>
+
<directive-definition valueFrom="export_all"># @ PBS -V </directive-definition>
+
<directive-definition valueFrom="group_list"># @ PBS -W group_list=</directive-definition>
+
<directive-definition valueFrom="Hold_Types"># @ PBS -h </directive-definition>
+
<directive-definition valueFrom="Job_Name"># @ PBS -N </directive-definition>
+
<directive-definition valueFrom="Join_Path"># @ PBS -j </directive-definition>
+
<directive-definition valueFrom="Keep_Files"># @ PBS -k </directive-definition>
+
<directive-definition valueFrom="Mail_Points"># @ PBS -m </directive-definition>
+
<directive-definition valueFrom="Mail_Users"># @ PBS -M </directive-definition>
+
<directive-definition valueFrom="Output_Path"># @ PBS -o </directive-definition>
+
<directive-definition valueFrom="Priority"># @ PBS -p </directive-definition>
+
<directive-definition valueFrom="Rerunnable"># @ PBS -r </directive-definition>
+
<directive-definition valueFrom="Resource_List.arch"># @ PBS -l arch=</directive-definition>
+
<directive-definition valueFrom="Resource_List.cput"># @ PBS -l cput=</directive-definition>
+
<directive-definition valueFrom="Resource_List.file"># @ PBS -l file=</directive-definition>
+
<directive-definition valueFrom="Resource_List.host"># @ PBS -l host=</directive-definition>
+
<directive-definition valueFrom="Resource_List.mem"># @ PBS -l mem=</directive-definition>
+
<directive-definition valueFrom="Resource_List.nice"># @ PBS -l nice=</directive-definition>
+
<directive-definition valueFrom="Resource_List.nodes"># @ PBS -l nodes=</directive-definition>
+
<directive-definition valueFrom="Resource_List.ompthreads"># @ PBS -l ompthreads=</directive-definition>
+
<directive-definition valueFrom="Resource_List.pcput"># @ PBS -l pcput=</directive-definition>
+
<directive-definition valueFrom="Resource_List.pmem"># @ PBS -l pmem=</directive-definition>
+
<directive-definition valueFrom="Resource_List.pvmem"># @ PBS -l pvmem=</directive-definition>
+
<directive-definition valueFrom="Resource_List.vmem"># @ PBS -l vmem=</directive-definition>
+
<directive-definition valueFrom="Resource_List.walltime"># @ PBS -l walltime=</directive-definition>
+
<directive-definition valueFrom="Shell_Path_List"># @ PBS -S </directive-definition>
+
<directive-definition valueFrom="stagein"># @ PBS -W stagein=</directive-definition>
+
<directive-definition valueFrom="stageout"># @ PBS -W stageout=</directive-definition>
+
<directive-definition valueFrom="User_List"># @ PBS -u </directive-definition>
+
<directive-definition valueFrom="Variable_List"># @ PBS -v </directive-definition>
+
</directive-definitions>
+
<pre-execute-commands>
+
<arglist>
+
<arg>cd</arg>
+
<arg>${rm:directory}</arg>
+
</arglist>
+
</pre-execute-commands>
+
<execute-command>
+
<arglist>
+
<arg>${rm:mpiCommand}</arg>
+
<arg>${rm:mpiArgs}</arg>
+
<arg>${rm:executablePath}</arg>
+
<arg>${rm:progArgs}</arg>
+
</arglist>
+
</execute-command>
+
<post-execute-commands>
+
<arglist>
+
<arg>touch</arg>
+
<arg>DONE</arg>
+
</arglist>
+
</post-execute-commands>
+
</script>
+
<attribute-definitions>
+
<job-attribute id="mpiCommand" name="mpiCommand" basic="true" type="choice">
+
<description>Which mpi command to use.</description>
+
<choice>,mpiexec,mpirun</choice>
+
</job-attribute>
+
<job-attribute id="mpiCores" name="mpiCores" min="1" basic="true" type="integer">
+
<description>the '-np' value</description>
+
</job-attribute>
+
<job-attribute id="mpiArgs" name="mpiArgs" basic="true" type="string">
+
<description>Which mpi options to use.</description>
+
<default>-machinefile $PBS_NODEFILE -np ${rm:mpiCores}</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Account_Name" name="Account_Name" basic="true" type="string">
+
<description>Account to which to charge this job.</description>
+
<tooltip>Format: string</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Checkpoint" name="Checkpoint" type="choice">
+
<description>Determines when checkpointing (if supported) will be performed by PBS on behalf of the job.</description>
+
<tooltip>Format: the strings "n" (no checkpointing), "s" (to be performed only when the server executing the job is shutdown), "c"s
+
(to be performed at the default minimum time for thes servers executing the job), "c=mmmm" (to be performed at an intervals ofs
+
minutess whichs is the integer number of minutes of CPUs time used bys the job; values must be greater than zero); defaults value:
+
"u", whichs iss unspecified.
+
</tooltip>
+
<choice>,u,n,s,c,c=????</choice>
+
            <default>u</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_depend" name="depend" type="string">
+
<description>The type of inter-job dependencies specified by the job owner.</description>
+
<tooltip>Format: "type:jobid[,jobid...]"; default value: no dependencies.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_destination" name="destination" type="string" basic="true">
+
<description>Designation of the queue to which to submit the job.</description>
+
<tooltip>Format: queue[@server].</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_directive" name="directive" type="string">
+
<description>Defines the prefix that declares a directive to the qsub command within the script file.</description>
+
<tooltip>See the paragraph on script directives in the Extended Description section. If the option is presented with a
+
directive_prefix argument that is the null string, qsub will not scan the script file for directives.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Error_Path" name="Error_Path" type="string">
+
<description>The final path name for the file containing the job's standard error stream.</description>
+
<tooltip>Format: "[hostname:]pathname". If the option is not specified, the default file name for the standard error stream will be
+
used. The default name has the following form: job_name.eSeq_num where job_name is the name of the job, see -N option, and Seq_num
+
is the job number assigned when the job is submitted; default value: (job_name).e(job_number).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_export_all" name="export_all" basic="true" type="boolean">
+
<description>Declares that all environment variables in the qsub command's environment are to be exported to the batch job.</description>
+
<default>true</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_group_list" name="group_list" type="string">
+
<description>A list of group_names@hosts which determines the group under which the job is run on a given host.</description>
+
<tooltip>Format: group_name[@host][,group_name[@host]...]. When a job is to be placed into execution, the server will select a
+
group
+
name according to the following ordered set of rules: 1) Select the group name from the list for which the associated host
+
name
+
matches the name of the execution host; 2) Select the group name which has no associated host name, the wildcard name; 3) Use
+
the
+
login group for the username under which the job will be run.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Hold_Types" name="Hold_Types" type="choice">
+
<description>The set of holds currently applied to the job.</description>
+
<tooltip>If the set is not null, the job will not be scheduled for execution and is said to be in the hold state. Note, the hold
+
state takes precedence over the wait state. Format: string made up of the letters 'u', 's', 'o'; default value: no hold.
+
</tooltip>
+
<choice>,u,s,o</choice>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Job_Name" name="Job_Name" type="string" basic="true">
+
<description>The name assigned to the job by the qsub or qalter command.</description>
+
<tooltip>Format: string up to 15 characters, first character must be alphabetic; default value: the base name of the job script or
+
STDIN.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Join_Path" name="Join_Path" type="boolean">
+
<description>Merge stdout and stderr into stdout.</description>
+
<tooltip>Format: boolean, values accepted are "True", "TRUE", "true", "Y", "y", "1", "False", "FALSE", "false", "N", "n", "0";
+
default value: false.
+
</tooltip>
+
<default>false</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Keep_Files" name="Keep_Files" type="choice">
+
<description>Retain these streams on the execution host upon job termination.</description>
+
<tooltip>Format: "o", "e", "oe" or "eo"; default value: no keep, return files to submission host.</tooltip>
+
  <choice>,o,e,oe,eo</choice>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Mail_Points" name="Mail_Points" type="choice">
+
<description>Identifies at which state changes the server will send mail about the job.</description>
+
<tooltip>Format: string made up of the letters 'a' for abort, 'b' for beginning, and default value: 'a', send on job abort.
+
</tooltip>
+
<choice>,a,b</choice>
+
            <default>a</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Mail_Users" name="Mail_Users" type="string">
+
<description>The set of users to whom mail may be sent when the job makes certain state changes.</description>
+
<tooltip>Format: "user@host[,user@host]"; default value: job owner only.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Output_Path" name="Output_Path" type="string">
+
<description>The final path name for the file containing the job's standard output stream.</description>
+
<tooltip>Format: "[hostname:]pathname". If the option is not specified, the default file name for the standard error stream will be
+
used. The default name has the following form: job_name.oSeq_num where job_name is the name of the job, see -N option, and Seq_num
+
is the job number assigned when the job is submitted; default value: (job_name).o(job_number).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Priority" name="Priority" type="string">
+
<description>The job scheduling priority assigned by the user.</description>
+
<tooltip>Format: "[+|-]nnnnn"; default value: undefined.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Rerunnable" name="Rerunnable" type="choice">
+
<description>The rerunnable flag assigned by the user.</description>
+
<tooltip>Format: "y" or "n", see Join_Path; default value: y, job is rerunable.</tooltip>
+
            <choice>,n,y</choice>
+
            <default>y</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.arch" name="Resource_List.arch" type="string">
+
<description>Specifies the administrator defined system architecture requried.</description>
+
<tooltip>This defaults to whatever the PBS_MACH string is set to in "local.mk". Units: string.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.cput" name="Resource_List.cput" type="string">
+
<description>Maximum amount of CPU time used by all processes in the job.</description>
+
<tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.file" name="Resource_List.file" type="string">
+
<description>The largest size of any single file that may be created by the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.host" name="Resource_List.host" type="string">
+
<description>Name of host on which job should be run.</description>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.mem" name="Resource_List.mem" type="string">
+
<description>Maximum amount of memory used by all concurrent processes in the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.nice" name="Resource_List.nice" type="integer" min="0" max="10">
+
<description>The nice value under which the job is to be run.</description>
+
<tooltip>0 to 10.</tooltip>
+
<default>0</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.nodes" name="Resource_List.nodes" basic="true" type="string">
+
<description>Number and/or type of nodes to be reserved for exclusive use by the job.</description>
+
<tooltip>The value is one or more node_specs joined with the '+' character, "node_spec[+node_spec...]. Each node_spec is a number
+
of
+
nodes required of the type declared in the node_spec and a name or one or more properity or properities desired for the nodes.
+
The
+
number, the name, and each properity in the node_spec are separated by a colon ':'. If no number is specified, one (1) is
+
assumed.
+
Units: string. The name of a node is its hostname. The properties of nodes are: ppn=# requested; defaults to 1; or an
+
arbitrary
+
string defined by system administrator. Example: To ask for 2 processors on each of two blue nodes and three processors
+
on one red
+
node: -l nodes=2:blue:ppn=2+red:ppn=3.
+
</tooltip>
+
<default>1</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.ompthreads" name="Resource_List.ompthreads" type="integer" min="1">
+
<description>Number of threads per processor for Open MP jobs.</description>
+
<default>1</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.pcput" name="Resource_List.pcput" type="string">
+
<description>Maximum amount of CPU time used by any single process in the job.</description>
+
<tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.pmem" name="Resource_List.pmem" type="string">
+
<description>Maximum amount of physical memory (workingset) used by any single process of the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.pvmem" name="Resource_List.pvmem" type="string">
+
<description>Maximum amount of virtual memory used by any single process in the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.vmem" name="Resource_List.vmem" type="string">
+
<description>Maximum amount of virtual memory used by all concurrent processes in the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.walltime" name="Resource_List.walltime" basic="true" type="string">
+
<description>Maximum amount of real time during which the job can be in the running state.</description>
+
<tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip>
+
  <default>00:30:00</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Shell_Path_List" name="Shell_Path_List" type="string">
+
<description>A set of absolute paths of the program to process the job's script file.</description>
+
<tooltip>Format: path[@host][,path[@host]...]. If this is null, then the user's login shell on the host of execution will be used.
+
Default value: null, login shell.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_stagein" name="stagein" type="string">
+
<description>The list of files to be staged in prior to job execution.</description>
+
<tooltip>Format: local_path@remote_host:remote_path.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_stageout" name="stageout" type="string">
+
<description>The list of files to be staged out after job execution.</description>
+
<tooltip>Format: local_path@remote_host:remote_path.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_User_List" name="User_List" type="string">
+
<description>The list of user@hosts which determines the user name under which the job is run on a given host.</description>
+
<tooltip>When a job is to be placed into execution, the server will select a user name from the list according to the following
+
ordered set of rules: 1) Select the user name from the list for which the associated host name matches the name of the execution
+
host; 2) Select the user name which has no associated host name, the wild card name; 3) Use the Job_Owner as the user name.
+
Default
+
value: job owner name.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Variable_List" name="Variable_List" type="string">
+
<description>This is the list of environment variables passed with the Queue Job batch request.</description>
+
</job-attribute>
+
</attribute-definitions>
+
<launch-tab advancedModeEnabled="true">
+
<tab-controller>
+
<title>Standard</title>
+
<group>
+
<grid-layout numColumns="2"/>
+
<title>Script Configuration</title>
+
<widget type="selectAttributes">
+
<tooltip>Choose the attributes to display in the Detailed Tab.</tooltip>
+
</widget>
+
<widget type="showScript" readOnly="true">
+
<tooltip>Show the batch script as it would currently be submitted.</tooltip>
+
</widget>
+
</group>
+
<tab-folder>
+
<title>Job Settings</title>
+
<tab-item>
+
<title>Basic</title>
+
<group>
+
<grid-layout numColumns="3"/>
+
<!-- row 1 -->
+
<widget type="text">
+
<label>Job Name: </label>
+
<tooltip>${rm:Job_Name#tooltip}</tooltip>
+
<content>
+
<arglist>
+
<arg>${rm:Job_Name#value}</arg>
+
</arglist>
+
</content>
+
<saveValueTo>Job_Name</saveValueTo>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>${rm:Job_Name#description}</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 2 -->
+
<widget type="combo" readOnly="true">
+
<label>Queue: </label>
+
<tooltip>${rm:destination#tooltip}</tooltip>
+
<content>
+
<arglist>
+
<arg>${rm:available_queues}</arg>
+
</arglist>
+
</content>
+
<saveValueTo>destination</saveValueTo>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>${rm:destination#description}</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 3 -->
+
<widget type="text">
+
<label>Nodes: </label>
+
<tooltip>${rm:Resource_List.nodes#tooltip}</tooltip>
+
<content>
+
<arglist>
+
<arg>${rm:Resource_List.nodes#value}</arg>
+
</arglist>
+
</content>
+
<saveValueTo>Resource_List.nodes</saveValueTo>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>${rm:Resource_List.nodes#description}</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 4 -->
+
<widget type="text">
+
<label>Wallclock Time</label>
+
<tooltip>${rm:Resource_List.walltime#tooltip}</tooltip>
+
<content>
+
<arglist>
+
<arg>${rm:Resource_List.walltime#value}</arg>
+
</arglist>
+
</content>
+
<saveValueTo>Resource_List.walltime</saveValueTo>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>${rm:Resource_List.walltime#description}</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 5 -->
+
<widget type="combo" readOnly="true">
+
<label>MPI Command: </label>
+
<content>
+
<arglist>
+
<arg>mpiCommand</arg>
+
</arglist>
+
</content>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>MPI executable to use</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 6 -->
+
<widget type="spinner" readOnly="true">
+
<label>MPI Number of Cores: </label>
+
<content>
+
<arglist>
+
<arg>mpiCores</arg>
+
</arglist>
+
</content>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>The number following "-np" on the command line</arg>
+
</arglist>
+
</content>
+
</widget>
+
</group>
+
</tab-item>
+
<tab-item>
+
<title>Detailed</title>
+
<group dynamic="true" scrollable="true">
+
<grid-layout numColumns="3"/>
+
<!-- iterates through all registered attributes, one to a row -->
+
<all-attributes>
+
<include sort="true" headers="true" name="true" tooltip="true" description="true"/>
+
</all-attributes>
+
</group>
+
</tab-item>
+
</tab-folder>
+
</tab-controller>
+
</launch-tab>
+
</control>
+
<monitor>
+
</monitor>
+
</resource-manager-data>
+
</source>
+
 
+
== PBS RM XML == 
+
'''This is a working document in progress, just as the XSD above'''
+
'''Revision 1 25/01/2011'''
+
'''Revision 2 09/02/2011'''
+
'''Revision 3 22/02/2011:'''  note that the standard properties from runtime need not be specified
+
 
+
<source lang="xml">
+
<?xml version="1.0" encoding="UTF-8"?>
+
<resource-manager-data name="rm-pbs-torque_2.3.7">
+
  <site>
+
      <control-connection>ssh://abe.ncsa.uiuc.edu/usr/local/bin/qsub</control-connection>
+
  </site>
+
<control>
+
<managed-files>
+
<file-staging-location>~/.eclipsesettings</file-staging-location>
+
<managed-file name="pbs_script" uniqueIdSuffix="true" deleteAfterUse="true">
+
<contents>${rm:script}</contents>
+
</managed-file>
+
</managed-files>
+
<run-commands>
+
<run-batch>
+
<command-ref>submit_script</command-ref>
+
</run-batch>
+
</run-commands>
+
<cancel-job>
+
<command-ref>cancel_job</command-ref>
+
</cancel-job>
+
<commands>
+
<command name="submit_script">
+
<arglist>
+
<arg>qsub</arg>
+
<arg>${rm:pbs_script}</arg>
+
</arglist>
+
<parser-ref>jobIdParser</parser-ref>
+
</command>
+
<command name="cancel_job">
+
<arglist>
+
<arg>qdel</arg>
+
<arg>${rm:jobId}</arg>
+
</arglist>
+
</command>
+
</commands>
+
<parsers>
+
<stream-parser name="jobIdParser" stderr="false">
+
<parse-lines>n-1</parse-lines>
+
<token delim="[.]" return="0"/>
+
<put name="jobId" index="0"/>
+
</stream-parser>
+
</parsers>
+
<script shell="#!/bin/bash">
+
<directive-definitions>
+
<directive-definition valueFrom="PBSJOB_Account_Name"># @ PBS -A </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Checkpoint"># @ PBS -c </directive-definition>
+
<directive-definition valueFrom="PBSJOB_depend"># @ PBS -W depend=</directive-definition>
+
<directive-definition valueFrom="PBSJOB_destination"># @ PBS -q </directive-definition>
+
<directive-definition valueFrom="PBSJOB_directive"># @ PBS -C </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Error_Path"># @ PBS -e </directive-definition>
+
<directive-definition valueFrom="PBSJOB_export_all"># @ PBS -V </directive-definition>
+
<directive-definition valueFrom="PBSJOB_group_list"># @ PBS -W group_list=</directive-definition>
+
<directive-definition valueFrom="PBSJOB_Hold_Types"># @ PBS -h </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Job_Name"># @ PBS -N </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Join_Path"># @ PBS -j </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Keep_Files"># @ PBS -k </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Mail_Points"># @ PBS -m </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Mail_Users"># @ PBS -M </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Output_Path"># @ PBS -o </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Priority"># @ PBS -p </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Rerunnable"># @ PBS -r </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.arch"># @ PBS -l arch= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.cput"># @ PBS -l cput= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.file"># @ PBS -l file= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.host"># @ PBS -l host= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.mem"># @ PBS -l mem= </directive-definition>
+
<directive-definition valueFrom="Resource_List.nice"># @ PBS -l nice= </directive-definition>
+
<directive-definition valueFrom="Resource_List.nodes"># @ PBS -l nodes= </directive-definition>
+
<directive-definition valueFrom="Resource_List.ompthreads"># @ PBS -l ompthreads= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.pcput"># @ PBS -l pcput= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.pmem"># @ PBS -l pmem= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.pvmem"># @ PBS -l pvmem= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.vmem"># @ PBS -l vmem= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Resource_List.walltime"># @ PBS -l walltime= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Shell_Path_List"># @ PBS -S </directive-definition>
+
<directive-definition valueFrom="PBSJOB_stagein"># @ PBS -W stagein= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_stageout"># @ PBS -W stageout= </directive-definition>
+
<directive-definition valueFrom="PBSJOB_User_List"># @ PBS -u </directive-definition>
+
<directive-definition valueFrom="PBSJOB_Variable_List"># @ PBS -v </directive-definition>
+
</directive-definitions>
+
<pre-execute-commands>
+
<arglist>
+
<arg>cd</arg>
+
<arg>${rm:directory}</arg>
+
</arglist>
+
</pre-execute-commands>
+
<execute-command>
+
<arglist>
+
<arg>${rm:mpiCommand}</arg>
+
<arg>${rm:mpiArgs}</arg>
+
<arg>${rm:executablePath}</arg>
+
<arg>${rm:progArgs}</arg>
+
</arglist>
+
</execute-command>
+
<post-execute-commands>
+
<arglist>
+
<arg>touch</arg>
+
<arg>DONE</arg>
+
</arglist>
+
</post-execute-commands>
+
</script>
+
<attribute-definitions>
+
<job-attribute id="mpiCommand" name="mpiCommand" basic="true" type="choice">
+
<description>Which mpi command to use.</description>
+
<choice>,mpiexec,mpirun</choice>
+
</job-attribute>
+
<job-attribute id="mpiCores" name="mpiCores" min="1" basic="true" type="integer">
+
<description>the '-np' value</description>
+
</job-attribute>
+
<job-attribute id="mpiArgs" name="mpiArgs" basic="true" type="string">
+
<description>Which mpi options to use.</description>
+
<default>-machinefile $PBS_NODEFILE -np ${rm:mpiCores}</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Account_Name" name="Account_Name" basic="true" type="string">
+
<description>Account to which to charge this job.</description>
+
<tooltip>Format: string</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Checkpoint" name="Checkpoint" type="choice">
+
<description>Determines when checkpointing (if supported) will be performed by PBS on behalf of the job.</description>
+
<tooltip>Format: the strings "n" (no checkpointing), "s" (to be performed only when the server executing the job is shutdown), "c"s
+
(to be performed at the default minimum time for thes servers executing the job), "c=mmmm" (to be performed at an intervals ofs
+
minutess whichs is the integer number of minutes of CPUs time used bys the job; values must be greater than zero); defaults value:
+
"u", whichs iss unspecified.
+
</tooltip>
+
<choice>,u,n,s,c,c=????</choice>
+
            <default>u</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_depend" name="depend" type="string">
+
<description>The type of inter-job dependencies specified by the job owner.</description>
+
<tooltip>Format: "type:jobid[,jobid...]"; default value: no dependencies.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_destination" name="destination" type="string" basic="true">
+
<description>Designation of the queue to which to submit the job.</description>
+
<tooltip>Format: queue[@server].</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_directive" name="directive" type="string">
+
<description>Defines the prefix that declares a directive to the qsub command within the script file.</description>
+
<tooltip>See the paragraph on script directives in the Extended Description section. If the option is presented with a
+
directive_prefix argument that is the null string, qsub will not scan the script file for directives.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Error_Path" name="Error_Path" type="string">
+
<description>The final path name for the file containing the job's standard error stream.</description>
+
<tooltip>Format: "[hostname:]pathname". If the option is not specified, the default file name for the standard error stream will be
+
used. The default name has the following form: job_name.eSeq_num where job_name is the name of the job, see -N option, and Seq_num
+
is the job number assigned when the job is submitted; default value: (job_name).e(job_number).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_export_all" name="export_all" basic="true" type="boolean">
+
<description>Declares that all environment variables in the qsub command's environment are to be exported to the batch job.</description>
+
<default>true</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_group_list" name="group_list" type="string">
+
<description>A list of group_names@hosts which determines the group under which the job is run on a given host.</description>
+
<tooltip>Format: group_name[@host][,group_name[@host]...]. When a job is to be placed into execution, the server will select a
+
group
+
name according to the following ordered set of rules: 1) Select the group name from the list for which the associated host
+
name
+
matches the name of the execution host; 2) Select the group name which has no associated host name, the wildcard name; 3) Use
+
the
+
login group for the username under which the job will be run.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Hold_Types" name="Hold_Types" type="choice">
+
<description>The set of holds currently applied to the job.</description>
+
<tooltip>If the set is not null, the job will not be scheduled for execution and is said to be in the hold state. Note, the hold
+
state takes precedence over the wait state. Format: string made up of the letters 'u', 's', 'o'; default value: no hold.
+
</tooltip>
+
<choice>,u,s,o</choice>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Job_Name" name="Job_Name" type="string" basic="true">
+
<description>The name assigned to the job by the qsub or qalter command.</description>
+
<tooltip>Format: string up to 15 characters, first character must be alphabetic; default value: the base name of the job script or
+
STDIN.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Join_Path" name="Join_Path" type="boolean">
+
<description>Merge stdout and stderr into stdout.</description>
+
<tooltip>Format: boolean, values accepted are "True", "TRUE", "true", "Y", "y", "1", "False", "FALSE", "false", "N", "n", "0";
+
default value: false.
+
</tooltip>
+
<default>false</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Keep_Files" name="Keep_Files" type="choice">
+
<description>Retain these streams on the execution host upon job termination.</description>
+
<tooltip>Format: "o", "e", "oe" or "eo"; default value: no keep, return files to submission host.</tooltip>
+
  <choice>,o,e,oe,eo</choice>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Mail_Points" name="Mail_Points" type="choice">
+
<description>Identifies at which state changes the server will send mail about the job.</description>
+
<tooltip>Format: string made up of the letters 'a' for abort, 'b' for beginning, and default value: 'a', send on job abort.
+
</tooltip>
+
<choice>,a,b</choice>
+
            <default>a</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Mail_Users" name="Mail_Users" type="string">
+
<description>The set of users to whom mail may be sent when the job makes certain state changes.</description>
+
<tooltip>Format: "user@host[,user@host]"; default value: job owner only.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Output_Path" name="Output_Path" type="string">
+
<description>The final path name for the file containing the job's standard output stream.</description>
+
<tooltip>Format: "[hostname:]pathname". If the option is not specified, the default file name for the standard error stream will be
+
used. The default name has the following form: job_name.oSeq_num where job_name is the name of the job, see -N option, and Seq_num
+
is the job number assigned when the job is submitted; default value: (job_name).o(job_number).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Priority" name="Priority" type="string">
+
<description>The job scheduling priority assigned by the user.</description>
+
<tooltip>Format: "[+|-]nnnnn"; default value: undefined.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Rerunnable" name="Rerunnable" type="choice">
+
<description>The rerunnable flag assigned by the user.</description>
+
<tooltip>Format: "y" or "n", see Join_Path; default value: y, job is rerunable.</tooltip>
+
            <choice>,n,y</choice>
+
            <default>y</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.arch" name="Resource_List.arch" type="string">
+
<description>Specifies the administrator defined system architecture requried.</description>
+
<tooltip>This defaults to whatever the PBS_MACH string is set to in "local.mk". Units: string.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.cput" name="Resource_List.cput" type="string">
+
<description>Maximum amount of CPU time used by all processes in the job.</description>
+
<tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.file" name="Resource_List.file" type="string">
+
<description>The largest size of any single file that may be created by the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.host" name="Resource_List.host" type="string">
+
<description>Name of host on which job should be run.</description>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.mem" name="Resource_List.mem" type="string">
+
<description>Maximum amount of memory used by all concurrent processes in the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.nice" name="Resource_List.nice" type="integer" min="0" max="10">
+
<description>The nice value under which the job is to be run.</description>
+
<tooltip>0 to 10.</tooltip>
+
<default>0</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.nodes" name="Resource_List.nodes" basic="true" type="string">
+
<description>Number and/or type of nodes to be reserved for exclusive use by the job.</description>
+
<tooltip>The value is one or more node_specs joined with the '+' character, "node_spec[+node_spec...]. Each node_spec is a number
+
of
+
nodes required of the type declared in the node_spec and a name or one or more properity or properities desired for the nodes.
+
The
+
number, the name, and each properity in the node_spec are separated by a colon ':'. If no number is specified, one (1) is
+
assumed.
+
Units: string. The name of a node is its hostname. The properties of nodes are: ppn=# requested; defaults to 1; or an
+
arbitrary
+
string defined by system administrator. Example: To ask for 2 processors on each of two blue nodes and three processors
+
on one red
+
node: -l nodes=2:blue:ppn=2+red:ppn=3.
+
</tooltip>
+
<default>1</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.ompthreads" name="Resource_List.ompthreads" type="integer" min="1">
+
<description>Number of threads per processor for Open MP jobs.</description>
+
<default>1</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.pcput" name="Resource_List.pcput" type="string">
+
<description>Maximum amount of CPU time used by any single process in the job.</description>
+
<tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.pmem" name="Resource_List.pmem" type="string">
+
<description>Maximum amount of physical memory (workingset) used by any single process of the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.pvmem" name="Resource_List.pvmem" type="string">
+
<description>Maximum amount of virtual memory used by any single process in the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.vmem" name="Resource_List.vmem" type="string">
+
<description>Maximum amount of virtual memory used by all concurrent processes in the job.</description>
+
<tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw
+
(kilo), mb/mw (mega), gb/bw (giga).
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Resource_List.walltime" name="Resource_List.walltime" basic="true" type="string">
+
<description>Maximum amount of real time during which the job can be in the running state.</description>
+
<tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip>
+
  <default>00:30:00</default>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Shell_Path_List" name="Shell_Path_List" type="string">
+
<description>A set of absolute paths of the program to process the job's script file.</description>
+
<tooltip>Format: path[@host][,path[@host]...]. If this is null, then the user's login shell on the host of execution will be used.
+
Default value: null, login shell.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_stagein" name="stagein" type="string">
+
<description>The list of files to be staged in prior to job execution.</description>
+
<tooltip>Format: local_path@remote_host:remote_path.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_stageout" name="stageout" type="string">
+
<description>The list of files to be staged out after job execution.</description>
+
<tooltip>Format: local_path@remote_host:remote_path.</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_User_List" name="User_List" type="string">
+
<description>The list of user@hosts which determines the user name under which the job is run on a given host.</description>
+
<tooltip>When a job is to be placed into execution, the server will select a user name from the list according to the following
+
ordered set of rules: 1) Select the user name from the list for which the associated host name matches the name of the execution
+
host; 2) Select the user name which has no associated host name, the wild card name; 3) Use the Job_Owner as the user name.
+
Default
+
value: job owner name.
+
</tooltip>
+
</job-attribute>
+
<job-attribute id="PBSJOB_Variable_List" name="Variable_List" type="string">
+
<description>This is the list of environment variables passed with the Queue Job batch request.</description>
+
</job-attribute>
+
</attribute-definitions>
+
<launch-tab advancedModeEnabled="true">
+
<tab-controller>
+
<title>Standard</title>
+
<group>
+
<grid-layout numColumns="2"/>
+
<title>Script Configuration</title>
+
<widget type="selectAttributes">
+
<tooltip>Choose the attributes to display in the Detailed Tab.</tooltip>
+
</widget>
+
<widget type="showScript" readOnly="true">
+
<tooltip>Show the batch script as it would currently be submitted.</tooltip>
+
</widget>
+
</group>
+
<tab-folder>
+
<title>Job Settings</title>
+
<tab-item>
+
<title>Basic</title>
+
<group>
+
<grid-layout numColumns="3"/>
+
<!-- row 1 -->
+
<widget type="text">
+
<label>Job Name: </label>
+
<tooltip>${rm:Job_Name#tooltip}</tooltip>
+
<content>
+
<arglist>
+
<arg>${rm:Job_Name#value}</arg>
+
</arglist>
+
</content>
+
<saveValueTo>Job_Name</saveValueTo>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>${rm:Job_Name#description}</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 2 -->
+
<widget type="combo" readOnly="true">
+
<label>Queue: </label>
+
<tooltip>${rm:destination#tooltip}</tooltip>
+
<content>
+
<arglist>
+
<arg>${rm:available_queues}</arg>
+
</arglist>
+
</content>
+
<saveValueTo>destination</saveValueTo>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>${rm:destination#description}</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 3 -->
+
<widget type="text">
+
<label>Nodes: </label>
+
<tooltip>${rm:Resource_List.nodes#tooltip}</tooltip>
+
<content>
+
<arglist>
+
<arg>${rm:Resource_List.nodes#value}</arg>
+
</arglist>
+
</content>
+
<saveValueTo>Resource_List.nodes</saveValueTo>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>${rm:Resource_List.nodes#description}</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 4 -->
+
<widget type="text">
+
<label>Wallclock Time</label>
+
<tooltip>${rm:Resource_List.walltime#tooltip}</tooltip>
+
<content>
+
<arglist>
+
<arg>${rm:Resource_List.walltime#value}</arg>
+
</arglist>
+
</content>
+
<saveValueTo>Resource_List.walltime</saveValueTo>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>${rm:Resource_List.walltime#description}</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 5 -->
+
<widget type="combo" readOnly="true">
+
<label>MPI Command: </label>
+
<content>
+
<arglist>
+
<arg>mpiCommand</arg>
+
</arglist>
+
</content>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>MPI executable to use</arg>
+
</arglist>
+
</content>
+
</widget>
+
<!-- row 6 -->
+
<widget type="spinner" readOnly="true">
+
<label>MPI Number of Cores: </label>
+
<content>
+
<arglist>
+
<arg>mpiCores</arg>
+
</arglist>
+
</content>
+
</widget>
+
<widget type="label">
+
<content>
+
<arglist>
+
<arg>The number following "-np" on the command line</arg>
+
</arglist>
+
</content>
+
</widget>
+
</group>
+
</tab-item>
+
<tab-item>
+
<title>Detailed</title>
+
<group dynamic="true" scrollable="true">
+
<grid-layout numColumns="3"/>
+
<!-- iterates through all registered attributes, one to a row -->
+
<all-attributes>
+
<include sort="true" headers="true" name="true" tooltip="true" description="true"/>
+
</all-attributes>
+
</group>
+
</tab-item>
+
</tab-folder>
+
</tab-controller>
+
</launch-tab>
+
</control>
+
<monitor>
+
</monitor>
+
</resource-manager-data>
+
</source>
+

Revision as of 17:39, 28 February 2011

Resource Manager XSD

The following is a draft of the proposed Resource Manager XML Schema (XSD). It has been annotated internally where I felt some explanation necessary.

Note that I have not attempted to figure out yet what the monitoring part will look like or what the control and monitoring sections may need to interact; it may also be the case that some things inside the control node should come up a level.

Revised version 1 (17/01/2011):

Revised version 2 (19/01/2011): I have adjusted the schema to accommodate the points raised by our discussions on ptp-dev. More tomorrow, I'm sure. -alr

Revised version 3 (23/01/2011): A few more changes I discovered needed to be made as I work through the XML instance for PBS. -alr

Revised version 4 (24/01/2011): Numerous tweaks. I have added a few specialized widgets and groups involving job attributes whose construction is standardized; this is for economy of expression more than anything else. -alr

Revised version 5 (25/01/2011): Changed how to specify the management of files as per discussion. -alr

Revised version 6 (27/01/2011): Added browse enumeration types; switched script commands to arglists; other minor corrections. -alr

Revised version 7 (09/02/2011): Modified UI elements to expose more granularity (grid-layout, grid-data); corrected PBS xml. -alr

Revised version 8 (22/02/2011): Added 'set' element to parser to take care of injection on JobAttributes; added value to Property. -alr

Revised version 9 (27/02/2011): Numerous structural changes. -alr

Revised version 10 (27/02/2011): More structural changes. Because the page content was becoming long, I've taken down the XSD; it can be examined in the data directory of the org.eclipse.ptp.rm.jaxb.core plugin, along with the example PBS xml. -alr

Back to the top