MDPlan.xml reference

The MDPlan.xml file is the configuration file for a multidimensional resource plan.

Location

The MDPlan.xml file is generated when a multidimensional scheduling plan is created and is in the $EGO_CONFDIR directory.

Structure

The root element in the MDPlan.xml file is DistributionTree. It owns all the other elements. DistributionTree has these sections:
ResourceGroupName
Indicates the set of resources to which this distribution tree applies.
ConsumableResources
Defines the consumable resources that are used in the plan.
PolicyParameter
Defines a parameter for tuning the behavior of the distribution engine.
SlotMapping
Defines the slots that are to be scheduled for sharing.
Consumer
This element describes a node within the consumer hierarchy or within a distribution tree.

Example

<DistributionTree DistributionTreeName="MD1" RevisionVersion="2">
  <ResourceGroupName>RG1</ResourceGroupName>
  <ResourceGroupName>RG2</ResourceGroupName>
  <ConsumableResources>
  #Set overcommit ratios for MDPlan.xml
    <ConsumableResource OverCommitRatio="2">ncpus<ConsumableResource>
    <ConsumableResource OverCommitRatio="1">mem<ConsumableResource>
  </ConsumableResources>
  <PolicyParameter name="DefaultGracePeriod">300</PolicyParameter>
  <SlotMapping> 
    <ncpus=1>
    <mem=1>
  </SlotMapping>
  <Consumer ConsumerName="ManagementService">
  <SlotMapping> 
    <ncpus=1>
    <mem=1>
  </SlotMapping>	
  <DistributionPolicies>
    <Rank>50</Rank>
    <Sharing priority="5" EnforceSiblingShareReclaim="Y">
      <Shares type="ratio" >1</Shares>
      <Limit type="dimension">
        <ncpus type="absolute">5</ncpus>
        <mem type="absolute">5</mem>
      </Limit>
    </Sharing>
  <OwnershipPolicy>  
  <ResourceGroup name="RG1" PreferenceLevel="1" GetFreeFromNextLevelBeforeReclaim="Y"> 
    <HostSelection type="NumHosts"||"HostList" ResReq="select(!mg) order(mem)">
      <NumHosts type="percentage" | "remaining"| "absolute" >20</NumHosts>
      #NumHost and HostList are exclusive
      <HostList> 
        <Host>host1</Host>
        <Host>host2</Host>
      </HostList>
    </HostSelection>
    <PerHost type="dimension">
      <Dimension>							
        <Resource name="ncpus" type="absolute"| "absolute"| "remaining">5</Resource> 
        <Resource name="maxmem" type="absolute"| "absolute"| "remaining">5</Resource>
      </Dimension>
    </PerHost>
    <Lendout graceperiod="300">
      <Reserve>
        <NumHosts type="percentage">20</NumHosts>
        <PerHost>
          <Dimension>
            <Resource name="ncpus" type="absolute">5</Resource>
            <Resource name="maxmem" type="absolute">5</Resource>
          </Dimension>
        </PerHost>
      </Reserve>
    </Lendout>  				
  </ResourceGroup>
  <ResourceGroup name="RG2"PreferenceLevel="2"GetFreeFromNextLevelBeforeReclaim="N">
    <HostSelection type="NumHosts"||"HostList" ResReq="select(!mg) order(mem)">
      <NumHosts type="percentage" >20</NumHosts>
      #NumHost and HostList are exclusive
      <HostList> 
        <Host>host1</Host>
        <Host>host2</Host>
      </HostList>
    </HostSelection>
    <PerHost type="dimension">
      <Dimension>
        <Resource name="ncpus" type="absolute">5</Resource>
        <Resource name="maxmem" type="absolute">5</Resource>
      </Dimension>
    </PerHost>
    <Lendout graceperiod="300">#optional
      <Reserve>
      <NumHosts type="percentage">20</NumHosts>
      <PerHost>
        <Dimension>
	   <Resource name="ncpus" type="absolute">5</Resource>
	   <Resource name="maxmem" type="absolute">5</Resource>
        </Dimension>
      </PerHost>
      </Reserve>
    </Lendout>
  </ResourceGroup>
  </OwnershipPolicy>
  </DistributionPolicies>
  </Consumer>
</DistributionTree>

DistributionTree element

The root element for a resource distribution tree. The DistributionTree must be named with a DistributionTreeName attribute.

Attribute Description Default
DistributionTreeName Required

String. The name that is associated with a Distribution Tree.

None
RevisionVersion Optional

String. The revision identifier of the MD plan.

None

ResourceGroupName section

The DistributionTree element has at least one ResourceGroupName section to identify the resource group in the multidimensional resource plan. If your plan includes several resource groups, include a ResourceGroupName element for each resource group.

ConsumableResources section

The ConsumableResources section contains the ConsumableResources element. The ConsumableResources element is the parent element to the ConsumableResource element, which identifies the consumable resources.

The ConsumableResources element has no attributes, but is the parent element to the ConsumableResource element.

ConsumableResource attribute

The ConsumableResource element identifies consumer resources. It has one attribute called OverCommitRatio:
Attribute Description Default
OverCommitRatio Optional

Integer or decimal. The overcommit ratio defined for the resource.

1
Remember:
  • A consumable resource must be an unsigned, numeric resource.
  • It is recommended to use static resources.
  • If they are unsigned, numeric resources, all LIM and ELIM resources are available for scheduling.
  • For type=percentag|absolute, all consumers under the same parent must be consistent for each resource group.

PolicyParameter section

The PolicyParameter section contains the PolicyParameter element.

PolicyParameter attributes

