Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
topology.yaml(5)	    Slurm Configuration File		topology.yaml(5)

NAME
     topology.yaml -  Slurm configuration file for the topology plugins

DESCRIPTION
     topology.yaml  is a YAML-formatted configuration file that defines multiple
     network topologies for optimizing job resource allocation	in  Slurm.   The
     file  must be located in the same directory as slurm.conf. Any text follow-
     ing a "#" in this file is treated as a comment  through  the  end	of  that
     line.

     Additional  details  are  available in topology.conf(5) and in the Topology
     Guide: <https://slurm.schedmd.com/topology.html>

     NOTE: Slurm will first check  for	topology.yaml.	 If  this  file  exists,
     topology.conf will be ignored.

PARAMETERS
     Each topology contains the following attributes:

     topology
	    Unique  name  of the topology, will be used to identify it on parti-
	    tion configurations. Must be the first attribute.

     cluster_default
	    The first topology defined with cluster_default: true will	be  used
	    for partitions without an explicitly specified topology and cluster-
	    wide  operations  not tied to a partition (e.g., slurmctld-to-slurmd
	    communication). Defaults to false.

     Each topology must also define exactly one of the following topology types:

	    block  This topology will use the topology/block plugin.  Must  con-
		   tain additional fields, see below.

	    flat   If set to true, this topology will use the topology/flat plu-
		   gin,  which	is  the  default  if no TopologyPlugin or topol-
		   ogy.yaml is specified.  May also be set to  a  dictionary  of
		   options, see "Flat definitions" below.

	    ring   This topology will use the topology/ring plugin. Must contain
		   additional fields, see below.

	    torus3d
		   This topology will use the topology/torus3d plugin. Must con-
		   tain additional fields, see below.

	    tree   This topology will use the topology/tree plugin. Must contain
		   additional fields, see below.

   Block definitions
     Each block topology contains the following attributes:

     block_sizes
	    List  of  the  planning  base block size, alongside any higher-level
	    block sizes that would be enforced.  Successive BlockSizes must be a
	    power of two larger than the prior values.

     blocks
	    List of blocks available in this topology. Each block  contains  the
	    following attributes:

	    block  The name of a block. This name is internal to Slurm and arbi-
		   trary.   Each  block  should  have a unique name.  This field
		   must be specified.

	    nodes  Child nodes of the named block.

   Tree definitions
     Each tree topology contains the following attribute:

     switches
	    List of switches available in this topology.  Each	switch	contains
	    the following attributes:

	    switch
		   The	name of a switch. This name is internal to Slurm and ar-
		   bitrary.  Each switch should have a unique name.  This  field
		   must be specified and cannot be longer than 64 characters.

	    children
		   Child switches of the named switch.

	    nodes  Child nodes of the named leaf switch.

   Ring definitions
     Each ring topology contains the following attribute:

     rings  List  of  rings  available	in this topology. Each ring contains the
	    following attributes:

	    ring   The name of a ring. This name is internal to Slurm and  arbi-
		   trary.  Each ring should have a unique name.  This field must
		   be specified.

	    nodes  Ordered  list  of  child  nodes in the ring.  A maximum of 16
		   nodes can be specified per ring.

   Torus3d definitions
     Each torus3d topology contains the following attribute:

     toruses
	    List of 3D torus definitions. Each torus contains the following  at-
	    tributes:

	    name   The name of the torus. This name is internal to Slurm and ar-
		   bitrary.   Each  torus should have a unique name.  This field
		   must be specified.

	    dims   The dimensions of the torus as an object with  x,  y,  and  z
		   fields  (each  a positive integer). The product x*y*z defines
		   the total number of coordinate cells in the torus.

	    nodes  Child nodes of the torus. Nodes are mapped to coordinates  in
		   x-major order (x varies fastest). Mutually exclusive with re-
		   gions.

	    regions
		   List  of regions within the torus that map subsets of coordi-
		   nates to nodes.  Mutually exclusive with nodes.  Each  region
		   contains the following attributes:

		   anchor
			  Starting coordinate of the region as an object with x,
			  y, and z fields.

		   dims   Size	of  the  region  as  an  object with x, y, and z
			  fields.  The region covers coordinates from anchor  to
			  anchor  +  dims  -  1.  The region must fit within the
			  torus dimensions (no wrap-around).

		   nodes  Nodes to place in the region, mapped in x-major  order
			  within the region's coordinate range.

	    placements
		   List  of  allowed  placement  shapes for this torus. Jobs re-
		   questing a number of nodes matching a placement size will  be
		   allocated as a contiguous sub-cube that may wrap around torus
		   boundaries.	 Jobs  that  don't match any placement size will
		   not receive an allocation.  Each placement contains the  fol-
		   lowing attributes:

		   dims   Dimensions of the placement shape as an object with x,
			  y,  and z fields. The product x*y*z defines the place-
			  ment size (number of nodes).

		   anchor_seed
			  Optional starting coordinate	offset	for  the  anchor
			  grid	as an object with x, y, and z fields. Shifts the
			  entire anchor grid by the given  offset.  Defaults  to
			  {0, 0, 0}.

		   anchor_spacing
			  Optional  spacing  between placement anchors as an ob-
			  ject with x, y, and z fields. Controls how anchor  po-
			  sitions  are	generated  across the torus. Defaults to
			  the placement dims if not specified.

   Flat definitions
     Each flat topology may contain the following attribute:

     alpha_step_rank
	    If set to true, sort the job's  allocated  nodes  alphabetically  by
	    name  when	picking  step nodes and laying out tasks. By default the
	    order follows the internal node table index, which	for  dynamically
	    registered nodes reflects registration order rather than name order.

EXAMPLE
     ---
     - topology: topo1
       cluster_default: true
       tree:
	 switches:
	   - switch: sw_root
	     children: s[1-2]
	   - switch: s1
	     nodes: node[01-02]
	   - switch: s2
	     nodes: node[03-04]
     - topology: topo2
       cluster_default: false
       block:
	 block_sizes:
	   - 4
	   - 16
	 blocks:
	   - block: b1
	     nodes: node[01-04]
	   - block: b2
	     nodes: node[05-08]
	   - block: b3
	     nodes: node[09-12]
	   - block: b4
	     nodes: node[13-16]
     - topology: topo3
       cluster_default: false
       flat: true
     - topology: topo3a
       cluster_default: false
       flat:
	 alpha_step_rank: true
     - topology: topo4
       cluster_default: false
       ring:
	 rings:
	   - ring: ring0
	     nodes: node[01-08]
	   - ring: ring1
	     nodes: node[09-16]
     - topology: topo5
       cluster_default: false
       torus3d:
	 toruses:
	   - name: pod1
	     dims:
	       x: 4
	       y: 4
	       z: 2
	     nodes: node[01-32]
	     placements:
	       - dims:
		   x: 2
		   y: 2
		   z: 1
	       - dims:
		   x: 2
		   y: 2
		   z: 2
	       - dims:
		   x: 4
		   y: 4
		   z: 2

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 de-
     tails.

SEE ALSO
     slurm.conf(5), topology.conf(5)

Slurm 26.05		    Slurm Configuration File		topology.yaml(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=topology.yaml&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help