About guaranteed resource pools

Guaranteed resource pools provide a minimum resource guarantee to consumers, and can optionally loan out guaranteed resources not in use. During job scheduling the order in which jobs are scheduled does not change, but some jobs have access to additional guaranteed resources. Once the guaranteed resources are used, jobs run outside the guarantee following whatever other scheduling features are configured.

Each guaranteed resource pool configured in lsb.resources contain resources, guarantee distribution policies, and (optionally) loan policies. Guarantees are made to Service Level Agreements (SLAs) defined in lsb.serviceclasses, identifying which consumers are guaranteed the resources. Only guarantee-type SLAs can be used with guaranteed resource pools.

The resources within a guaranteed resource pool can be one of three types: hosts, slots, or licenses defined in Platform License Scheduler. A resource pool can only include one type of resources.

Each guaranteed resource pool defines specific guarantees in the DISTRIBUTION parameter, linking the resources to SLAs. Guarantees can be made for a percent of the pool, or for a fixed number of resources within the pool.

Optionally, loans can be configured for the entire resource pool. When loans are allowed, unused guaranteed resources within the pool can be loaned out when not in use. Different loan policies can be set, depending on which queues you want to borrow the resources and how quickly you need guaranteed resources to be available to consumers.

For more information about configuring guarantee-type SLAs, see Resource-based service classes

Guarantee

A guarantee provides jobs belonging to set consumers with specific resources (such as hosts). Jobs run using guaranteed resources when possible. Once the guaranteed resources are used, jobs run outside the guarantee following whatever other scheduling features are configured. Guarantees are configured within a guaranteed resource pool.

Guaranteed resource pool

A collection of resources and the guaranteed distribution of these resources to SLAs. Loan policies for unused guaranteed resources can optionally be included. Guaranteed resource pools are configured in the lsb.resources file in GuaranteedResourcePool sections, with guarantees made to one or more of the SLAs configured in the lsb.serviceclasses file.

Meeting a guarantee

A guarantee is met when all resources included in the guarantee have been provided to jobs running in the SLA configured to receive the guarantee. Jobs submitted to the SLA compete with other jobs for resources once the guarantee is met.

Consumers

Resources are guaranteed to consumers who can access the SLA, as set by ACCESS_CONTROL in the ServiceClass section in lsb.serviceclasses. Consumers can include users, user groups, queues, fairshare groups, application profiles, projects, or license projects.

Loans

When the resources allocated to a guarantee within a guaranteed resource pool are not all used, non-SLA jobs and jobs from other SLAs can run on these resources. To enable loans, loan policies must be configured for the guaranteed resource pool.

Loaned resources

Loaned resources are resources guaranteed to an SLA, but currently in use by jobs outside of the SLA.

Guaranteed resource pool considerations

A host-type guaranteed resource pool does not guarantee a specific host will always be reserved for a consumer. Instead, the guarantee is for any host in the pool. Similarly a slot-type pool guarantees slots on any of the hosts in the pool.

A host-type or slot-type guaranteed resource pool includes hosts in the following states:

  • ok

  • closed_Busy

  • closed_Excl

  • closed_cu_Excl

  • closed_Full

Hosts in other states are temporarily excluded from the pool, and any SLA jobs running on hosts in other states are not counted towards the guarantee.

Advance reservation

Hosts within an advance reservation are excluded from guarantee resource pools.

Compute units

Configuring guaranteed resource pools and compute units with hosts in common is not recommended. If such configuration is required, do not submit jobs with compute unit requirements using the maxcus, balance, or excl keywords.

Queue-based fairshare

During loan scheduling, shares between queues are not preserved. If SLOT_POOL is defined in lsb.queues both the fairshare and guarantee limits apply.

Exclusive jobs

Using exclusive jobs with slot-type guaranteed resource pools is not recommended. Instead use host-type pools.

MultiCluster

Leased hosts can be used in a guaranteed resource pool by including a host group with remote hosts in the HOSTS parameter.

Preemption

Guarantee SLA jobs can only be preempted by queues with SLA_GUARANTEES_IGNORE=Y. Such queues cannot be preemptable.

Jobs scheduled using loaned resources cannot trigger preemption.

Guarantee SLA jobs can preempt other jobs, and can use preemption to meet guarantees.

Chunk jobs

Jobs running on loaned resources cannot be chunked.

Forced jobs (brun)

Jobs forced to run using brun can use resources regardless of guarantees.