This element defines a parameter for tuning the behaviour of the distribution engine.

Attribute Description Default
name Required

String. The name of the parameter that is used to tune the behavior of the distribution engine.

None

SlotMapping section

The SlotMapping section holds the SlotMapping element.

SlotMapping attributes

The SlotMapping element has no elements. It identifies the slots that are to be scheduled for sharing.

Consumer section

The Consumer section describes a node within the consumer hierarchy or within a distribution tree. It is used either to express metadata about a particular node in the consumer hierarchy or to associate a particular set of distribution policies between consumers and resources.

Consumer attributes

Attribute Description Default
ConsumerName Required

String. The name that is assigned to a specific consumer without specifying its place in the distribution tree hierarchy.

None
RevisionVersion Optional

String. The version identifier.

None

SlotMapping attribute

Defines the slots that are to be scheduled for sharing.

DistributionPolicies attributes

Describes the configuration of the EGO distribution policies for a particular consumer in a resource distribution tree.

Attribute Description Default
startTime Optional

String. The time is expressed as follows: hours in 2 digits:minutes in 2 digits. For example, 2:15 PM is 14:15.

None
endTime Optional

String. The time is expressed as follows: hours in 2 digits:minutes in 2 digits. For example, 2:15 PM is 14:15.

None

Rank attributes

Indicates the priority of a consumer relative to other consumers in the resource distribution tree.

Valid values: Integer

SharingPolicy attributes

Constrains which resources a particular consumer can allocate or which resources the consumer owns. If no ResourceGroupName is specified, the UsageLimit applies to all the resources under the control of EGO. If no UsageLimit element is present, the constraint is on which named resources can be part of this consumer's allocations.

The optional attributes startTime and endTime can be used to represent a time frame when this policy is in effect within the configuration. If no time zone is specified in startTime or endTime, the time is considered as local to the vemkd.

Attribute Description Default
Priority Optional

String.

None
EnforceSiblingShareReclaim Optional

Valid values: Y|N

Y
Guarantees that the consumer receives its fairness by reclaim or define.
N
Considers sharing fairness only when free resources can be allocated.
None
startTime Optional

String. The time is expressed as follows: hours in 2 digits:minutes in 2 digits. For example, 2:15 PM is 14:15.

None
endTime Optional

String. The time is expressed as follows: hours in 2 digits:minutes in 2 digits. For example, 2:15 PM is 14:15.

None

Shares attributes

This element represents what share of the resources a consumer receives compared to other consumers with which it is a peer (that is, on the same level of the consumer tree). Among all the peers at one level of the tree, the Shares values represent a ratio of relative priority or a percentage of the resources to be assigned.

Valid values: integer

Attribute Description Default
Type Required

String. Valid value: ratio

ratio
RevisionVersion Optional

String. The version identifier.

None

Limit attributes

Defines the resource dimensions. For example:

<ncpus type="absolute">5</ncpus>
<maxmem type="absolute">5</maxmem>
Attribute Description Default
type Required

String. Specifies that the resource is multidimensional. Valid value: dimension

"dimension"

OwnershipPolicy attributes

Attribute Description Default
PrivatePoolGracePeriod Optional

String. This grace period is applied when children (allocations) of this consumer reclaim with each other.

None

ResourceGroup attributes

Attribute Description Default
name Required

String. The name of the resource group.

None
PreferenceLevel Optional

String. A user-defined preference level for the resource group. The range is 1 - 10. A 1 indicates the most preferred. A 10 is the least preferred.

5
GetFreeFromNextLevelBeforeReclaim Optional.

String.

Valid values:
Y
Use idle slots before reclaim.
N
Reclaim ownership before using the share pool and reclaim higher preference ownership before using low ownership.
N

HostSelection attributes

Define resource dimensions.

Attribute Description Default
type Required

String. The name of the resource group. Valid values:NumHosts|HostList

None
ResReq Optional

String. Further specifies specific resources from among the specified list of hosts and resource groups to filter or prefer.

Valid values:ResReq = ”select(!mg) order(mem)”

None

NumHosts attributes for HostSelection

Specifies the percentage of the parent's owned resource.

Attribute Description Default
type Required

String. Valid values:percentage | remaining | absolute

None

HostList attribute

Defines a list of resource plug-ins by name. For example,
<Host>host1</Host>
<Host>host2</Host>

PerHost attribute for HostSelection

Attribute Description Default
type Required

String. Specifies that the resource is multidimensional. Valid value: dimension

dimension

Dimension attribute for HostSelection

Defines resource dimension.

Resource attributes for HostSelection

Defines a parameter for tuning the behaviour of the distribution engine.

Attribute Description Default
name Required

String. Defines the resource name.

None
type Required

String. Valid values:percentage | remaining | absolute

None

Lendout attributes

Defines the resource that can be lent out. The Lendout element is optional.

Attribute Description Default
GracePeriod Optional

String. Only consumers with a grace period equal to or less than the GracePeriod attribute can borrow this resource.

None

Reserve attribute

Reserves idle resources to prevent their use by other consumers.

NumHosts attribute for Reserve

Specifies the percentage of the parent's owned resource.

Attribute Description Default
type Required

String.

Valid values:percentage | remaining | absolute

None

PerHost attribute for Reserve

Attribute Description Default
type Required

String. Specifies that the resource is multidimensional. Valid value: dimension

dimension

Dimension attribute for Reserve

Defines resource dimension.

Resource attributes for Reserve

Defines a parameter for tuning the behavior of the distribution engine.

Attribute Description Default
name Required

String. Defines the resource name.

None
type Required

String.

Valid values:"percentage" | "remaining"| "absolute"

None