This information is for a release that is no longer supported by the Globus Toolkit. The currently supported versions of the Globus Toolkit are 4.2 (recommended) and 4.0.

WS GRAM: Developer's Guide

Overview
GRAM slides [ html ] [ pdf ]
API
Architecture
Fault Tolerance Architecture
>RSL Schema
MJS Fault Types
Samples
Scheduler tutorial
Troubleshooting

Managed Job Service - Resource Specification Language (RSL)

Contents:

top

Schema Document Properties

Target Namespace http://www.globus.org/namespaces/2004/02/rsl/gram
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.
Schema Composition
  • This schema imports schema(s) from the following namespace(s):
    • http://www.globus.org/namespaces/2004/02/rsl (at rsl.xsd)
    • http://www.globus.org/namespaces/2004/02/rsl/enum (at rsl_enum.xsd)

Declared Namespaces

Prefix Namespace
Default namespace http://www.globus.org/namespaces/2004/02/rsl/gram
xsd http://www.w3.org/2001/XMLSchema
rsl http://www.globus.org/namespaces/2004/02/rsl
enum http://www.globus.org/namespaces/2004/02/rsl/enum
gram http://www.globus.org/namespaces/2004/02/rsl/gram
xml http://www.w3.org/XML/1998/namespace
Schema Component Representation
<xsd:schema targetNamespace="http://www.globus.org/namespaces/2004/02/rsl/gram" elementFormDefault="qualified">
<xsd:import namespace="http://www.globus.org/namespaces/2004/02/rsl" schemaLocation="rsl.xsd"/>
<xsd:import namespace="http://www.globus.org/namespaces/2004/02/rsl/enum" schemaLocation="rsl_enum.xsd"/>
...
</xsd:schema>
top

Global Declarations

Element: arguments

Name arguments
Type rsl:stringArrayType
Nillable no
Abstract no
Documentation The command line arguments for the executable. Use quotes, if a space is required in a single argument.
XML Instance Representation
<gram:arguments>
<rsl:stringArray> rsl:stringArrayElementType </rsl:stringArray> [1]
</gram:arguments>
Schema Component Representation
<xsd:element name="arguments" type="rsl:stringArrayType"/>
top

Element: count

Name count
Type rsl:integerType
Nillable no
Abstract no
Documentation The number of executions of the executable. Default: 1
XML Instance Representation
<gram:count>
<rsl:integer> rsl:integerElementType </rsl:integer> [1]
</gram:count>
Schema Component Representation
<xsd:element name="count" type="rsl:integerType"/>
top

Element: directory

Name directory
Type rsl:pathType
Nillable no
Abstract no
Documentation Specifies the path of the directory the jobmanager will use as the default directory for the requested job.
XML Instance Representation
<gram:directory>
<rsl:path> rsl:stringElementType </rsl:path> [1]
</gram:directory>
Schema Component Representation
<xsd:element name="directory" type="rsl:pathType"/>
top

Element: dryRun

Name dryRun
Type rsl:booleanType
Nillable no
Abstract no
Documentation * unimplemented * If dryrun = yes then the jobmanager will not submit the job for execution and will return success.
XML Instance Representation
<gram:dryRun>
<rsl:boolean> rsl:booleanElementType </rsl:boolean> [1]
</gram:dryRun>
Schema Component Representation
<xsd:element name="dryRun" type="rsl:booleanType"/>
top

Element: environment

Name environment
Type rsl:hashtableType
Nillable no
Abstract no
Documentation The environment variables that will be defined for the executable in addition to default set that is given to the job by the jobmanager.
XML Instance Representation
<gram:environment>
<rsl:hashtable> rsl:hashtableElementType </rsl:hashtable> [1]
</gram:environment>
Schema Component Representation
<xsd:element name="environment" type="rsl:hashtableType"/>
top

Element: executable

Name executable
Type rsl:pathType
Nillable no
Abstract no
Documentation The name of the executable file to run on the remote machine. If the value is a GASS URL, the file is transferred to the remote gass cache before executing the job and removed after the job has terminated.
XML Instance Representation
<gram:executable>
<rsl:path> rsl:stringElementType </rsl:path> [1]
</gram:executable>
Schema Component Representation
<xsd:element name="executable" type="rsl:pathType"/>
top

Element: fileCleanUp

Name fileCleanUp
Type rsl:pathArrayType
Nillable no
Abstract no
Documentation Specifies a list of files which will be removed after the job is completed.
XML Instance Representation
<gram:fileCleanUp>
<rsl:pathArray> rsl:pathArrayElementType </rsl:pathArray> [1]
</gram:fileCleanUp>
Schema Component Representation
<xsd:element name="fileCleanUp" type="rsl:pathArrayType"/>
top

