Home Sign Guestbook View Guestbook
Information
What is Grid Searcher?
Architecture
Tutorial
Download
Online Version
Documentation
History
Links
People
Exits
Java
XML
GNU Regexp
Cog
MDS

Grid Searcher Project

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]

  • MDS V2alpha1 Examples
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*
  • MDS V2.1 Examples
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*


Feedback and questions concerning this site should be directed to hai@cs.uchicago.edu or sign my guestbook
Last updated: Fri Mar 15 2002