|
MDS Resource Specification Language (MRSL)
This document is divided into the following sections:
What is MRSL [top]
The MDS Resource Specification Language(MRSL) is a simple structured language
defined within the Grid Searcher. It provides a common interchange language to
describe a Grid application's resource requirements.
The resource requirement is represented by a MRSL string and passed as an
input to the Grid Searcher. The Grid Searcher first separates the MRSL string
into a set of <attribute, relational operator, value>
components, which are concatenated by the concatenate
operators; then it translates each component into a MDS-recognizable
searching filter.
MRSL Syntax [top]
The syntax of MRSL is very simple. Below is the syntax expressed through the
regular grammar:
Q -> R
R -> R1 COP
R2
R -> A ROP value
COP -> || | &&
ROP -> >|>=|
<|<=|=|!=|.eq.|.neq.|.weq.|.wneq.
A -> grid attributes
The primary component of the MRSL syntax is the relation, represented
by R in the above regular grammar. Each relation associates an attribute name
with a value, using the relational operator(ROP) to describe the
relationship between them. The attribute stands for a piece of Grid resource,
and it could be either the cpu time or hostname, etc. For naming convenience,
the Grid Searcher uses the grid attributes defined in the MDS schema directly.
That is, each attribute name appearing in a relation should be identical to an
existing MDS schema attribute name. The MDS Resources
page provides the the schemas used in both the MDS 2alpha1 version and MDS 2.1
version. We also lists by version categories those Grid Attributes used in the
Grid Searcher in the following Grid Attributes
section.
The Grid Searcher uses ten relational operators for relations,
they are:
| greater than |
> |
| greater than or equal |
>= |
| less than |
<= |
| less than or equal |
<= |
| equal |
= |
| not equal |
!= |
| regular expression equal |
.eq. |
| regular expression not equal |
.neq. |
| regular expression equal with wildcard
support |
.weq. |
| regular expression not equal with wildcard
support |
.wneq. |
The last four relational operators provide the full support for
the standard regular expression features; the ".weq." and ".wneq"
also support the wildcard feature. For example, the relation "hn .eq. c*sched.mcs.anl.gov"
will ask for the all the hostname resources that begin with zero or more
"c" followed by "sched.mcs.anl.gov". Another example "Mds-Host-hn
.weq. *edu*" will require all the host names with a "edu" in the
name. The difference between ".eq." and ".weq." is in the
former case the "*" matches the null string or any number of
repetitions of the preceding expression while in the latter case the
"*" is interpreted as ".*", which matches any string
(including null string).
To learn more regular expression syntax and usage, please visit
the GNU Regexp web page.
The member relations of a MRSL string are linked with each other
by the concatenation operator (COP). Two COP values are provided and used
in the Grid Searcher:
| the And Operator |
&& |
| The OR Operator |
|| |
The function and usage of the concatenation operators will be discussed in the Example section.
Grid Attributes [top]
The grid attributes defined in the syntax regular grammar come from the
attributes set of MDS schema. The Grid Searcher support both the version 2alpha1
schema and version 2.1 schema and each version of schema contains a different
set of attributes (with different names, meanings, etc). The following table
listed by version the attributes used within the Grid Searcher and their short
descriptions. You can learn more details in the Globus MDS schema web pages.
| MDS Version |
Attribute |
Description |
| V2alpha1 |
dn |
|
| maxcputime |
|
| schedulerspecific |
|
| lastupdate |
|
| maxjobsinqueue |
|
| dispatchtype |
|
| maxcount |
|
| maxsinglememory |
|
| whenactive |
|
| ttl |
|
| maxtotalmemory |
|
| freenodes |
|
| maxtime |
|
| queue |
|
| status |
|
| alloweduserlist |
|
| maxrunningjobs |
|
| priority |
|
| jobwait |
|
| totalnodes |
|
| V2.1 |
dn |
|
| Mds-Computer-isa |
|
| Mds-Computer-platform |
|
| Mds-Computer-Total-nodeCount |
|
| Mds-Cpu-Cache-l2kB |
|
| Mds-Cpu-Free-15minX100 |
|
| Mds-Cpu-Free-1minX100 |
|
| Mds-Cpu-Free-5minX100 |
|
| Mds-Cpu-model |
|
| Mds-Cpu-Smp-size |
|
| Mds-Cpu-speedMHz |
|
| Mds-Cpu-Total-count |
|
| Mds-Cpu-Total-Free-15minX100 |
|
| Mds-Cpu-Total-Free-1minX100 |
|
| Mds-Cpu-Total-Free-5minX100 |
|
| Mds-Fs-freeMB |
|
| Mds-Fs-sizeMB |
|
| Mds-Fs-Total-freeMB |
|
| Mds-Fs-Total-sizeMB |
|
| Mds-Host-hn |
|
| Mds-Memory-Ram-freeMB | |
| Mds-Memory-Ram-sizeMB | |
| Mds-Memory-Ram-Total-freeMB | |
| Mds-Memory-Ram-Total-sizeMB | |
| Mds-Memory-Vm-freeMB | |
| Mds-Memory-Vm-sizeMB | |
| Mds-Memory-Vm-Total-freeMB | |
| Mds-Memory-Vm-Total-sizeMB | |
| Mds-Os-name | |
| Mds-Os-release | |
MRSL Examples [top]
| Example 1 |
Resource Requirement: to find all the
linux hosts with hostname in edu domain and the cpu load average in the
last five minutes less than 0.5. |
MRSL string: hn .weq. *edu*
&& ostype = linux && cpuload5 < 0.5 |
| |
Example 2
|
Resource Requirement: to find all the hosts with hostname in edu domain and the cpu load average in the
last five minutes less than 0.5 or all the host in the gov domain and the
fpu type is a kind of Pentium III. |
MRSL string: hn .weq. *edu*
&& cpuload5 < 0.5 || hn .weq. *gov* && fputype .weq. *Pentium III* |
Example 1
|
Resource Requirement: to find all the hosts
from thammada virtual organization and having more than 2 cpus installed
on each server |
MRSL string: dn .weq. *Mds-Vo-name=thammada,o=grid
&& Mds-Cpu-Total-count >= 2 |
| |
Example 2
|
Resource Requirement: to find all the hosts
each of which either has a free RAM memory greater than 300 or has a IP
address beginning with 160.91.76 |
MRSL string: Mds-Memory-Ram-freeMB
> 300 || Mds-Net-netaddr .weq. 160.91.76* |
|