Element: fileStageIn

Name fileStageIn
Type rsl:fileInputArrayType
Nillable no
Abstract no
Documentation Specifies a list of ("remote URL" "local file") pairs which indicate files to be staged to the nodes which will run the job.
XML Instance Representation
<gram:fileStageIn>
<rsl:fileInputArray> rsl:fileInputArrayElementType </rsl:fileInputArray> [1]
</gram:fileStageIn>
Schema Component Representation
<xsd:element name="fileStageIn" type="rsl:fileInputArrayType"/>
top

Element: fileStageInShared

Name fileStageInShared
Type rsl:fileInputArrayType
Nillable no
Abstract no
Documentation Specifies a list of ("remote URL" "local file") pairs which indicate files to be staged into the cache. A symlink from the cache to the "local file" path will be made.
XML Instance Representation
<gram:fileStageInShared>
<rsl:fileInputArray> rsl:fileInputArrayElementType </rsl:fileInputArray> [1]
</gram:fileStageInShared>
Schema Component Representation
<xsd:element name="fileStageInShared" type="rsl:fileInputArrayType"/>
top

Element: fileStageOut

Name fileStageOut
Type rsl:fileOutputArrayType
Nillable no
Abstract no
Documentation Specifies a list of ("local file" "remote URL") pairs which indicate files to be staged from the job to a GASS-compatible file server.
XML Instance Representation
<gram:fileStageOut>
<rsl:fileOutputArray> rsl:fileOutputArrayElementType </rsl:fileOutputArray> [1]
</gram:fileStageOut>
Schema Component Representation
<xsd:element name="fileStageOut" type="rsl:fileOutputArrayType"/>
top

Element: gassCache

Name gassCache
Type rsl:pathType
Nillable no
Abstract no
Documentation Specifies location to override the GASS cache location.
XML Instance Representation
<gram:gassCache>
<rsl:path> rsl:stringElementType </rsl:path> [1]
</gram:gassCache>
Schema Component Representation
<xsd:element name="gassCache" type="rsl:pathType"/>
top

Element: gramMyJobType

Name gramMyJobType
Type enum:gramMyJobEnumerationType
Nillable no
Abstract no
Documentation

* unimplemented * This specifies how the gram myjob interface will behave in the started processes.

Possible values are independent (Even if the count > 1, only start 1 process or thread), or collective (gram_myjob_count() will return count for each of the processes. gram_myjob_rank() will return a unique value between 0 and count-1 for each of the processes.)

XML Instance Representation
<gram:gramMyJobType>
<enum:enumeration> enum:gramMyJobEnumerationElementType </enum:enumeration> [1]
</gram:gramMyJobType>
Schema Component Representation
<xsd:element name="gramMyJobType" type="enum:gramMyJobEnumerationType"/>
top

Element: hostCount

Name hostCount
Type rsl:integerType
Nillable no
Abstract no
Documentation Only applies to clusters of SMP computers, such as newer IBM SP systems. Defines the number of nodes pizza boxes") to distribute the "count" processes across.
XML Instance Representation
<gram:hostCount>
<rsl:integer> rsl:integerElementType </rsl:integer> [1]
</gram:hostCount>
Schema Component Representation
<xsd:element name="hostCount" type="rsl:integerType"/>
top

Element: job

  • This element can be used wherever the following element is referenced:
Name job
Type gram:jobAndAnyType
Nillable no
Abstract no
XML Instance Representation
<gram:job
id="xsd:string [0..1]"
ref="xsd:string [0..1]">
<gram:directory> ... </gram:directory> [0..1]
<gram:arguments> ... </gram:arguments> [0..1]
<gram:stdin> ... </gram:stdin> [0..1]
<gram:stdout> ... </gram:stdout> [0..1]
<gram:stderr> ... </gram:stderr> [0..1]
<gram:count> ... </gram:count> [0..1]
<gram:hostCount> ... </gram:hostCount> [0..1]
<gram:project> ... </gram:project> [0..1]
<gram:queue> ... </gram:queue> [0..1]
<gram:maxTime> ... </gram:maxTime> [0..1]
<gram:maxCpuTime> ... </gram:maxCpuTime> [0..1]
<gram:maxMemory> ... </gram:maxMemory> [0..1]
<gram:minMemory> ... </gram:minMemory> [0..1]
<gram:jobType> ... </gram:jobType> [0..1]
<gram:gassCache> ... </gram:gassCache> [0..1]
<gram:scratchDir> ... </gram:scratchDir> [0..1]
<gram:dryRun> ... </gram:dryRun> [0..1]
Allow any elements from a namespace other than this schema's namespace (lax validation). [0..*]
</gram:job>
Schema Component Representation
<xsd:element name="job" type="gram:jobAndAnyType" substitutionGroup="rsl:content"/>
top

