You are here: Appendices > Appendix S: Scalable Systems Software Specification > Node Object Specification
|
|
Scalable Systems Software Node Object Specification |
SSS Node Object Specification
Release Version 3.1.0
26 April 2011
Scott Jackson, PNNL
David Jackson, Ames Lab
Brett Bode, Ames Lab
This is a specification of the node object to be used by Scalable Systems Software compliant components. It is envisioned for this specification to be used in conjunction with the SSSRMAP protocol with the node object passed in the Data field of Requests and Responses. Queries can be issued to a node-cognizant component in the form of modified XPATH expressions to the Get field to extract specific information from the node object as described in the SSSRMAP protocol.
This document describes the syntax and structure of the SSS node object. This node model takes into account various node property categories such as whether it represents a configured, available or utilized property.
This specification proposes a standard XML representation for a node object for use by the various components in the SSS Resource Management System. This object will be used in multiple contexts and by multiple components. It is anticipated that this object will be passed via the Data Element of SSSRMAP Requests and Responses.
There are several goals motivating the design of this representation.
It needs to be inherently flexible. We recognize we will not be able to exhaustively include the ever-changing node properties and capabilities that constantly arise.
The same node object should be used at all stages of its lifecycle. This object needs to distinguish between configured, available and utilized properties of a node.
Its design takes into account the properties and structure required to function in a meta or grid environment. It should eventually include the capability of resolving namespace and locality issues, though the earliest versions will ignore this requirement.
One should not have to make multiple queries to obtain a single piece of information -- i.e. there should not be two mutually exclusive ways to represent a node resource.
Needs to support resource metric as well as unit specifications.
This example shows a simple expression of the Node object.
<Node> <Id>Node64</Id> <Configured> <Processors>2</Processors> <Memory>512</Memory> </Configured> </Node>
This example shows a more elaborate Node object.
<Node> <Id>64</Id> <Name>Netpipe2</Name> <Feature>BigMem</Feature> <Feature>NetOC12</Feature> <Opsys>AIX</Opsys> <Arch>Power4</Arch> <Configured> <Processors>16</Processors> <Memory units=”MB”>512</Memory> <Swap>512</Swap> </Configured> <Available> <Processors>7</Processors> <Memory metric=”Instantaneous”>143</Memory> </Available> <Utilized> <Processors wallDuration=”3576”>8</Processors> <Memory metric=”Average” wallDuration=”3576”>400</Memory> </Utilized> </Node>
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in RFC2119.
In the property tables, the columns are interpreted to have the following meanings:
Element Name: | Name of the XML element (xsd:element) | ||||||||||||
Type: | Data type defined by xsd (XML Schema Definition) as:
|
||||||||||||
Description: | Brief description of the meaning of the property | ||||||||||||
Appearance: | This column indicates whether the given property has to appear within the parent element. It assumes the following meanings:
|
||||||||||||
Compliance: | The column indicates whether a compliant implementation has to support the given property.
|
||||||||||||
Categories: | Some properties may be categorized into one of several categories. Letters in this column indicate that the given property can be classified in the the following property categories.
|
The cardinality of elements in the element syntax sections may make use of regular expression wildcards with the following meanings:
* | Zero or more occurrences |
+ | One or more occurrences |
? | Zero or one occurrences |
The absence of one of these symbols implies one and only one occurrence.
The primary element within the node model is a node. One can speak of some node properties as being a configured, available or utilized property of the node.
The Node element is the root element of a node object and is used to encapsulate a node.
Uncategorized Node Properties are properties that apply to the node as a whole and do not need to be distinguished between being configured, available or utilized. These include the node id and other optional node properties.
Simple (unstructured) node properties are enumerated in Table 1.
Element Name | Type | Description | Appearance | Compliance |
Id | String | Node identifier | MUST | MUST |
Name |
String | Node name or pattern | MAY | MAY |
OpSys | String | Operating System | MAY | SHOULD |
Arch | String | Architecture | MAY | SHOULD |
Description | String | Description of the node | MAY | MAY |
State | String | State of the node. Valid states may include Offline, Configured, Unknown, Idle, and Busy. | SHOULD | MUST |
Features | String | Arbitrary named features of the node (comma-delimited string) | MAY | SHOULD |
The Extension element provides a means to pass extensible properties with the node object. Some applications may find it easier to deal with a named extension property than discover and handle elements for which they do not understand or anticipate by name.
The following is an example of an Extension element:
<Extension type=”Chemistry” name=”Software”>NWChem</Extension>
Certain node properties (particularly consumable resources) need to be classified as being in a particular category. This is done when it is necessary to distinguish between a property that is configured versus a property that is available or utilized. For example, a node might be configured with 16 processors. At a particular time, 8 might be utilized, 7 might be available and 1 disabled. When a node property must be categorized to be understood properly, the property MUST be enveloped within the appropriate Property Category Element.
A configured node property reflects resources pertaining to the node that could in principle be used though they may not be available at this time. This information could be used to determine if a job could ever conceivably run on a given node.
The following is an example of using Configured Properties:
<Configured> <Processors>16</Processors> <Memory units=”MB”>512</Memory> </Configured>
An available node property refers to a resource that is currently available for use.
The following is an example of specifying available properties:
<Available> <Processors>7</Processors> <Memory units=”MB”>256</Memory> </Available>
A utilized node property reflects resources that are currently utilized.
The following is an example of specifying utilized properties:
<Utilized> <Processors>8</Processors> <Memory metric=”Average”>207</Memory> </Utilized>
Consumable Resources are a special group of node properties that can have additional attributes and can be used in multiple categories. In general a consumable resource is a resource that can be consumed in a measurable quantity.
A list of simple consumable resources is listed in Table 2.
Element Name | Type | Description | Appearance | Compliance | Categories |
Processors | Integer | Number of processors | MAY | MUST | CAU |
Memory | Float | Amount of memory | MAY | SHOULD | CAU |
Disk | Float | Amount of disk | MAY | SHOULD | CAU |
Swap | Float | Amount of virtual memory | MAY | MAY | CAU |
Network | Float | Amount of network | MAY | MAY | CAU |
The following are two examples for specifying a consumable resource:
<Memory metric=”Max” units=”GB”>483</Memory>
<Processors wallDuration=”1234” consumptionRate=”0.63”>4</Processors>
In addition to the consumable resources enumerated in the above table, an extensible consumable resource is defined by the Resource element.
The following are two examples for specifying a Resource element:
<Resource name=”License” type=”MATLAB”>1</Resource>
<Resource name=”Telescope” type=”Zoom2000” wallDuration=”750” metric=”KX”>10</Resource>
When a simple reference to a predefined node is needed in an encapsulating element, a Node element is used with the text content being the node id:
<Node>node1</Node>
The following is an another example of a Node element:
<Node aggregation=”Pattern”>node[1-5]</Node>
Abbreviation | Definition | Quantity |
B | byte | 1 byte |
KB | Kilobyte | 2^10 bytes |
MB | Megabyte | 2^20 bytes |
GB | Gigabyte | 2^30 bytes |
TB | Terabyte | 2^40 bytes |
PB | Petabyte | 2^50 bytes |
EB | Exabyte | 2^60 bytes |
ZB | Aettabyte | 2^70 bytes |
YB | Yottabyte | 2^80 bytes |
NB | Nonabyte | 2^90 bytes |
DB | Doggabyte | 2^100 bytes |
Copyright © 2012 Adaptive Computing Enterprises, Inc.®