Workload Manager Custom Resources

Overview of Workload Manager custom resources.

Workload Manager resources represent things such as GPUs, application licenses, switches, and scratch space.

They can also represent whether or not something is true, for example, whether a machine is dedicated to a particular project. The Workload Manager provides a set of built-in resources and allows you to define additional site-specific custom resources. Jobs may request the new custom resource once it is defined.

Resource Accumulation Flags

When you define a custom resource, you can specify whether it is server-level or host-level, and whether it is consumable or not. This is done by setting resource accumulation flags. A consumable resource is tracked, or accumulated, in the server, queue or vnode resources_assigned attribute. The resource accumulation flags determine where the value of resources_assigned.<resource> is incremented. Valid values are:

Host-Level
Indicates a host-level resource. This resource is not consumable. Host-Level resources can be used inside a select statement. This flag selects hardware and indicates that the resource must be requested inside of a select statement.
All Vnodes Consumable

The amount is consumable at the host level, for all vnodes assigned to the job. All Vnodes Consumable resources can be used inside a select statement. Must be consumable or time-based. Cannot be used with Boolean or string resources.

This flag specifies that the resource is accumulated at the vnode level, meaning that the value of resources_assigned.<resource> is incremented at relevant vnodes when a job is allocated this resource.

This flag is not used with dynamic consumable resources. The scheduler will not oversubscribe dynamic consumable resources.

First Vnode Consumable

The amount is consumable at the host level for only the first vnode allocated to the job (vnode with the first task.) All First Vnode Consumable resources can be used inside a select statement. Must be consumable or time-based. Cannot be used with Boolean or string resources.

This flag specifies that the resource is accumulated at the first vnode, meaning that the value of resources_assigned.<resource> is incremented only at the first vnode when a job is allocated this resource.

Server/Queue Consumable

The amount is consumable at the Queue and Server level. When a job is assigned one unit of a resource with this flag, the resources_assigned.<resource> attribute at the server and any queue is incremented by one. Must be consumable or time-based.

This flag specifies that the resource is accumulated at the queue and server level, meaning that the value of resources_assigned.<resource> is incremented at each queue and at the server when a job is allocated this resource.

This flag is not used with dynamic consumable resources. The scheduler will not oversubscribe dynamic consumable resources.

Resource Data Type

A data type can be defined for a resources. The following are valid resource data types:

  • Boolean
  • float
  • long (integer)
  • size
  • string
  • string_array

Resource Permissions

When you define a custom resource, you can specify whether unprivileged users have permission to view or request the resource, and whether users can qalter a request for that resource. The following are valid values for resource permissions:

Invisible
Invisible - Users cannot view or request the resource. Users cannot qalter a resource request for this resource.
R
Read only - Users can view the resource, but cannot request it or qalter a resource request for this resource.
RW
Users can view and request the resource, and qalter a resource request for this resource.