resources.yaml(5)

NAME
resources.yaml - Slurm configuration file for the Hierarchical Resources (HRES).

DESCRIPTION

resources.yaml is a YAML-formatted configuration file that defines Hierarchical Resources (HRES). The file must be located in the same directory as slurm.conf. Any text following a "#" in this file is treated as a comment through the end of that line.

Additional details are available in the Hierarchical Resource (HRES) Scheduling page: <https://slurm.schedmd.com/hres.html>

PARAMETERS

Each Hierarchical Resources definition is a YAML object containing the following attributes:

resource
    The unique name for the resource. This name will be used to identify it by slurmctld. This must be the first attribute in the object.

mode
    The planning mode for the resource. Must be one of the following:

    MODE_1
        Sufficient resources are required on only one layer that overlaps with the job's allocated nodes.

    MODE_2
        Sufficient resources must be available on all layers that overlap with the job's allocated nodes.

    MODE_3
        Resources are allocated on a per-node basis. The scheduler calculates total consumption from the most granular layer and sums it up into the successively higher layers, ensuring the count is not exceeded at any layer. This mode is designed for consumable resources like power and can be mapped to a block topology using the topology parameter.

topology
    (Optional) Specifies the name of a topology/block definition to map to this resource. This parameter is only valid for MODE_3 resources. The HRes layers must have the same layout as the specified block topology. This enables the scheduler to simultaneously optimize both the HRes and block topology allocations.

variables
    (Optional) A list of name/value pairs that map arbitrary text strings to administratively-defined resource counts. Users can then use these strings in job submissions (e.g., --resources=power:full_node) instead of a numeric value. Each entry in the list contains:

    name
        The string alias for the value (e.g., "full_node").

    value
        The numeric resource count (e.g., 1000).

layers
    A list of layers that define the resource hierarchy. Each layer is a YAML object containing:

    nodes
        A list of node names or hostlist expressions that are part of this layer.

    count
        The total number of resources available in this specific layer.

    base
        (Optional) A list of name/value pairs describing non-job-related (static) resource consumption in this layer. This is particularly relevant for MODE_3. Each entry contains:

        name
            The name of the static resource consumer (e.g., "storage", "network1").

        value
            The numeric resource count this consumer uses.

EXAMPLE
---
- resource: flat
  mode: MODE_2
  layers:
    - nodes:			# highest level
        - "node[01-32]"
      count: 24
    - nodes:			# middle levels
        - "node[01-16]"
      count: 16
    - nodes:
        - "node[17-32]"
      count: 16
    - nodes:			# lowest levels
        - "node[01-08]"
      count: 12
    - nodes:
        - "node[09-16]"
      count: 12
    - nodes:
        - "node[17-24]"
      count: 12
    - nodes:
        - "node[25-32]"
      count: 12
- resource: natural
  mode: MODE_1
  layers:
    - nodes:			# highest level
        - "node[01-32]"
      count: 50
    - nodes:			# lowest levels
        - "node[01-16]"
      count: 100
    - nodes:
        - "node[17-32]"
      count: 100
- resource: power
  mode: MODE_3
  topology: blok1
  variables:
    - name: full_node
      value: 1000
    - name: full_gpu_node
      value: 2000
  layers:
    - nodes:
        - "node[01-32]"
      count: 130000
      base:
        - name: acUnit1
          value: 10000
        - name: acUnit2
          value: 8000
    - nodes:
        - "node[01-16]"
      count: 60000
      base:
        - name: network1
          value: 3000
    - nodes:
        - "node[17-32]"
      count: 80000
      base:
        - name: network2
          value: 2000
    - nodes:
        - "node[01-08]"
      count: 40000
      base:
        - name: storage
          value: 5000
    - nodes:
        - "node[09-16]"
      count: 40000
    - nodes:
        - "node[17-24]"
      count: 40000
    - nodes:
        - "node[25-32]"
      count: 40000

COPYING
Copyright (C) 2025 SchedMD LLC.

This file is part of Slurm, a resource management program. For details, see <https://slurm.schedmd.com/>.

Slurm is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Slurm is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

SEE ALSO

slurm.conf(5)