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 mul-
       tiple network topologies	for  optimizing	 job  resource	allocation  in
       Slurm.	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 topology.conf(5) and in the	Topol-
       ogy 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 par-
	      tition 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.,	slurm-
	      ctld-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
		     contain additional	fields,	see below.

	      flat   If	 set to	true, this topology will use the topology/flat
		     plugin, which is the  default  if	no  TopologyPlugin  or
		     topology.yaml is specified.  May also be set to a dictio-
		     nary 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
		     contain 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
		     arbitrary.	  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  con-
	      tains the	following attributes:

	      switch The  name of a switch. This name is internal to Slurm and
		     arbitrary.	 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
		     arbitrary.	  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
	      attributes:

	      name   The name of the torus. This name is internal to Slurm and
		     arbitrary.	  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  de-
		     fines 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 regions.

	      regions
		     List of regions within the	torus that map subsets of  co-
		     ordinates 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 following attributes:

		     dims   Dimensions of the placement	 shape	as  an	object
			    with x, y, and z fields. The product x*y*z defines
			    the	placement 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.  De-
			    faults to {0, 0, 0}.

		     anchor_spacing
			    Optional  spacing  between placement anchors as an
			    object with	x, y, and z fields. Controls  how  an-
			    chor positions are generated across	the torus. De-
			    faults 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  dy-
	      namically	 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  de-
       tails, 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 op-
       tion) 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), 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