Element: jobType

Name jobType
Type enum:jobRunEnumerationType
Nillable no
Abstract no
Documentation This specifies how the jobmanager should start the job.
XML Instance Representation
<gram:jobType>
<enum:enumeration> enum:jobRunEnumerationElementType </enum:enumeration> [1]
</gram:jobType>
Schema Component Representation
<xsd:element name="jobType" type="enum:jobRunEnumerationType"/>
top

Element: libraryPath

Name libraryPath
Type rsl:pathArrayType
Nillable no
Abstract no
Documentation Specifies a list of paths to be appended to the system-specific library path environment variables.
XML Instance Representation
<gram:libraryPath>
<rsl:pathArray> rsl:pathArrayElementType </rsl:pathArray> [1]
</gram:libraryPath>
Schema Component Representation
<xsd:element name="libraryPath" type="rsl:pathArrayType"/>
top

Element: maxCpuTime

Name maxCpuTime
Type rsl:longType
Nillable no
Abstract no
Documentation Explicitly set the maximum cputime for a single execution of the executable. The units is in minutes. The value will go through an atoi() conversion in order to get an integer. If the GRAM scheduler cannot set cputime, then an error will be returned.
XML Instance Representation
<gram:maxCpuTime>
<rsl:long> rsl:longElementType </rsl:long> [1]
</gram:maxCpuTime>
Schema Component Representation
<xsd:element name="maxCpuTime" type="rsl:longType"/>
top

Element: maxMemory

Name maxMemory
Type rsl:integerType
Nillable no
Abstract no
Documentation Explicitly set the maximum amount of memory for a single execution of the executable. The units is in Megabytes. The value will go through an atoi() conversion in order to get an integer. If the GRAM scheduler cannot set maxMemory, then an error will be returned.
XML Instance Representation
<gram:maxMemory>
<rsl:integer> rsl:integerElementType </rsl:integer> [1]
</gram:maxMemory>
Schema Component Representation
<xsd:element name="maxMemory" type="rsl:integerType"/>
top

Element: maxTime

Name maxTime
Type rsl:longType
Nillable no
Abstract no
Documentation The maximum walltime or cputime for a single execution of the executable. Walltime or cputime is selected by the GRAM scheduler being interfaced. The units is in minutes. The value will go through an atoi() conversion in order to get an integer.
XML Instance Representation
<gram:maxTime>
<rsl:long> rsl:longElementType </rsl:long> [1]
</gram:maxTime>
Schema Component Representation
<xsd:element name="maxTime" type="rsl:longType"/>
top

Element: maxWallTime

Name maxWallTime
Type rsl:longType
Nillable no
Abstract no
Documentation Explicitly set the maximum walltime for a single execution of the executable. The units is in minutes. The value will go through an atoi() conversion in order to get an integer. If the GRAM scheduler cannot set walltime, then an error will be returned.
XML Instance Representation
<gram:maxWallTime>
<rsl:long> rsl:longElementType </rsl:long> [1]
</gram:maxWallTime>
Schema Component Representation
<xsd:element name="maxWallTime" type="rsl:longType"/>
top

Element: minMemory

Name minMemory
Type rsl:integerType
Nillable no
Abstract no
Documentation Explicitly set the minimum amount of memory for a single execution of the executable. The units is in Megabytes. The value will go through an atoi() conversion in order to get an integer. If the GRAM scheduler cannot set minMemory, then an error will be returned.
XML Instance Representation
<gram:minMemory>
<rsl:integer> rsl:integerElementType </rsl:integer> [1]
</gram:minMemory>
Schema Component Representation
<xsd:element name="minMemory" type="rsl:integerType"/>
top

Element: project

Name project
Type rsl:stringType
Nillable no
Abstract no
Documentation Target the job to be allocated to a project account as defined by the scheduler at the defined (remote) resource.
XML Instance Representation
<gram:project>
<rsl:string> rsl:stringElementType </rsl:string> [1]
</gram:project>
Schema Component Representation
<xsd:element name="project" type="rsl:stringType"/>
top

Element: queue

Name queue
Type rsl:stringType
Nillable no
Abstract no
Documentation Target the job to a queue (class) name as defined by the scheduler at the defined (remote) resource.
XML Instance Representation
<gram:queue>
<rsl:string> rsl:stringElementType </rsl:string> [1]
</gram:queue>
Schema Component Representation
<xsd:element name="queue" type="rsl:stringType"/>