The Extended Resource Specification Language (XRSL) is an
XML based language that was specially designed in PSNC to describe computational
jobs within the PROGRESS project. Although its name could suggest it, its syntax
does not have anything in common with the syntax of the Globus RSL (Resource
Specification Language). The XRSL is rather an XML based counterpart of the
RSL.
This language was designed to describe PROGRESS computational jobs in a form
understood by the PROGRESS grid broker. The broker parses the XRSL description
of a job, prepares its RSL description and submits the job to the grid. But
it is not just a simple format conversion. PROGRESS jobs can consist of many
computational tasks executed sequentially or in parallel. Therefore the conventional
RSL is not satisfactory. The XRSL can also be easily extended in
the future to keep pace with the evolution of the PROGRESS project. Moreover,
parsing XML based files is not a demanding task and there already exist libraries
that simplify this process to a large extent.
A list of tags of the XRSL language and their attributes is presented in Table
1.
XRSL tag name |
Tag description |
<job id=""> | Starts job description. Must contain exactly one
<user> tag and exactly one <task>,
<sequence> or <parallel>
tag.
id - unique job identifier |
<user DN=""/> | Identifies the user submitting the job.
DN - Distinguished Name of the user who submitted
the job |
<task id=""> | Describes the application to be run in the grid,
together with all its arguments and parameters. Must contain exactly one
<executable> tag and can
contain one <resources>
tag
id - unique task identifier |
<sequence id=""> | Describes sequence of applications to execute. Must
contain at least one <task> or
<parallel> tag
id - unique sequence identifier |
<parallel id=""> | Describes applications that should be run in parallel.
Must contain at least one <task>
or <sequence> tag
id - unique parallel identifier |
<executable dmsid="" name="" type="" count=""> | Describes the application to be run. Must have either
the id or name attribute and the type attribute. Can contain one <arguments>
tag and one <environment>
tag .
dmsid - identifier of a file in
the DMS which contains |
<arguments> | |
<value> | Value of an application argument. Contains value
of the argument as a string. |
<file dmsid="" url="" type=""> | Describes an application file argument. Must contain a file name (if the name of the file must be included in the command executing the application). Must have the id or url attribute. dmsid - file identifier in the
DMS |
<environment> | Starts the section devoted to stdin, stdout and stderr
of application and environment variables used by application. Can contain
exactly one <stdin>, <stdout>
and <stderr> tag and unlimited
number of <variable> tags. |
<stdin url="" dmsid="" /> | Describes a file used as the application stdin. Must
have either the id or url attribute.
url - URL if file in the DMS |
<stdout url="" dmsid="" /> | Describes a file used as the application stdout.
Must have either the id or url attribute.
url - URL if file in the DMS |
<stderr url="" dmsid="" /> | Describes a file used as the application stderr.
Must have either the id or url attribute.
url - URL if file in the DMS |
<variable name=""> | Describes an environment variable used by
the application. Must contain value of the variable. name - variable name |
<resources> | Starts the section devoted to resources required
by the task. Must contain at least one <resource>
tag. |
<resource type="" value="" > | Describes a resource required by the task. For more
information about types of resources, their values and units (if any)
see Table 2.
type - type of resource (memory,
hostname, ostype, osname,
osversion, osrelease, cpuspeed,
cpucount, dryrun, maxtime,
maxwalltime, maxcputime) |
Table 1: Tags of XRSL language
Table 2: Available resources
Example 1 presents a description of job 7565 submitted
by the user with the distinguished name uid=scdemo,ou=People,o=psnc.pl,o=progress.
It consists of only one single task 7966. This task uses a mpi application stored
in the DMS in a file with the identifier of 700.
The application execution has five arguments. Arguments ex and eb are switches,
which are switched on. Arguments mo and ti have values of 10 and 600 respectively.
The application also requires one input file called seqs2assembl, stored in
the DMS in a file with the identifier of 648.
The standard output and standard error are redirected to files. The stdout will
be sent to file and copied to the DMS to a file with the identifier of 1061.
The stderr will also be sent to file and copied to the DMS to a file with the
identifier of 1062.
This application does not require any environment variables. Task 7966 has two
required resources specified - hostname and cpucount. Therefore, the application
connected with this task will be executed on the host bellis-a.man.poznan.pl
and use 4 CPU units.
<job
id="7965">
<user dn="uid=scdemo,ou=People,o=psnc.pl,o=progress"/>
<task id="7966">
<executable dmsid="700"
type="mpi" count="1">
<arguments>
<value>ex</value>
<value>mo10</value>
<value>eb</value>
<value>ti600</value>
<file
dmsid="648" type="in">seqs2assembl</file>
</arguments>
<environment>
<stderr
dmsid="1061"/>
<stdout
dmsid="1062"/>
</environment>
</executable>
<resources>
<resource
type="hostname" value="bellis-a.man.poznan.pl"/>
<resource
type="cpucount" value="4"/>
<resources/>
</task>
</job>
Example 1: Example of a job description in XRSL
To learn more about the XRSL language please contact Juliusz
Pukacki or Małgorzata Wolniewicz.