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

FreeBSD Manual Pages

  
 
  

home | help
slurm.conf(5)		    Slurm Configuration File		   slurm.conf(5)

NAME
     slurm.conf - Slurm configuration file

DESCRIPTION
     slurm.conf is an ASCII file which describes general Slurm configuration in-
     formation,  the  nodes to be managed, information about how those nodes are
     grouped into partitions, and various scheduling parameters associated  with
     those  partitions.  This  file should be consistent across all nodes in the
     cluster.

     The file location	can  be  modified  at  execution  time	by  setting  the
     SLURM_CONF  environment variable. The Slurm daemons also allow you to over-
     ride both the built-in and environment-provided location using the "-f" op-
     tion on the command line.

     The contents of the file are case insensitive except for the names of nodes
     and partitions. Any text following a  "#"	in  the  configuration	file  is
     treated as a comment through the end of that line.  Changes to the configu-
     ration  file  take  effect upon restart of Slurm daemons, daemon receipt of
     the SIGHUP signal, or execution of the command "scontrol  reconfigure"  un-
     less  otherwise  noted.   Changes	to TCP listening settings will require a
     daemon restart.

     If a line begins with the word "Include" followed by whitespace and then  a
     file name, that file will be included inline with the current configuration
     file.  For large or complex systems, multiple configuration files may prove
     easier to manage and enable reuse of some files (See INCLUDE MODIFIERS  for
     more details).

     Note on file permissions:

     The  slurm.conf  file  must  be readable by all users of Slurm, since it is
     used by many of the Slurm commands. Other files that  are	defined  in  the
     slurm.conf file, such as log files and job accounting files, may need to be
     created/owned  by the user "SlurmUser" to be successfully accessed. Use the
     "chown" and "chmod" commands to set the ownership and permissions appropri-
     ately.  See the section FILE  AND	DIRECTORY  PERMISSIONS	for  information
     about the various files and directories used by Slurm.

PARAMETERS
     The overall configuration parameters available include:

     AccountingStorageBackupHost
	    The  name of the backup machine hosting the accounting storage data-
	    base.  If used with the accounting_storage/slurmdbd plugin, this  is
	    where  the backup slurmdbd would be running.  Only used with systems
	    using SlurmDBD, ignored otherwise.

     AccountingStorageEnforce
	    This controls what level of association-based enforcement to  impose
	    on	job  submissions. Valid options are any comma-separated combina-
	    tion of the following, many of which will implicitly  include  other
	    options:

	    all
	      Implies all other available options except nojobs and nosteps.

	    associations
	      No  new  job  is allowed to run unless a corresponding association
	      exists in the system.

	    limits
	      Users can be limited by association to whatever job  size  or  run
	      time limits are defined. Implies associations.

	    nojobs
	      Slurm  will  not account for any jobs or steps on the system.  Im-
	      plies nosteps.

	    nosteps
	      Slurm will not account for any steps that have run.

	    qos
	      Jobs will not be scheduled unless a valid qos is	specified.   Im-
	      plies associations.

	    safe
	      A job will only be launched against an association or qos that has
	      a TRES-minutes limit set if the job will be able to run to comple-
	      tion.  Without  this  option set, jobs will be launched as long as
	      their usage hasn't reached the TRES-minutes limit. This  can  lead
	      to  jobs being launched but then killed when the limit is reached.
	      With this option, a job won't be killed due to limits, even if the
	      limits are changed after the job was started and	the  association
	      or  qos  violates  the updated limits. Implies limits and associa-
	      tions.

	    wckeys
	      Jobs will not be scheduled unless a valid  workload  characteriza-
	      tion key is specified. Implies associations and TrackWCKey (a sep-
	      arate configuration option).

     AccountingStorageExternalHost
	    A	   comma-separated	list	  of	  external     slurmdbds
	    (<host/ip>[:port][,...]) to register with. If no port is given,  the
	    AccountingStoragePort will be used.

	    This allows clusters registered with the external slurmdbd to commu-
	    nicate  with  each	other  using the --cluster/-M client command op-
	    tions.

	    The cluster will add itself to the external slurmdbd if  it  doesn't
	    exist.  If	a  non-external  cluster  already exists on the external
	    slurmdbd, the slurmctld will  ignore  registering  to  the	external
	    slurmdbd.

     AccountingStorageHost
	    The  name  of  the	machine hosting the accounting storage database.
	    Only used with systems using SlurmDBD, ignored otherwise.

     AccountingStorageParameters
	    Comma-separated list of options.

	    max_step_records=The number of steps that are recorded in the data-
	    base for each job -- excluding
	      batch, extern, and interactive steps.

	    The following comma-separated list of key-value options are used  to
	    establish a secure connection to the database:

	    SSL_CERT
	      The path name of the client public key certificate file.

	    SSL_CA
	      The path name of the Certificate Authority (CA) certificate file.

	    SSL_CAPATH
	      The  path  name of the directory that contains trusted SSL CA cer-
	      tificate files.

	    SSL_KEY
	      The path name of the client private key file.

	    SSL_CIPHER
	      The list of permissible ciphers for SSL encryption.

     AccountingStoragePass
	    The password used to gain access to the database to  store	the  ac-
	    counting  data. Only used for database type storage plugins, ignored
	    otherwise. In the case of SlurmDBD (Database Daemon) with MUNGE  au-
	    thentication  this	can be configured to use a MUNGE daemon specifi-
	    cally configured to provide authentication	between  clusters  while
	    the  default  MUNGE daemon provides authentication within a cluster.
	    In that case, AccountingStoragePass should specify the named port to
	    be used for communications with the  alternate  MUNGE  daemon  (e.g.
	    "/var/run/munge/global.socket.2"). The default value is NULL.

     AccountingStoragePort
	    The  listening port of the accounting storage database server.  Only
	    used for database type storage plugins, ignored otherwise.	The  de-
	    fault value is SLURMDBD_PORT as established at system build time. If
	    no	value  is  explicitly  specified,  it will be set to 6819.  This
	    value must be equal to the DbdPort parameter  in  the  slurmdbd.conf
	    file.

     AccountingStorageTRES
	    Comma-separated  list of resources you wish to track on the cluster.
	    These are the resources requested by the sbatch/srun job when it  is
	    submitted. Currently this consists of any GRES, BB (burst buffer) or
	    license  along  with  CPU,	Memory,  Node, Energy, FS/[Disk|Lustre],
	    IC/OFED, Pages, and VMem. By default Billing, CPU,	Energy,  Memory,
	    Node, FS/Disk, Pages and VMem are tracked. These default TRES cannot
	    be	  disabled,    but   only   appended   to.    AccountingStorage-
	    TRES=gres/craynetwork,license/iop1 will track billing, cpu,  energy,
	    memory,  nodes,  fs/disk,  pages  and  vmem along with a gres called
	    craynetwork as well as a license called  iop1.  Whenever  these  re-
	    sources  are used on the cluster they are recorded. The TRES are au-
	    tomatically set up in the database on the start of the slurmctld.

	    If multiple GRES of different types are tracked (e.g. GPUs	of  dif-
	    ferent  types),  then job requests with matching type specifications
	    will be recorded.	Given  a  configuration  of  "AccountingStorage-
	    TRES=gres/gpu,gres/gpu:tesla,gres/gpu:volta"  Then	"gres/gpu:tesla"
	    and "gres/gpu:volta" will track only jobs  that  explicitly  request
	    those  two	GPU types, while "gres/gpu" will track allocated GPUs of
	    any type ("tesla", "volta" or any other GPU type).

	    Given	a	configuration	    of	     "AccountingStorage-
	    TRES=gres/gpu:tesla,gres/gpu:volta"    Then   "gres/gpu:tesla"   and
	    "gres/gpu:volta" will track jobs that explicitly request  those  GPU
	    types.   If a job requests GPUs, but does not explicitly specify the
	    GPU type, then its resource allocation will be accounted for as  ei-
	    ther  "gres/gpu:tesla"  or "gres/gpu:volta", although the accounting
	    may not match the actual GPU type allocated to the job and the  GPUs
	    allocated to the job could be heterogeneous.  In an environment con-
	    taining various GPU types, use of a job_submit plugin may be desired
	    in order to force jobs to explicitly specify some GPU type.

	    NOTE:  Setting  gres/gpu will also set gres/gpumem and gres/gpuutil.
	    gres/gpumem and gres/gpuutil can be set individually  when	gres/gpu
	    is not set.

     AccountingStorageType
	    The accounting storage mechanism type. Unset by default, which indi-
	    cates that accounting records are not maintained.

	    Current options are:

	    accounting_storage/slurmdbd
		   The accounting records will be written to the SlurmDBD, which
		   manages  an underlying MySQL database. See "man slurmdbd" for
		   more information.

     AccountingStoreFlags
	    Comma separated list used to modify which fields the slurmctld  send
	    to the accounting database.

	    Current options are:

	    job_comment
		   Include  the  job's comment field in the job complete message
		   sent to the Accounting Storage database.  Note the  AdminCom-
		   ment and SystemComment are always recorded in the database.

	    job_env
		   Include  a batch job's environment variables used at job sub-
		   mission in the job start message sent to the Accounting Stor-
		   age database.

	    job_extra
		   Include the job's extra field in  the  job  complete  message
		   sent to the Accounting Storage database.

	    job_script
		   Include  the job's batch script in the job start message sent
		   to the Accounting Storage database.

	    no_stdio
		   Exclude the stdio paths when recording data into the database
		   on a job or step start. StdOut, StdErr and  StdIn  db  fields
		   for jobs and steps will be empty.

     AcctGatherNodeFreq
	    The  AcctGather  plugins sampling interval for node accounting.  For
	    AcctGather plugin values of none, this parameter  is  ignored.   For
	    all  other	values	this  parameter is the number of seconds between
	    node accounting samples. For the acct_gather_energy/rapl plugin, set
	    a value less than 300 because the counters may overflow beyond  this
	    rate.   The  default  value  is zero. This value disables accounting
	    sampling for nodes. Note: The accounting sampling interval for  jobs
	    is determined by the value of JobAcctGatherFrequency.

     AcctGatherEnergyType
	    Identifies	the plugin to be used for energy consumption accounting.
	    The jobacct_gather plugin and slurmd daemon call this plugin to col-
	    lect energy consumption data for jobs and nodes. The  collection  of
	    energy consumption data takes place on the node level, hence only in
	    case of exclusive job allocation the energy consumption measurements
	    will reflect the job's real consumption. In case of node sharing be-
	    tween  jobs  the  reported consumed energy per job (through sstat or
	    sacct) will not reflect the real energy consumed by  the  jobs.  De-
	    fault is nothing is collected.

	    Configurable values at present are:

	    acct_gather_energy/gpu
				Energy	consumption  data  is collected from the
				GPU management library (e.g. rsmi) for the  cor-
				responding  type of GPU. Only available for rsmi
				at present.  Note: slurmd will keep  gpu  plugin
				loaded after configuration when this is set.

	    acct_gather_energy/ipmi
				Energy	consumption  data  is collected from the
				Baseboard Management Controller (BMC) using  the
				Intelligent    Platform   Management   Interface
				(IPMI).

	    acct_gather_energy/pm_counters
				Energy consumption data is  collected  from  the
				Baseboard  Management  Controller  (BMC) for HPE
				Cray systems.

	    acct_gather_energy/rapl
				Energy consumption data is collected from  hard-
				ware  sensors  using  the  Running Average Power
				Limit (RAPL) mechanism. Note that enabling  RAPL
				may  require  the execution of the command "sudo
				modprobe msr".

	    acct_gather_energy/xcc
				Energy consumption data is  collected  from  the
				Lenovo	SD650  XClarity  Controller  (XCC) using
				IPMI OEM raw commands.

     AcctGatherInterconnectType
	    Identifies the plugin to be used for  interconnect	network  traffic
	    accounting.   The  jobacct_gather plugin and slurmd daemon call this
	    plugin to collect network traffic data for jobs and nodes.	The col-
	    lection of network traffic data takes place on the node level, hence
	    only in case of exclusive job allocation the collected  values  will
	    reflect the job's real traffic. In case of node sharing between jobs
	    the  reported  network traffic per job (through sstat or sacct) will
	    not reflect the real network traffic by the jobs.

	    Configurable values at present are:

	    acct_gather_interconnect/ofed
				Infiniband network traffic  data  are  collected
				from the hardware monitoring counters of Infini-
				band devices through the OFED library.	In order
				to  account for per job network traffic, add the
				"ic/ofed" TRES to AccountingStorageTRES.

	    acct_gather_interconnect/sysfs
				Network traffic statistics  are  collected  from
				the  Linux  sysfs pseudo-filesystem for specific
				interfaces defined in  acct_gather.conf(5).   In
				order  to  account  for per job network traffic,
				add the "ic/sysfs"  TRES  to  AccountingStorage-
				TRES.

     AcctGatherFilesystemType
	    Identifies	the plugin to be used for filesystem traffic accounting.
	    The jobacct_gather plugin and slurmd daemon call this plugin to col-
	    lect filesystem traffic data for jobs and nodes.  The collection  of
	    filesystem traffic data takes place on the node level, hence only in
	    case  of  exclusive job allocation the collected values will reflect
	    the job's real traffic. In case of node sharing between jobs the re-
	    ported filesystem traffic per job (through sstat or sacct) will  not
	    reflect the real filesystem traffic by the jobs.

	    Configurable values at present are:

	    acct_gather_filesystem/lustre
				Lustre	filesystem  traffic  data  are collected
				from the counters found in /proc/fs/lustre/.  In
				order to account for per job lustre traffic, add
				the "fs/lustre" TRES to AccountingStorageTRES.

     AcctGatherProfileType
	    Identifies the plugin to be used for detailed  job	profiling.   The
	    jobacct_gather  plugin and slurmd daemon call this plugin to collect
	    detailed data such as I/O counts, memory usage, or	energy	consump-
	    tion for jobs and nodes. There are interfaces in this plugin to col-
	    lect  data	as step start and completion, task start and completion,
	    and at the account gather frequency. The data collected at the  node
	    level is related to jobs only in case of exclusive job allocation.

	    Configurable values at present are:

	    acct_gather_profile/hdf5
				This  enables  the  HDF5  plugin.  The directory
				where the profile files  are  stored  and  which
				values	are  collected	are  configured  in  the
				acct_gather.conf file.

	    acct_gather_profile/influxdb
				This enables the influxdb plugin.  The	influxdb
				instance  host, port, database, retention policy
				and which values are collected are configured in
				the acct_gather.conf file.

     AllowSpecResourcesUsage
	    If set to "YES", Slurm allows individual  jobs  to	override  node's
	    configured	CoreSpecCount value. For a job to take advantage of this
	    feature, a command line option of --core-spec must be specified. The
	    default value for this option is "YES" for Cray systems and "NO" for
	    other system types.

     AuthAltTypes
	    Comma-separated list of alternative authentication plugins that  the
	    slurmctld  will  permit  for  communication.  Acceptable  values  at
	    present include auth/jwt.

	    NOTE: If AuthAltParameters is not used to specify a path to the  re-
	    quired  jwt_hs256.key  then slurmctld will default to looking for it
	    in the StateSaveLocation.  The jwt_hs256.key should only be  visible
	    to	the  SlurmUser	and  root.  It	is  not  suggested  to place the
	    jwt_hs256.key on any nodes other than the machine running  slurmctld
	    and  the machine running slurmdbd.	auth/jwt can be activated by the
	    presence of the SLURM_JWT environment variable. When  activated,  it
	    will override the default AuthType.

     AuthAltParameters
	    Used  to define alternative authentication plugins options. Multiple
	    options may be comma separated.

	    disable_token_creation
			   Disable "scontrol token"  use  by  non-SlurmUser  ac-
			   counts.

	    max_token_lifespan=<seconds>
			   Set max lifespan (in seconds) for any token generated
			   for	user accounts. Limit applies to all users except
			   SlurmUser. Sites wishing  to  have  per  user  limits
			   should  generate  tokens  using JWT-compatible tools,
			   andor an authenticating proxy, instead of using scon-
			   trol token.

	    jwks=	   Absolute path to JWKS file. Key should  be  owned  by
			   SlurmUser  or  root,  must  be readable by SlurmUser,
			   with suggested permissions of 0400. It  must  not  be
			   writable  by 'other'.  Only RS256 keys are supported,
			   although other key types may be listed in  the  file.
			   If  set,  no HS256 key will be loaded by default (and
			   token generation is disabled), although  the  jwt_key
			   setting may be used to explicitly re-enable HS256 key
			   use (and token generation).

	    jwt_key=	   Absolute path to JWT key file. Key must be HS256. Key
			   should  be  owned by SlurmUser or root, must be read-
			   able by  SlurmUser,	with  suggested  permissions  of
			   0400.  It  must not be accessible by 'other'.  If not
			   set, the default key file is jwt_hs256.key in  State-
			   SaveLocation.

	    use_jwt_client_ids
			   Allow  JWT  tokens  to contain full identity informa-
			   tion. When enabled, JWT tokens must contain	uid  and
			   gid	fields. They must also include a id claim with a
			   JSON object that includes gecos, dir, shell, and  ei-
			   ther  gids  (array) or groups (dict) elements to pro-
			   vide complete user  identity  information.  This  by-
			   passes  slurmctld system lookups for user information
			   when valid  claims  are  present  in  the  JWT.  (For
			   auth/jwt.)

	    use_jwt_client_ids_only
			   When  this  flag is set, auth/jwt authentication will
			   fail if complete identity information is  not  avail-
			   able   from	 JWT   claims.	  This	 option  implies
			   use_jwt_client_ids. (For auth/jwt.)

	    userclaimfield=
			   Use an alternative claim field for the Slurm UserName
			   (sun) field. This option is designed to allow compat-
			   ibility with tokens generated outside of Slurm. (This
			   field may also be known as a grant.)

			   Default: (disabled)

     AuthInfo
	    Additional information to be used for authentication  of  communica-
	    tions between the Slurm daemons (slurmctld and slurmd) and the Slurm
	    clients.  The  interpretation of this option is specific to the con-
	    figured AuthType.  Multiple options may be specified in a  comma-de-
	    limited list.  If not specified, the default authentication informa-
	    tion will be used.

	    cred_expire   Default job step credential lifetime, in seconds (e.g.
			  "cred_expire=1200").	 It  must  be  sufficiently long
			  enough to load user environment, run prolog, deal with
			  the slurmd getting paged out	of  memory,  etc.   This
			  also controls how long a requeued job must wait before
			  starting again.  The default value is 120 seconds.

	    socket	  Path	name  to  a  MUNGE  daemon  socket  to use (e.g.
			  "socket=/var/run/munge/munge.socket.2").  The  default
			  value  is  "/var/run/munge/munge.socket.2".	Used  by
			  auth/munge and cred/munge.

	    ttl 	  Credential lifetime, in seconds (e.g. "ttl=300").  The
			  default value is dependent on the AuthType used.   For
			  auth/munge,  the  default  value is dependent upon the
			  MUNGE installation, but is typically 300 seconds.  For
			  auth/slurm,  the  default  value  is	60  seconds. For
			  auth/jwt, the default value is 1800 seconds.

	    use_client_ids
			  Allow the  auth/slurm  plugin  to  authenticate  users
			  without  relying  on the user information from LDAP or
			  the operating system. When coupled with nss_slurm, the
			  user information can be managed on the  compute  nodes
			  by slurmstepd. This would allow the cluster to operate
			  in  an environment where only the login nodes have ac-
			  cess	  to	LDAP/OS    user    information.      See
			  <https://slurm.schedmd.com/nss_slurm.html>   for  more
			  information.

     AuthType
	    The authentication method for communications  between  Slurm  compo-
	    nents.   All  Slurm daemons and commands must be terminated prior to
	    changing the value of AuthType and later restarted.  Changes to this
	    value will interrupt outstanding job steps	and  prevent  them  from
	    completing,  so no jobs should be running when this is changed.  See
	    <https://slurm.schedmd.com/authentication.html>  for  more	informa-
	    tion.

	    Acceptable values at present:

	    auth/munge
		   Indicates   that   MUNGE  is  to  be  used  (default).   (See
		   "https://dun.github.io/munge/" for more information).

	    auth/slurm
		   Use Slurm's internal authentication plugin.

     BatchStartTimeout
	    The maximum time (in seconds) that a  batch  job  is  permitted  for
	    launching  before being considered missing and releasing the alloca-
	    tion. The default value is 10 (seconds). Larger values  may  be  re-
	    quired if more time is required to execute the Prolog, load user en-
	    vironment variables, or if the slurmd daemon gets paged from memory.
	    NOTE:  The	test  for a job being successfully launched is only per-
	    formed when the Slurm daemon on the  compute  node	registers  state
	    with  the  slurmctld  daemon  on the head node, which happens fairly
	    rarely.  Therefore a job will not necessarily be terminated  if  its
	    start  time exceeds BatchStartTimeout.  This configuration parameter
	    is also applied to launch tasks and avoid aborting srun commands due
	    to long running Prolog scripts.

     BcastExclude
	    Comma-separated list of absolute directory paths to be excluded when
	    autodetecting and broadcasting executable shared object dependencies
	    through sbcast or srun --bcast. The keyword "none" can  be	used  to
	    indicate  that  no	directory  paths should be excluded. The default
	    value is "/lib,/usr/lib,/lib64,/usr/lib64". This option can be over-
	    ridden by sbcast --exclude and srun --bcast-exclude.

     BcastParameters
	    Controls sbcast and srun --bcast behavior. Multiple options  can  be
	    specified in a comma separated list.  Supported values include:

	    DestDir=	   Destination directory for file being broadcast to al-
			   located  compute  nodes.   Default  value  is current
			   working directory, or --chdir for srun if set.

	    Compression=   Specify default file compression library to be  used.
			   Supported  values  are "lz4" and "none".  The default
			   value with the sbcast --compress option is "lz4"  and
			   "none"  otherwise.  Some compression libraries may be
			   unavailable on some systems.

	    send_libs	   If set, attempt to autodetect and broadcast the  exe-
			   cutable's  shared  object  dependencies  to allocated
			   compute nodes. The files are placed	in  a  directory
			   alongside  the  executable. For srun only, the LD_LI-
			   BRARY_PATH is automatically updated to  include  this
			   cache directory as well.  This can be overridden with
			   either  sbcast or srun --send-libs option. By default
			   this is disabled.

     BurstBufferType
	    The plugin used to manage burst buffers. Unset by default.	 Accept-
	    able values at present are:

	    burst_buffer/datawarp
		   Use Cray DataWarp API to provide burst buffer functionality.

	    burst_buffer/lua
		   This plugin provides hooks to an API that is defined by a Lua
		   script.  This plugin was developed to provide system adminis-
		   trators with a way to do any task (not only file staging)  at
		   different points in a job's life cycle.

     CertgenParameters
	    Comma-separated  options  identifying  certgen plugin options.  Sup-
	    ported values include:

	    certgen_script=
		   Absolute path to executable script  to  generate  self-signed
		   TLS	certificate.  The private key generated by keygen_script
		   is passed in as stdin, and  only  the  certificate  PEM  file
		   should  be  printed	to stdout. Must return 0 on success, and
		   non-zero on error.

	    keygen_script=
		   Absolute path to executable script to  generate  private  key
		   used  later	to  generate a self-signed certificate. Only the
		   private key PEM file should be printed to stdout, which  will
		   be  later  sent as stdin to certgen_script.	Must return 0 on
		   success, and non-zero on error.

     CertgenType
	    Specify the certgen plugin that will be used.  Acceptable values  at
	    present:

	    certgen/script
		   Use	built-in/configured  scripts to generate certificate key
		   pair.

     CertmgrParameters
	    Used to define parameters for certmgr plugin.

	    certificate_renewal_period=
		   slurmd/sackd will  request  a  new  signed  certificate  from
		   slurmctld at this specified interval (in minutes).

		   Default is 1440 minutes (once per day).

	    generate_csr_script=
		   Path to script used to generate certificate signing requests.
		   The	nodename  is passed in as an argument to the script. The
		   script must print only the certificate  signing  request  PEM
		   file to stdout, and return 0 on success. Must return non-zero
		   on error.

		   Required  with certmgr/script. Only run by daemons requesting
		   certificates.

	    get_node_cert_key_script=
		   Path to script used to get node's private key which was  used
		   to  generate  the  CSR  returned  by generate_csr_script. The
		   nodename is passed in as  an  argument  to  the  script.  The
		   script  must  print the node's private key (PEM file) to std-
		   out. Must return 0 on success, and non-zero on error.

		   Required with certmgr/script. Only run by daemons  requesting
		   certificates.

	    get_node_token_script=
		   Path  to script used to get node's unique token which will be
		   validated  by  slurmctld  using  the  script  set  by   vali-
		   date_node_script=.	The nodename is passed in as an argument
		   to the script. The script must print the node's unique  token
		   to  stdout,	and return 0 on success. Must return non-zero on
		   error.

		   Required with certmgr/script. Only run by daemons  requesting
		   certificates.

	    sign_csr_script=
		   Path  to script used to sign incoming certificate signing re-
		   quests.   This  script  will  only	be   called   if   vali-
		   date_node_script=  was  already  called  on	the accompanying
		   unique node token and returned with	a  non-zero  exit  code.
		   The	 certificate   signing	 request  (as  given  by  gener-
		   ate_csr_script=) is passed as an  argument  to  this  script.
		   The	script	must print the new signed certificate to stdout,
		   and return 0 on success. Must return non-zero on error.

		   Required with certmgr/script. Only run by slurmctld.

	    single_use_tokens
		   Unique node tokens that are dynamically  set  (e.g.	set  via
		   scontrol)  will be consumed upon successful certificate sign-
		   ing.

	    validate_node_script=
		   Path to script used to validate a  unique  node  token.   The
		   unique  node  token	is passed as an argument to this script.
		   If the script finds the node token to  be  valid,  return  0.
		   Otherwise, if the node token is invalid, return non-zero.

		   Required with certmgr/script. Only run by slurmctld.

     CertmgrType
	    Plugin used to dynamically renew TLS certificates for slurmd/sackd.

	    certmgr/script
		   Use	script	hooks  to  implement certificate management. See
		   CertmgrParameters for details on how to setup these scripts.

     CliFilterParameters
	    Extra parameters for cli_filter plugins.  Multiple	options  may  be
	    comma-separated. Acceptable values at present are:

	    cli_filter_lua_path=<path>
		   Absolute  path  to  the cli_filter.lua script to be used when
		   cli_filter/lua is enabled. If this is not  defined,	the  de-
		   fault path will be used instead (same path to slurm.conf).

		   NOTE:  The configured directory containing the cli_filter.lua
		   script should have 755 permissions, the script itself 644 and
		   both be owned by SlurmdUser.

     CliFilterPlugins
	    A comma-delimited list of command line interface option filter/modi-
	    fication plugins. The specified plugins will be executed in the  or-
	    der  listed.   No cli_filter plugins are used by default. Acceptable
	    values at present are:

	    cli_filter/lua
		   This plugin allows you to write your own implementation of  a
		   cli_filter using lua.

	    cli_filter/syslog
		   This plugin enables logging of job submission activities per-
		   formed. All the salloc/sbatch/srun options are logged to sys-
		   log	together  with	environment variables in JSON format. If
		   the plugin is not the last one in the list it may log  values
		   different than what was actually sent to slurmctld.

	    cli_filter/user_defaults
		   This  plugin  looks	for  the  file $HOME/.slurm/defaults and
		   reads every line of it as a key=value pair, where key is  any
		   of the job submission options available to salloc/sbatch/srun
		   and	value  is  a  default value defined by the user. For in-
		   stance:
		   time=1:30
		   mem=2048
		   The above will result in a user defined default for	each  of
		   their jobs of "-t 1:30" and "--mem=2048".

     ClusterName
	    The  name  by  which  this Slurm managed cluster is known in the ac-
	    counting database. This is needed to distinguish accounting  records
	    when multiple clusters report to the same database. Because of limi-
	    tations  in  some databases, any upper case letters in the name will
	    be silently mapped to lower case. In order to avoid confusion, it is
	    recommended that the name be lower case. The cluster name must be 40
	    characters or less in order to comply with the limit on the  maximum
	    length for table names in MySQL/MariaDB.

     CommunicationParameters
	    Comma-separated options identifying communication options.

	    block_null_hash
			   Require  all Slurm authentication tokens to include a
			   newer (20.11.9 and 21.08.8) payload that provides  an
			   additional  layer  of security against credential re-
			   play attacks. This option should only be enabled once
			   all	 Slurm	 daemons   have   been	  upgraded    to
			   20.11.9/21.08.8  or	newer,	and  all  jobs that were
			   started before the upgrade have been completed.

	    disable_http   Prevent slurmctld and slurmd from responding  to  in-
			   coming HTTP requests.

	    host_unreach_retry_count=When a node tries to connect() to another
	    node, connect() may return an error
			   with EHOSTUNREACH if the host is unreachable. If this
			   parameter  is  set,	this is the number of times that
			   Slurm will retry making that connection.  Slurm  will
			   wait  for  500  milliseconds in between each try. The
			   default for this parameter is zero  (Slurm  will  not
			   retry if EHOSTUNREACH is returned).

	    DisableIPv4    Disable  IPv4  only	operation  for all slurm daemons
			   (except slurmdbd). This should also be  set	in  your
			   slurmdbd.conf file.

	    EnableIPv6	   Enable  using  IPv6	addresses  for all slurm daemons
			   (except slurmdbd). When using both IPv4 and IPv6, ad-
			   dress  family  preferences  will  be  based	on  your
			   /etc/gai.conf  file.  This should also be set in your
			   slurmdbd.conf file.

	    getnameinfo_cache_timeout
			   When munge is used as AuthType slurmctld makes use of
			   getnameinfo to obtain the hostname  from  IP  address
			   stored  in  munge credential. This parameter controls
			   the number of seconds slurmctld should keep the IP to
			   hostname resolution. When set to 0 cache is disabled.
			   The default value is 60.

	    keepaliveinterval=Specifies the interval, in seconds, between
	    keepalive probes on idle
			   connections.  This affects connections  between  srun
			   and its slurmstepd process as well as all connections
			   to  the  slurmdbd.	The default is to use the system
			   default settings.

	    keepaliveprobes=Specifies the number of unacknowledged keepalive
	    probes sent before considering
			   the connection broken.  This affects connections  be-
			   tween  srun and its slurmstepd process as well as all
			   connections to the slurmdbd.  The default is  to  use
			   the system default settings.

	    keepalivetime=Specifies how long, in seconds,  before a connection
	    is marked as needing a
			   keepalive  probe as well as how long to delay closing
			   a connection to process messages still in the  queue.
			   This  affects connections between srun and its slurm-
			   stepd process as well as all connections to the slur-
			   mdbd.  Longer values can be used to improve reliabil-
			   ity of communications in the event of  network  fail-
			   ures.  The default is for keepalive to be disabled.

	    NoCtldInAddrAny
			   Used to directly bind to the address of what the node
			   resolves  to running the slurmctld instead of binding
			   messages to any address on the node, which is the de-
			   fault.

	    NoInAddrAny    Used to directly bind to the address of what the node
			   resolves to instead of binding messages  to	any  ad-
			   dress  on the node which is the default.  This option
			   is for all daemons/clients except for the slurmctld.

     CompleteWait
	    The time to wait, in seconds, when any job in the cluster is in  the
	    COMPLETING	state before any additional jobs are scheduled. This pa-
	    rameter is evaluated at the cluster scheduling level, not per  node.
	    This  is to attempt to keep jobs on nodes that were recently in use,
	    with the goal of preventing fragmentation.	If set to zero,  pending
	    jobs  will be started as soon as possible.	Since a COMPLETING job's
	    resources are released for use by other jobs as soon as  the  Epilog
	    completes  on  each  individual  node, this can result in very frag-
	    mented resource allocations.  To provide jobs with the  minimum  re-
	    sponse  time, a value of zero is recommended (no waiting).	To mini-
	    mize fragmentation of resources, a value equal to KillWait plus  two
	    is recommended.  In that case, setting KillWait to a small value may
	    be	beneficial.   The default value of CompleteWait is zero seconds.
	    The value may not exceed 65533.

	    This parameter does not override the fact that nodes in the COMPLET-
	    ING state are not eligible for job scheduling. Nodes will not accept
	    new job placement until their Epilog completes and	they  leave  the
	    COMPLETING state, even if CompleteWait is set to zero.

	    NOTE:  Setting  reduce_completing_frag  affects the behavior of Com-
	    pleteWait.

     CpuFreqDef
	    Default CPU governor to use when running a job step if  it	has  not
	    been explicitly set with the --cpu-freq option. Acceptable values at
	    present include one of the following governors:

	    Conservative  attempts to use the Conservative CPU governor

	    OnDemand	  attempts to use the OnDemand CPU governor

	    Performance   attempts to use the Performance CPU governor

	    PowerSave	  attempts to use the PowerSave CPU governor

	    Default: Use system default. No attempt to set the governor is made
	    if
			  --cpu-freq option has not been specified.

     CpuFreqGovernors
	    List  of  CPU frequency governors allowed to be set with the salloc,
	    sbatch, or srun option --cpu-freq.	Acceptable values at present in-
	    clude:

	    Conservative  attempts to use the Conservative CPU governor

	    OnDemand	  attempts to use the OnDemand CPU governor  (a  default
			  value)

	    Performance   attempts  to	use  the Performance CPU governor (a de-
			  fault value)

	    PowerSave	  attempts to use the PowerSave CPU governor

	    SchedUtil	  attempts to use the SchedUtil CPU governor

	    UserSpace	  attempts to use the UserSpace CPU governor (a  default
			  value)

	    Default: OnDemand, Performance and UserSpace.

     CredType
	    The  cryptographic	signature tool to be used in the creation of job
	    step credentials.  Acceptable values at present are:

	    cred/munge
		   Indicates that Munge is to be used (default).

	    cred/slurm
		   Use Slurm's internal credential format.

     DataParserParameters=<data_parser>
	    Apply default value for data_parser plugin parameters. See --json or
	    --yaml arguments in sacct(1), scontrol(1), sinfo(1), squeue(1), sac-
	    ctmgr(1), sdiag(1), and sshare(1).
	    Default: Latest data_parser plugin version with no flags selected.

     DebugFlags
	    Defines specific subsystems which should provide more detailed event
	    logging.  Multiple subsystems can be specified  with  comma  separa-
	    tors.   Most  DebugFlags  will result in additional logging messages
	    for the identified subsystems if SlurmctldDebug is at  'verbose'  or
	    higher.  More logging may impact performance.

	    NOTE:  You	can also set debug flags by having the SLURM_DEBUG_FLAGS
	    environment variable defined with the desired flags when the process
	    (client command, daemon, etc.) is started.	The environment variable
	    takes precedence over the setting in the slurm.conf.

	    Valid subsystems available include:

	    Accrue	     Accrue counters accounting details

	    Agent	     RPC agents (outgoing RPCs from Slurm daemons)

	    AuditRPCs	     For all inbound RPCs to slurmctld, print the origi-
			     nating address, authenticated user,  and  RPC  type
			     before the connection is processed.

	    AuditTLS	     Print TLS certificates being used

	    Backfill	     Backfill scheduler details

	    BackfillMap      Backfill scheduler to log a very verbose map of re-
			     served  resources	through time. Combine with Back-
			     fill for a verbose and complete view of  the  back-
			     fill scheduler's work.

	    BurstBuffer      Burst Buffer plugin

	    Cgroup	     Cgroup details

	    ConMgr	     Connection manager details

	    CPU_Bind	     CPU binding details for jobs and steps

	    CpuFrequency     Cpu  frequency details for jobs and steps using the
			     --cpu-freq option.

	    Data	     Generic data structure details.

	    DBD_Agent	     RPC agent (outgoing RPCs to the DBD)

	    Dependency	     Job dependency debug info

	    Elasticsearch    Elasticsearch debug  info	(deprecated).  Alias  of
			     JobComp.

	    Energy	     AcctGatherEnergy debug info

	    Federation	     Federation scheduling debug info

	    Gres	     Generic resource details

	    Hetjob	     Heterogeneous job details

	    Gang	     Gang scheduling details

	    GLOB_SILENCE     Do not display error message of glob "*" symbols in
			     conf files.

	    JobAccountGather
			     Common  job  account  gathering details (not plugin
			     specific).

	    JobComp	     Job Completion plugin details

	    License	     License management details

	    Namespace	     Namespace plugin details

	    Metrics	     Metrics plugin details

	    Network	     Network details. Warning: activating this flag  may
			     cause logging of passwords, tokens or other authen-
			     tication credentials.

	    NetworkRaw	     Dump  raw hex values of key Network communications.
			     Warning: This flag will cause very verbose logs and
			     may cause logging of passwords, tokens or other au-
			     thentication credentials.

	    NodeFeatures     Node Features plugin debug info

	    NO_CONF_HASH     Do not log when the slurm.conf files differ between
			     Slurm daemons

	    Power	     Power management plugin and power save (suspend/re-
			     sume programs) details

	    Priority	     Job prioritization

	    Profile	     AcctGatherProfile plugins details

	    Protocol	     Communication protocol details

	    Reservation      Advanced reservations

	    Route	     Message forwarding debug info

	    Script	     Debug info regarding any script  called  by  Slurm.
			     This  includes  slurmctld	executed scripts such as
			     PrologSlurmctld and EpilogSlurmctld.

	    SelectType	     Resource selection plugin

	    Steps	     Slurmctld resource allocation for job steps

	    Switch	     Switch plugin

	    thread	     Thread and work management.

	    TLS 	     TLS plugin

	    TraceJobs	     Trace jobs in slurmctld. It will print detailed job
			     information including state, job ids and  allocated
			     nodes counter.

	    Triggers	     Slurmctld triggers

     DefCpuPerGPU
	    Default  count  of	CPUs  allocated per allocated GPU. This value is
	    used  only	if  the   job	didn't	 specify   --cpus-per-task   and
	    --cpus-per-gpu.

     DefMemPerCPU
	    Default  real  memory  size  available  per  usable allocated CPU in
	    mebibytes.	Used to avoid over-subscribing memory and  causing  pag-
	    ing.   DefMemPerCPU would generally be used if individual processors
	    are allocated to jobs  (SelectType=select/cons_tres).   The  default
	    value  is  0  (unlimited).	Also see DefMemPerGPU, DefMemPerNode and
	    MaxMemPerCPU.  DefMemPerCPU, DefMemPerGPU and DefMemPerNode are  mu-
	    tually exclusive.

	    NOTE:  This  applies  to  usable allocated CPUs in a job allocation.
	    This is important when more than one thread per core is  configured.
	    If	a  job	requests --threads-per-core with fewer threads on a core
	    than exist	on  the  core  (or  --hint=nomultithread  which  implies
	    --threads-per-core=1),  the  job  will  be unable to use those extra
	    threads on the core and those threads will not be  included  in  the
	    memory per CPU calculation. But if the job has access to all threads
	    on	the  core,  those threads will be included in the memory per CPU
	    calculation even  if  the  job  did  not  explicitly  request  those
	    threads.

	    In the following examples, each core has two threads.

	    In this first example, two tasks can run on separate hyperthreads in
	    the same core because --threads-per-core is not used. The third task
	    uses  both	threads of the second core. The allocated memory per cpu
	    includes all threads:

	    $ salloc -n3 --mem-per-cpu=100
	    salloc: Granted job allocation 17199
	    $ sacct -j $SLURM_JOB_ID -X -o jobid%7,reqtres%35,alloctres%35
	      JobID				ReqTRES 			  AllocTRES
	    ------- ----------------------------------- -----------------------------------
	      17199	billing=3,cpu=3,mem=300M,node=1     billing=4,cpu=4,mem=400M,node=1

	    In this second example, because of --threads-per-core=1,  each  task
	    is	allocated  an entire core but is only able to use one thread per
	    core. Allocated CPUs includes all threads on each core. However, al-
	    located memory per cpu includes only the usable thread in each core.

	    $ salloc -n3 --mem-per-cpu=100 --threads-per-core=1
	    salloc: Granted job allocation 17200
	    $ sacct -j $SLURM_JOB_ID -X -o jobid%7,reqtres%35,alloctres%35
	      JobID				ReqTRES 			  AllocTRES
	    ------- ----------------------------------- -----------------------------------
	      17200	billing=3,cpu=3,mem=300M,node=1     billing=6,cpu=6,mem=300M,node=1

     DefMemPerGPU
	    Default real memory size available per allocated GPU  in  mebibytes.
	    The  default  value is 0 (unlimited).  Please note a best effort at-
	    tempt is made to predict which GPUs on the system will be used,  but
	    this  could  change  between  job submission and start time, causing
	    MaxMemPerNode to potentially not work as expected for  heterogeneous
	    jobs.   Also  see  DefMemPerCPU  and  DefMemPerNode.   DefMemPerCPU,
	    DefMemPerGPU and DefMemPerNode are mutually exclusive.

     DefMemPerNode
	    Default real memory size available per allocated node in  mebibytes.
	    Used  to  avoid over-subscribing memory and causing paging.  DefMem-
	    PerNode would generally be used if whole nodes are allocated to jobs
	    (SelectType=select/linear) and resources are over-subscribed  (Over-
	    Subscribe=yes  or OverSubscribe=force).  The default value is 0 (un-
	    limited).  Also see  DefMemPerCPU,	DefMemPerGPU  and  MaxMemPerCPU.
	    DefMemPerCPU, DefMemPerGPU and DefMemPerNode are mutually exclusive.

     DependencyParameters
	    Multiple options may be comma separated.

	    disable_remote_singleton
		   By  default, when a federated job has a singleton dependency,
		   each cluster in the federation must clear the  singleton  de-
		   pendency  before the job's singleton dependency is considered
		   satisfied. Enabling this option means that  only  the  origin
		   cluster must clear the singleton dependency. This option must
		   be set in every cluster in the federation.

	    kill_invalid_depend
		   If  a job has an invalid dependency and it can never run ter-
		   minate it and set its state to be JOB_CANCELLED.  By  default
		   the job stays pending with reason DependencyNeverSatisfied.

	    max_depend_depth=Maximum number of jobs to test for a circular job
	    dependency. Stop testing
		   after  this	number of job dependencies have been tested. The
		   default value is 10 jobs.

     DisableRootJobs
	    If set to "YES" then user root will be prevented  from  running  any
	    jobs.   The default value is "NO", meaning user root will be able to
	    execute jobs.  DisableRootJobs may also be set by partition.

     EioTimeout
	    The number of seconds srun waits for slurmstepd to close the  TCP/IP
	    connection	used to relay data between the user application and srun
	    when the user application terminates. The default value is	60  sec-
	    onds.  May not exceed 65533.

     EnforcePartLimits
	    Controls whether partition limits are enforced when a job is submit-
	    ted  to  the  cluster. The partition limits being considered by this
	    option are its  configured	MaxMemPerCPU,  MaxMemPerNode,  MinNodes,
	    MaxNodes, MaxTime, AllocNodes, AllowAccounts, AllowGroups, AllowQOS,
	    and  QOS usage threshold. It also considers if the job requests more
	    nodes than exist in the partition. If set, then a job  and	job  QOS
	    cannot be submitted that exceed partition limits.

	    ALL    Jobs  which	exceed the number of nodes in a partition and/or
		   any of its configured limits will be rejected  at  submission
		   time. If the job is submitted to multiple partitions, the job
		   must satisfy the limits on all the requested partitions.

	    ANY    Jobs  will be accepted if they satisfy the limits on at least
		   one of the requested partitions.

	    NO	   Partition limits will not be enforced  at  submit  time,  but
		   will  still be enforced during scheduling. This includes jobs
		   that request more nodes than exist in any of  the  partition,
		   so  jobs can be submitted to empty partitions. A job that ex-
		   ceeds the limits on	all  requested	partitions  will  remain
		   queued  until  the  partition limits are altered. This is the
		   default.

     Epilog
	    Pathname of a program to execute as user root on every node  when  a
	    user's  job completes (e.g. "/usr/local/slurm/epilog"). If it is not
	    an absolute pathname (i.e. it does not start with a slash), it  must
	    be	relative to the directory containing the slurm.conf file. A glob
	    pattern (See glob (7)) may also be used to run more than one  epilog
	    script  (e.g.  "/etc/slurm/epilog.d/*").   When more than one epilog
	    script is configured, they are executed in reverse alphabetical  or-
	    der  (z-a  -> Z-A -> 9-0). The Epilog script(s) may be used to purge
	    files, disable user login, etc.  By default there is no epilog.  See
	    Prolog and Epilog Scripts for more information.

	    While the Epilog script is running on a  node,  that  node	will  be
	    placed in the COMPLETING state. Nodes in the COMPLETING state do not
	    accept  new  job  allocations, and no jobs will be scheduled on them
	    until the Epilog has finished and the node has returned to an avail-
	    able state.

	    NOTE: It is possible to configure multiple epilog scripts by includ-
	    ing this option on multiple lines.

     EpilogMsgTime
	    The number of microseconds that the  slurmctld  daemon  requires  to
	    process  an  epilog completion message from the slurmd daemons.  For
	    jobs spanning more than 64 nodes, each host delays its message based
	    on its index in the job's node list and  this  value,  preventing  a
	    burst  of simultaneous RPCs that could result in lost messages.  The
	    default value is 2000 microseconds.  The maximum value is 1000000 (1
	    second). Values exceeding the maximum will be reset to the	default.
	    For  a  1000 node job, the default value will spread the epilog com-
	    pletion messages out over two seconds.

     EpilogSlurmctld
	    Fully qualified pathname of a program for the slurmctld  to  execute
	    upon  termination  of a job allocation (e.g.  "/usr/local/slurm/epi-
	    log_controller").  The program executes as SlurmUser, which gives it
	    permission to drain nodes and requeue the job if  a  failure  occurs
	    (See  scontrol(1)).  Exactly what the program does and how it accom-
	    plishes this is completely at the discretion of the system	adminis-
	    trator.   Information  about  the job being initiated, its allocated
	    nodes, etc. are passed to the program using  environment  variables.
	    See Prolog and Epilog Scripts for more information.

	    NOTE: It is possible to configure multiple epilog scripts by includ-
	    ing this option on multiple lines.

     EpilogTimeout
	    The  interval  in  seconds Slurm waits for Epilog before terminating
	    them. The default value is PrologEpilogTimeout.  This  interval  ap-
	    plies  to  the  Epilog  run by slurmd daemon after the job, the Epi-
	    logSlurmctld run by slurmctld daemon, and the  SPANK  plugin  epilog
	    call: slurm_spank_job_epilog.
	    If	the  Epilog  or  slurm_spank_job_epilog  time  out,  the node is
	    drained.  In all cases, errors are logged.

     FairShareDampeningFactor
	    Dampen the effect of exceeding a user or group's fair share of allo-
	    cated resources. Higher values will provides greater ability to dif-
	    ferentiate between exceeding the fair share at high levels	(e.g.  a
	    value  of  1 results in almost no difference between overconsumption
	    by a factor of 10 and 100, while a value of 5 will result in a  sig-
	    nificant difference in priority).  The default value is 1.

     FederationParameters
	    Used  to  define  federation  options. Multiple options may be comma
	    separated.

	    fed_display
		   If set, then the client status commands (e.g. squeue,  sinfo,
		   sprio,  etc.) will display information in a federated view by
		   default. This option is functionally equivalent to using  the
		   --federation  options on each command. Use the client's --lo-
		   cal option to override the federated view  and  get	a  local
		   view of the given cluster.

		   Allow  client  commands to use the --cluster option even when
		   the slurmdbd is  down  by  retrieving  cluster  records  from
		   slurmctld instead.

     FirstJobId
	    The  job id to be used for the first job submitted to Slurm.  Job id
	    values generated will incremented by  1  for  each	subsequent  job.
	    Value  must  be  larger  than  0.  The default value is 1.	Also see
	    MaxJobId

     GresTypes
	    A comma-delimited list of generic  resources  to  be  managed  (e.g.
	    GresTypes=gpu,mps).   These  resources  may  have an associated GRES
	    plugin of the same	name  providing  additional  functionality.   No
	    generic  resources are managed by default.	Ensure this parameter is
	    consistent across all nodes in the cluster for proper operation.

     GroupUpdateForce
	    If set to a non-zero value, then information about which  users  are
	    members of groups allowed to use a partition will be updated period-
	    ically, even when there have been no changes to the /etc/group file.
	    If	set to zero, group member information will be updated only after
	    the /etc/group file is updated.  The default value is 1.   Also  see
	    the GroupUpdateTime parameter.

     GroupUpdateTime
	    Controls how frequently information about which users are members of
	    groups allowed to use a partition will be updated, and how long user
	    group  membership  lists will be cached.  The time interval is given
	    in seconds with a default value of 600 seconds.   A  value	of  zero
	    will  prevent  periodic  updating  of  group membership information.
	    Also see the GroupUpdateForce parameter.

     GpuFreqDef=[<type]=value>[,<type=value>]
	    Default GPU frequency to use when running a job step if it	has  not
	    been explicitly set using the --gpu-freq option.  This option can be
	    used  to independently configure the GPU and its memory frequencies.
	    There is no default value. If unset, no attempt to	change	the  GPU
	    frequency  is made if the --gpu-freq option has not been set.  After
	    the job is completed, the frequencies of all affected GPUs	will  be
	    reset  to  the highest possible values.  In some cases, system power
	    caps may override the requested values.  The field type can be "mem-
	    ory".  If type is not specified, the GPU frequency is implied.   The
	    value field can either be "low", "medium", "high", "highm1" or a nu-
	    meric  value  in megahertz (MHz).  If the specified numeric value is
	    not possible, a value as close as possible will be used.  See  below
	    for  definition  of  the  values.	Examples of use include "GpuFre-
	    qDef=medium,memory=high and "GpuFreqDef=450".

	    Supported value definitions:

	    low       the lowest available frequency.

	    medium    attempts to set a frequency in the middle of the available
		      range.

	    high      the highest available frequency.

	    highm1    (high minus one) will select the	next  highest  available
		      frequency.

     HashPlugin
	    Identifies the type of hash plugin to use for network communication.
	    Acceptable values include:

	    hash/k12	   Hashes  are	generated  by the KangorooTwelve crypto-
			   graphic hash function.  This is the default.

	    hash/sha3	   Hashes are generated by the SHA-3 cryptographic  hash
			   function.

	    NOTE:  Make  sure  that  HashPlugin  has  the  same  value	both  in
	    slurm.conf and in slurmdbd.conf.

     HealthCheckInterval
	    The interval in seconds between  executions  of  HealthCheckProgram.
	    The default value is zero, which disables execution.

     HealthCheckNodeState
	    Identify  what  node  states  should execute the HealthCheckProgram.
	    Multiple state values may be specified with a comma  separator,  ex-
	    cept  for  the *_ONLY states. The default value is ANY to execute on
	    nodes in any state.

	    ALLOC	Run on nodes in the ALLOC state (all CPUs allocated).

	    ANY 	Run on nodes in any state.

	    CYCLE	Rather than running the  health  check	program  on  all
			nodes  at  the	same  time, cycle through running on all
			compute nodes through the course of  the  HealthCheckIn-
			terval.  May be combined with the various node state op-
			tions.

	    IDLE	Run on nodes in the IDLE state.

	    NONDRAINED_IDLE
			Run on nodes that are in the IDLE state and not DRAINED.

	    MIXED	Run on nodes in the MIXED  state  (some  CPUs  idle  and
			other CPUs allocated).

	    REBOOT_ONLY
			Run only after a node reboot. This state is mutually ex-
			clusive with any other state.

	    START_ONLY	Run  only  at slurmd startup. This state is mutually ex-
			clusive with any other state.

     HealthCheckProgram
	    Fully qualified pathname of a script to execute as user root period-
	    ically on all compute nodes  that  are  not  in  the  NOT_RESPONDING
	    state.  This  program may be used to verify the node is fully opera-
	    tional and DRAIN the node or send email if a  problem  is  detected.
	    Any  action  to be taken must be explicitly performed by the program
	    (e.g.  execute  "scontrol  update  NodeName=foo   State=drain   Rea-
	    son=tmp_file_system_full"  to drain a node).  The execution interval
	    is controlled using the HealthCheckInterval  parameter.   Note  that
	    the  HealthCheckProgram  will  be  executed  at the same time on all
	    nodes to minimize its impact upon parallel programs.   This  program
	    will  be killed if it does not terminate normally within 60 seconds.
	    This program will also be executed when the slurmd daemon  is  first
	    started  and  before  it  registers  with  the  slurmctld daemon. If
	    HealthCheckNodeState is START_ONLY or REBOOT_ONLY, it will	be  exe-
	    cuted  only  when  the slurmd daemon is first started or when slurmd
	    reports back after a reboot.  By default, no program  will	be  exe-
	    cuted.

     HealthCheckTimeout
	    Time  in  seconds that HealthCheckProgram is allowed to run. The de-
	    fault  value  is  60.  HealthCheckTimeout  should	be   less   than
	    HealthCheckInterval;  an  error is logged otherwise. A value of 0 is
	    not allowed and is reset to default. The maximum value is 65535.

     HttpParserType
	    Specify the http_parser implementation that will be used. Default is
	    http_parser/libhttp_parser	if  found,   otherwise	 http_parser/ll-
	    http_parser.  Acceptable values at present:

	    http_parser/libhttp_parser
		   Use the libhttp_parser based plugin.

	    http_parser/llhttp_parser
		   Use the llhttp based plugin.

     InactiveLimit
	    The  interval,  in seconds, after which a non-responsive job alloca-
	    tion command (e.g. srun or salloc) will result in the job being ter-
	    minated. If the node on which the command is executed fails  or  the
	    command  abnormally  terminates, this will terminate its job alloca-
	    tion.  This option has no effect upon batch jobs.	When  setting  a
	    value,  take into consideration that a debugger using srun to launch
	    an application may leave the srun command in a stopped state for ex-
	    tended periods of time.  This limit is ignored for jobs  running  in
	    partitions with the RootOnly flag set (the scheduler running as root
	    will  be  responsible  for the job).  The default value is unlimited
	    (zero) and may not exceed 65533 seconds.

     InteractiveStepOptions
	    When  LaunchParameters=use_interactive_step  is  enabled,  launching
	    salloc  will  automatically  start	an  srun  process  with Interac-
	    tiveStepOptions to launch a terminal on a node in  the  job  alloca-
	    tion.   The  default  value  is  "--interactive --preserve-env --pty
	    $SHELL".  The "--interactive" option is intentionally not documented
	    in the srun man page. It is  meant	only  to  be  used  in	Interac-
	    tiveStepOptions  in  order to create an "interactive step" that will
	    not consume resources so that other steps may run in  parallel  with
	    the interactive step.

     JobAcctGatherType
	    The JobAcctGather plugin collects memory, cpu, io, interconnect, en-
	    ergy and gpu usage information at the task level, depending on which
	    plugins  are  configured  in  Slurm. This parameter will control how
	    some of these metrics will be collected. Unset by default.

	    Configurable values at present are:

	    jobacct_gather/cgroup (recommended)
				Collect cpu and memory statistics by reading the
				task's cgroup directory  interfaces  (e.g.  mem-
				ory.stat,  cpu.stat)  by  issuing  a call to the
				configured CgroupPlugin (see "man cgroup.conf").
				This	mechanism     ignores	  JobAcctGather-
				Params=UsePSS  or  NoShared since these are used
				only when reading memory  usage  from  the  proc
				filesystem.

	    jobacct_gather/linux
				Collect  cpu  and  memory  statistics by reading
				procfs. The plugin will take all the pids of the
				task  and   for   each	 of   them   will   read
				/proc/<pid>/stats. If UsePSS is set it will also
				read /proc/<pid>/smaps, and if NoShare is set it
				will  also  read /proc/<pid>/statm (see JobAcct-
				GatherParams for more information).

				This plugin carries  a	performance  penalty  on
				jobs  with  a  large number of spawned processes
				since it needs to iterate over all the task pids
				and aggregate the stats into one  single  metric
				for  the  ppid, and then these values need to be
				aggregated to the task stats.

	    NOTE: Changing the plugin type when jobs are running in the  cluster
	    is	possible. The already running steps will keep using the previous
	    plugin mechanism, while new steps will use the new mechanism.

     JobAcctGatherFrequency
	    The job accounting and profiling sampling intervals,  specified  for
	    each  data	type. Multiple comma-separated <datatype>=<interval> in-
	    tervals may be specified. If  an  interval	is  provided  without  a
	    datatype,  it  will  be  assigned  to  the	task datatype. Supported
	    datatypes are as follows:

	    Affects accounting and profiling:

			task=<interval>
			       sampling interval in seconds for  task  usage  by
			       the jobacct_gather plugins and for task profiling
			       by  the	acct_gather_profile plugin.  Defaults to
			       30.
			       If this interval is 0 (disabled), accounting  in-
			       formation  is  collected only at job termination,
			       which reduces Slurm interference  with  the  job,
			       but  also  means  that the statistics about a job
			       are only derived from a single sample  and  don't
			       reflect the average or maximum of several samples
			       throughout the life of the job.

	    Affects profiling only:

			energy=<interval>
			       sampling interval in seconds for energy profiling
			       using  the acct_gather_energy plugin. Defaults to
			       0 (disabled).

			network=<interval>
			       sampling interval in seconds for infiniband  pro-
			       filing using the acct_gather_interconnect plugin.
			       Defaults to 0 (disabled).

			filesystem=<interval>
			       sampling  interval in seconds for filesystem pro-
			       filing using the  acct_gather_filesystem  plugin.
			       Defaults to 0 (disabled).

	    Smaller  (non-zero)  values  have  a greater impact upon job perfor-
	    mance, but a value of 30 seconds is not likely to be noticeable  for
	    applications having less than 10,000 tasks.
	    Users  can	independently  override each interval on a per job basis
	    using the --acctg-freq option when submitting the job.
	    This value should be lower or equal  to  EnergyIPMIFreq  when  using
	    acct_gather_energy/ipmi or xcc plugins as otherwise it will unneces-
	    sarily get repeated values on successive polls.

     JobAcctGatherParams
	    Arbitrary  parameters for the job account gather plugin.  Acceptable
	    values at present include:

	    DisableGPUAcct	Do not do accounting of GPU usage and  skip  any
				gpu driver library call. This parameter can help
				to  improve  performance  if  the GPU driver re-
				sponse is slow.

	    no_file_cache	Filesystem-backed memory (active_file and  inac-
				tive_file)  will be subtracted from the reported
				memory. This disables the use of the memory.peak
				interface, which can result in MaxRSS failing to
				record short  memory  spikes.	Only  compatible
				with cgroup/v2 plugin.

	    NoShared		Exclude shared memory from RSS. This option can-
				not  be  used with UsePSS.  Only compatible with
				jobacct_gather/linux plugin.

	    OverMemoryKill	Kill processes that are being  detected  to  use
				more  memory  than requested by steps every time
				accounting information is gathered by the JobAc-
				ctGather plugin.  This parameter should be  used
				with  caution because a job exceeding its memory
				allocation may affect other processes and/or ma-
				chine health.

				NOTE: If available, it is recommended  to  limit
				memory	by  enabling task/cgroup as a TaskPlugin
				and making use of ConstrainRAMSpace=yes  in  the
				cgroup.conf  instead of using this JobAcctGather
				mechanism for memory enforcement. Using JobAcct-
				Gather is polling based and there is a delay be-
				fore a job is killed, which could lead to system
				Out of Memory events.

				NOTE: When using OverMemoryKill, if the combined
				memory used by all the processes in a  step  ex-
				ceeds  the memory limit, the entire step will be
				killed/cancelled by  the  JobAcctGather  plugin.
				This  differs  from the behavior when using Con-
				strainRAMSpace, where processes in the step will
				be killed, but the step  will  be  left  active,
				possibly with other processes left running.

	    UsePss		Use  PSS  value instead of RSS to calculate real
				usage of memory. The PSS value will be saved  as
				RSS.  This  option cannot be used with NoShared.
				Only compatible with  jobacct_gather/linux  plu-
				gin.

     JobCompHost
	    The  name  of the machine hosting the job completion database.  Only
	    used for database type storage plugins, ignored otherwise.	Can be a
	    UNIX socket, e.g., "unix:/path/to/socket".

     JobCompLoc
	    This option sets a string which has different meanings depending  on
	    JobCompType:

	    If jobcomp/elasticsearch:
		   Instructs this plugin to send the finished job records infor-
		   mation  to  the  Elasticsearch server URL endpoint (including
		   the port number and the target index) configured in this  op-
		   tion.   This   string  should  typically  take  the	form  of
		   <host>:<port>/<target>/_doc. There is no  default  value  for
		   JobCompLoc when this plugin is enabled.

		   NOTE: Refer to <https://slurm.schedmd.com/elasticsearch.html>
		   for more information.

	    If jobcomp/filetxt:
		   Instructs this plugin to send the finished job records infor-
		   mation  to  a  file	configured  in	this option. This string
		   should represent an absolute path  to  a  file.  The  default
		   value for this plugin is /var/log/slurm_jobcomp.log.

	    If jobcomp/kafka:
		   When  this  plugin  is  configured,	finished (and optionally
		   start running) job records information is  sent  to	a  Kafka
		   server.  The plugin makes use of librdkafka. This string rep-
		   resents an absolute path to a file containing key=value pairs
		   configuring the library behavior.  For  the	plugin	to  work
		   properly,  this  file  needs  to  exist  and  least the boot-
		   strap.servers librdkafka property needs to be  configured  in
		   it. There is no default value for JobCompLoc when this plugin
		   is enabled.

		   NOTE:  For a full list of librdkafka properties, please refer
		   to the library documentation. You  can  also  view  the  job-
		   comp_kafka	    page       for	 more	    information:
		   <https://slurm.schedmd.com/jobcomp_kafka.html>

		   NOTE: The target Kafka topic(s) and other  plugin  parameters
		   can be configured via JobCompParams.

	    If jobcomp/lua:
		   This  option  is  ignored  in  this	plugin. The finished job
		   record is processed by a  hardcoded	jobcomp.lua  script  ex-
		   pected  to  be  located  in	the same location of slurm.conf.
		   There is no default value for JobCompLoc when this plugin  is
		   enabled.

	    If jobcomp/mysql:
		   Instructs this plugin to send the finished job records infor-
		   mation  to  a  database  name configured in this option. This
		   string should represent a database name.  The  default  value
		   for this plugin is slurm_jobcomp_db.

	    If jobcomp/script:
		   The finished job record information is made available via en-
		   vironment  variables and processed by a script with name con-
		   figured by this option. This string should represent  a  path
		   to  a  script.  There is no default value for JobCompLoc when
		   this plugin is enabled. It needs to be explicitly  configured
		   or the plugin will fail to initialize.

     JobCompParams
	    Pass  arbitrary text string to job completion plugin.  Also see Job-
	    CompType.

	    Optional comma-separated list for jobcomp/elasticsearch:

		   send_comment
			  Sends the job comment as part of jobcomp messages.

		   send_script
			  Sends the job script as part of jobcomp messages.

	    Optional comma-separated list for jobcomp/kafka:

		   enable_job_start
			  Instruct the jobcomp/kafka plugin to send a subset  of
			  the  job  record  fields  to the topic_job_start Kafka
			  topic when a job first starts running.

			  NOTE: The writing when the  job  finishes  (historical
			  purpose  of  the  plugin) is always enabled by default
			  and can't be disabled.

			  NOTE: The subset of fields for  job  start  events  is
			  slightly  smaller  than  those  sent when the job fin-
			  ishes.

		   flush_timeout=<milliseconds>
			  Maximum time (in milliseconds) to wait  for  all  out-
			  standing  produce  requests,	et.al,	to be completed.
			  This is passed as a timeout argument to the librdkafka
			  flush API function, called on plugin termination. This
			  is done prior to destroying the producer  instance  to
			  make	sure  all  queued and in-flight produce requests
			  are completed before	terminating.   For  non-blocking
			  calls,  set  to 0.  To wait indefinitely for an event,
			  set to -1 (not recommended, since this  is  called  on
			  plugin  fini and could block slurmctld graceful termi-
			  nation).  Accepted values  are  [-1,2147483647].   De-
			  faults to 500 (milliseconds).

		   poll_interval=<seconds>
			  Seconds between calls to librdkafka API poll function,
			  which  polls the provided Kafka handle for events. The
			  plugin spawns a separate thread to perform  this  call
			  at  the  configured  interval.   Accepted  values  are
			  [0,4294967295].  Defaults to 2 (seconds).

		   requeue_on_msg_timeout
			  Instruct the delivery report callback to requeue  mes-
			  sages  that failed delivery because their time waiting
			  for successful delivery reached the  librdkafka  prop-
			  erty	message.timeout.ms.   Defaults to not set (don't
			  requeue and thus discard these messages).

		   send_comment
			  Sends the job comment as part of jobcomp messages.

		   send_script
			  Sends the job script as part of jobcomp messages.

		   topic=<string>
			  Target Kafka topic to send messages to when a job fin-
			  ishes.  Defaults to ClusterName.

		   topic_job_start=<string>
			  Target Kafka topic to send  messages	to  when  a  job
			  starts running.  Defaults to <ClusterName>-job-start.

			  NOTE:  It  is  advisable  that job start running event
			  records be sent to a different Kafka	topic  than  the
			  topic configured for job finish event records.

	    Optional comma-separated list for jobcomp/mysql:

		   token_duration
			  Duration  in seconds to cache generated database pass-
			  words before requesting  a  new  one	from  the  Stor-
			  agePassScript.  Typically  the  token  should  refresh
			  prior to  actual  expiration;  upon  token  generation
			  failure  the	cached token will continue to be used to
			  avoid transient generation failures from causing  con-
			  nection  failures.   Default	value  is 300 seconds (5
			  minutes).

     JobCompPass
	    The password used to gain access to the database to  store	the  job
	    completion	data.	Only used for database type storage plugins, ig-
	    nored otherwise.

     JobCompPassScript
	    Absolute path to an executable script that generates  ephemeral  au-
	    thentication  tokens for database connections which are used instead
	    of JobCompPass.  The script must output the password/token to stdout
	    and exit with status 0 on success. This allows dynamic password gen-
	    eration, instead of  storing  static  credentials  in  configuration
	    files.  The script must be owned and executable by SlurmUser.

	    Environment variables provided to the script:

	    SLURM_STORAGE_HOSTNAME
		   Database hostname

	    SLURM_STORAGE_PORT
		   Database port number

	    SLURM_STORAGE_USER
		   Database username

	    Expected output format:
	    TOKEN=<authentication_token>

	    The  script must exit with status 0 on success, non-zero on failure.
	    Any output to stderr will be logged as  an	error.	If  there  is  a
	    backup  host  specified,  the script will still be provided the main
	    hostname and the same token is used for both hosts.

     JobCompPort
	    The listening port of the job completion database server.  Only used
	    for database type storage plugins, ignored otherwise.

     JobCompType
	    The job completion logging mechanism type. Unset  by  default.   Ac-
	    ceptable values at present include:

	    jobcomp/elasticsearch
		   Upon job completion, a record of the job should be written to
		   an  Elasticsearch server, specified by the JobCompLoc parame-
		   ter.
		   NOTE: More information is available at the Slurm web  site  (
		   https://slurm.schedmd.com/elasticsearch.html ).

	    jobcomp/filetxt
		   Upon job completion, a record of the job should be written to
		   a text file, specified by the JobCompLoc parameter.

	    jobcomp/kafka
		   Upon  job  completion  (or  optionally  job start running), a
		   record of the job should be sent to a Kafka server, specified
		   by the file path referenced in JobCompLoc and/or using  other
		   JobCompParams.

	    jobcomp/lua
		   Upon  job completion, a record of the job should be processed
		   by the jobcomp.lua script, located in the default script  di-
		   rectory  (typically	the subdirectory etc of the installation
		   directory.

	    jobcomp/mysql
		   Upon job completion, a record of the job should be written to
		   a MySQL or MariaDB database, specified by the JobCompLoc  pa-
		   rameter.

	    jobcomp/script
		   Upon job completion, a script specified by the JobCompLoc pa-
		   rameter  is to be executed with environment variables provid-
		   ing the job information.

     JobCompUser
	    The user account for accessing the job  completion	database.   Only
	    used for database type storage plugins, ignored otherwise.

     JobFileAppend
	    This  option controls what to do if a job's output or error file ex-
	    ist when the job is started.  If JobFileAppend is set to a value  of
	    1,	then append to the existing file.  By default, any existing file
	    is truncated.

     JobRequeue
	    This option controls the default ability for batch jobs  to  be  re-
	    queued.   Jobs may be requeued explicitly by a system administrator,
	    after node failure, or upon preemption by a higher priority job.  If
	    JobRequeue is set to a value of 1, then batch jobs may  be	requeued
	    unless  explicitly	disabled by the user.  If JobRequeue is set to a
	    value of 0, then batch jobs will not be requeued  unless  explicitly
	    enabled  by  the user.  Use the sbatch --no-requeue or --requeue op-
	    tion to change the default behavior for individual	jobs.	The  de-
	    fault value is 1.

     JobSubmitPlugins
	    These  are intended to be site-specific plugins which can be used to
	    set default job parameters and/or logging events. Slurm can be  con-
	    figured to use multiple job_submit plugins if desired, which must be
	    specified  as a comma-delimited list and will be executed in the or-
	    der listed.
	    e.g. for multiple job_submit plugin configuration:
	    JobSubmitPlugins=lua,require_timelimit
	    Take a look  at  <https://slurm.schedmd.com/job_submit_plugins.html>
	    for further plugin implementation details. No job submission plugins
	    are used by default.  Currently available plugins are:

	    all_partitions	    Set  default  partition to all partitions on
				    the cluster.

	    defaults		    Set default values	for  job  submission  or
				    modify requests.

	    logging		    Log  select  job submission and modification
				    parameters.

	    lua 		    Execute a Lua script implementing site's own
				    job_submit logic. Only one Lua  script  will
				    be	executed.  It  must  be  named "job_sub-
				    mit.lua" and must be located in the  default
				    configuration  directory (typically the sub-
				    directory "etc" of the  installation  direc-
				    tory).  Sample Lua scripts can be found with
				    the Slurm  distribution,  in  the  directory
				    contribs/lua.   Slurmctld	will   fatal  on
				    startup if the configured lua script is  in-
				    valid. Slurm will try to load the script for
				    each job submission. If the script is broken
				    or removed while slurmctld is running, Slurm
				    will  fallback  to the previous working ver-
				    sion of the script.  Warning: slurmctld runs
				    this script while  holding	internal  locks,
				    and  only  a  single copy of this script can
				    run at a time. This blocks most  concurrency
				    in	slurmctld. Therefore, this script should
				    run to completion as quickly as possible.

	    partition		    Set a job's default partition based upon job
				    submission parameters and  available  parti-
				    tions.

	    pbs 		    Translate  PBS  job  submission  options  to
				    Slurm equivalent (if possible).

	    require_timelimit	    Force job submissions  to  specify	a  time-
				    limit.

	    NOTE:  For	examples  of  use  see	the  Slurm  code  in  "src/plug-
	    ins/job_submit" and "contribs/lua/job_submit*.lua" then  modify  the
	    code to satisfy your needs.

     KillOnBadExit
	    If	set  to  1, a step will be terminated immediately if any task is
	    crashed or aborted, as indicated by a non-zero exit code.  With  the
	    default  value  of	0, if one of the processes is crashed or aborted
	    the other processes will  continue	to  run  while	the  crashed  or
	    aborted  process waits. The user can override this configuration pa-
	    rameter by using srun's -K, --kill-on-bad-exit.

     KillWait
	    The interval, in seconds, given to a  job's  processes  between  the
	    SIGTERM  and  SIGKILL  signals upon reaching its time limit.  If the
	    job fails to terminate gracefully in the interval specified, it will
	    be forcibly terminated.  The default value is 30 seconds.  The value
	    may not exceed 65533.

     MaxBatchRequeue
	    Maximum number of times a batch job may  be  automatically	requeued
	    before  being marked as JobHeldAdmin. (Mainly useful when the Sched-
	    ulerParameters option nohold_on_prolog_fail is  enabled.)	The  de-
	    fault value is 5.

     NodeFeaturesPlugins
	    Identifies the plugins to be used for support of node features which
	    can  change  through time. For example, a node which might be booted
	    with various BIOS setting. This is supported through the  use  of  a
	    node's  active_features and available_features information.  Accept-
	    able values at present include:

	    node_features/helpers
		   Used to report and modify features on nodes	using  arbitrary
		   scripts  or programs.  See helpers.conf man page for more in-
		   formation: https://slurm.schedmd.com/helpers.conf.html

     LaunchParameters
	    Identifies options to the job launch plugin.  Acceptable values  in-
	    clude:

	    batch_step_set_cpu_freq
				    Set  the  cpu  frequency  for the batch step
				    from given --cpu-freq, or slurm.conf CpuFre-
				    qDef, option. By default only steps  started
				    with  srun will utilize the cpu freq setting
				    options.

				    NOTE: If you are using srun to  launch  your
				    steps  inside  a batch script (advised) this
				    option will create a situation where you may
				    have multiple agents setting the cpu_freq as
				    the batch step usually runs on the same  re-
				    sources  one  or more steps the sruns in the
				    script will create.

	    interactive_step_set_cpu_freq
				    Set the cpu frequency  for	the  interactive
				    step  from	given  --cpu-freq, or slurm.conf
				    CpuFreqDef, options.

	    cray_net_exclusive	    Allow jobs on a Cray  XC  cluster  exclusive
				    access  to	network  resources.  This should
				    only be set on clusters providing  exclusive
				    access to each node to a single job at once,
				    and not using parallel steps within the job,
				    otherwise resources on the node can be over-
				    subscribed.

	    enable_nss_slurm	    Permits  passwd  and  group resolution for a
				    job to be serviced by slurmstepd rather than
				    requiring a lookup from a network based ser-
				    vice.				     See
				    https://slurm.schedmd.com/nss_slurm.html for
				    more information.

	    lustre_no_flush	    If	set  on  a  Cray XC cluster, then do not
				    flush the Lustre cache on job  step  comple-
				    tion. This setting will only take effect af-
				    ter reconfiguring, and will only take effect
				    for newly launched jobs.

	    mpir_use_nodeaddr	    When  launching  tasks Slurm creates entries
				    in MPIR_proctable that are used by	parallel
				    debuggers,	profilers,  and related tools to
				    attach to running process.	By  default  the
				    MPIR_proctable entries contain MPIR_procdesc
				    structures	where  the  host_name  is set to
				    NodeName by default. If this option is spec-
				    ified, NodeAddr will be used in this context
				    instead.

	    disable_send_gids	    By default, the slurmctld will look  up  and
				    send  the  user_name and extended gids for a
				    job, rather than independently on each  node
				    as	part  of  each	task launch.  This helps
				    mitigate issues around name  service  scala-
				    bility  when  launching  jobs involving many
				    nodes. Using this option will  disable  this
				    functionality. This option is ignored if en-
				    able_nss_slurm is specified.

	    slurmstepd_memlock	    Lock the slurmstepd process's current memory
				    in RAM.

	    slurmstepd_memlock_all  Lock  the  slurmstepd  process's current and
				    future memory in RAM.

	    srun_exclusive_allocation
				    Have srun --exclusive default to  the  --ex-
				    clusive=allocation option. This disables the
				    implicit  --exact  that  exclusive	adds for
				    srun.  Users can still specify srun --exclu-
				    sive --exact to get the standard behavior.

	    test_exec		    Have srun verify existence of the executable
				    program along with user  execute  permission
				    on the node where srun was called before at-
				    tempting to launch it on nodes in the step.

	    use_interactive_step    Have  salloc  use  the  Interactive  Step to
				    launch a shell on an allocated compute  node
				    rather  than  locally to wherever salloc was
				    invoked. This is accomplished  by  launching
				    the srun command with InteractiveStepOptions
				    as options.

				    This  does	not  affect salloc called with a
				    command as an argument. These jobs will con-
				    tinue to be executed as the calling user  on
				    the calling host.

	    ulimit_pam_adopt	    When  pam_slurm_adopt is used to join an ex-
				    ternal process into a job cgroup, RLIMIT_RSS
				    is set, as is done for tasks running in reg-
				    ular steps.

     LicenseParameters
	    Parameters to control the license behavior. By default no parameters
	    are set.  Multiple parameters may be specified in a  comma-separated
	    list.  Currently supported options are:

	    RemoteFuzzyMatch
		    Allow  jobs  to be submitted with a shorthand for remote li-
		    censes that omits the server name. For example,  "matlab@li-
		    censeServer"  can  be  requested with "matlab". Requests in-
		    cluding the server name will always be recognized.	If a lo-
		    cal (slurm.conf-defined) license exists, it will  prefer  to
		    match that.  If multiple servers exist with the same license
		    name,  the	fuzzy  match  fails and an exact match (with the
		    server name) must be used.

     Licenses
	    Specification of licenses (or other resources available on all nodes
	    of the cluster) which can be allocated to jobs.  License  names  can
	    optionally	be followed by a colon and count with a default count of
	    one.  Multiple license names should be comma separated  (e.g.   "Li-
	    censes=foo:4,bar").  Note that Slurm prevents jobs from being sched-
	    uled  if  their  required  license	specification  is not available.
	    Slurm does not prevent jobs from using licenses that are not explic-
	    itly listed in the job submission specification.

     LogTimeFormat
	    Format of the timestamp in slurmctld and slurmd log files.	Accepted
	    format    values   include	 "iso8601",   "iso8601_ms",   "rfc5424",
	    "rfc5424_ms", "rfc3339", "clock", "short" and "thread_id". The  val-
	    ues  ending in "_ms" differ from the ones without in that fractional
	    seconds with millisecond precision are printed. The default value is
	    "iso8601_ms". The "rfc5424" formats are the same  as  the  "iso8601"
	    formats  except  that the timezone value is also shown.  The "clock"
	    format shows a timestamp in microseconds retrieved with the C  stan-
	    dard  clock()  function. The "short" format is a short date and time
	    format. The "thread_id" format shows the timestamp in the C standard
	    ctime() function form without the year but including  the  microsec-
	    onds, the daemon's process ID and the current thread name and ID.

     MailDomain
	    Domain  name to qualify usernames if email address is not explicitly
	    given with the "--mail-user" option. If unset, the	local  MTA  will
	    need  to  qualify  local  address itself. Changes to MailDomain will
	    only affect new jobs.

     MailProg
	    Fully qualified pathname to the program used to send email per  user
	    request.   The  default  value is "/bin/mail" (or "/usr/bin/mail" if
	    "/bin/mail" does not exist but  "/usr/bin/mail"  does  exist).   The
	    program  is called with arguments suitable for the default mail com-
	    mand, however additional information about the job is passed in  the
	    form of environment variables.

	    Additional variables are the same as those passed to PrologSlurmctld
	    and  EpilogSlurmctld with additional variables in the following con-
	    texts:

	    ALL

		   SLURM_JOB_STATE
			  The base state of the job when the MailProg is called.

		   SLURM_JOB_MAIL_TYPE
			  The mail type triggering the mail.

	    BEGIN

		   SLURM_JOB_QEUEUED_TIME
			  The amount of time the job was queued.

	    END, FAIL, REQUEUE, TIME_LIMIT_*

		   SLURM_JOB_RUN_TIME
			  The amount of time the job ran for.

	    END, FAIL

		   SLURM_JOB_EXIT_CODE_MAX
			  Job's exit code or highest exit code for an array job.

		   SLURM_JOB_EXIT_CODE_MIN
			  Job's minimum exit code for an array job.

		   SLURM_JOB_TERM_SIGNAL_MAX
			  Job's highest signal for an array job.

	    STAGE_OUT

		   SLURM_JOB_STAGE_OUT_TIME
			  Job's staging out time.

     MaxArraySize
	    The maximum job array task index value will be one less than  MaxAr-
	    raySize to allow for an index value of zero.  Configure MaxArraySize
	    to	0  in  order to disable job array use.	The value may not exceed
	    4000001.  The value of MaxJobCount should be much larger than MaxAr-
	    raySize, since each job array task still counts as	a  separate  job
	    (see  MaxJobCount  for further details).  The default value is 1001.
	    See also max_array_tasks in SchedulerParameters.

     MaxDBDMsgs
	    When communication to the SlurmDBD is  not	possible  the  slurmctld
	    will  queue  messages meant to processed when the SlurmDBD is avail-
	    able again.  In order to avoid running out of memory  the  slurmctld
	    will  only	queue  so  many messages. The default value is 10000, or
	    MaxJobCount * 2 + Node Count * 4, whichever is  greater.  The  value
	    can not be less than 10000.

     MaxJobCount
	    The maximum number of jobs slurmctld can have in memory at one time.
	    Combine  with  MinJobAge to ensure the slurmctld daemon does not ex-
	    haust its memory or other resources. Once this limit is reached, re-
	    quests to submit additional jobs will fail.  The  default  value  is
	    10000  jobs.   NOTE: Each task of a job array counts as one job even
	    though they will not occupy separate job records until  modified  or
	    initiated.	 Performance  can  suffer  with  more than a few hundred
	    thousand jobs.  Setting MaxSubmitJobs per user is generally valuable
	    to prevent a single user from filling the system with jobs.  This is
	    accomplished using Slurm's database and configuring  enforcement  of
	    resource limits.

     MaxJobId
	    The  maximum job id to be used for jobs submitted to Slurm without a
	    specific requested value. Job ids are unsigned 32bit  integers  with
	    the  first	26  bits  reserved for local job ids and the remaining 6
	    bits reserved for a cluster id to identify a federated job's origin.
	    The maximum allowed local job id is 67,108,863 (0x3FFFFFF). The  de-
	    fault  value  is  67,043,328 (0x03ff0000).	MaxJobId only applies to
	    the local job id and not the federated job id.  Job id values gener-
	    ated will be incremented by 1 for each subsequent job. Once MaxJobId
	    is reached, the next job will  be  assigned  FirstJobId.   Federated
	    jobs  will	always	have a job ID of 67,108,865 or higher.	Also see
	    FirstJobId.

     MaxMemPerCPU
	    Maximum real memory size available per allocated CPU  in  mebibytes.
	    Used  to  avoid over-subscribing memory and causing paging.  MaxMem-
	    PerCPU would generally be used if individual  processors  are  allo-
	    cated to jobs (SelectType=select/cons_tres).  The default value is 0
	    (unlimited).  Also see DefMemPerCPU, DefMemPerGPU and MaxMemPerNode.
	    MaxMemPerCPU and MaxMemPerNode are mutually exclusive.

	    NOTE:  If  a  job specifies a memory per CPU limit that exceeds this
	    system limit, that job's count of CPUs per task will try to automat-
	    ically increase.  This may result in the  job  failing  due  to  CPU
	    count  limits. This auto-adjustment feature is a best-effort one and
	    optimal assignment is not guaranteed due to the possibility of  hav-
	    ing  heterogeneous	configurations	and multi-partition/qos jobs. If
	    this is a concern it is advised to use a job submit LUA  plugin  in-
	    stead to enforce auto-adjustments to your specific needs.

     MaxMemPerNode
	    Maximum real memory size available per allocated node in a job allo-
	    cation in mebibytes. Used to avoid over-subscribing memory and caus-
	    ing  paging.   MaxMemPerNode  would generally be used if whole nodes
	    are allocated to jobs (SelectType=select/linear) and  resources  are
	    over-subscribed (OverSubscribe=yes or OverSubscribe=force).  The de-
	    fault value is 0 (unlimited).  Also see DefMemPerNode and MaxMemPer-
	    CPU.  MaxMemPerCPU and MaxMemPerNode are mutually exclusive.

     MaxNodeCount
	    Maximum count of nodes which may exist in the controller. By default
	    MaxNodeCount  will	be  set  to  the  number  of  nodes found in the
	    slurm.conf. MaxNodeCount will be ignored if less than the number  of
	    nodes found in the slurm.conf. The total number of nodes in a system
	    cannot  exceed  65536.  Increase MaxNodeCount to accommodate dynami-
	    cally created nodes with dynamic node registrations and  nodes  cre-
	    ated with scontrol.

     MaxStepCount
	    The  maximum number of steps that any job can initiate. This parame-
	    ter is intended to limit the effect of bad batch scripts.	The  de-
	    fault value is 40000 steps.

     MaxTasksPerNode
	    Maximum  number  of  tasks Slurm will allow a job step to spawn on a
	    single node. The default MaxTasksPerNode is  512.	May  not  exceed
	    65533.

     MCSParameters
	    MCS  = Multi-Category Security MCS Plugin Parameters.  The supported
	    parameters are specific to the MCSPlugin.	Changes  to  this  value
	    take  effect when the Slurm daemons are reconfigured.  More informa-
	    tion	about	     MCS	is	  available	    here
	    <https://slurm.schedmd.com/mcs.html>.

     MCSPlugin
	    MCS  =  Multi-Category Security : associate a security label to jobs
	    and ensure that nodes can only be shared among jobs using  the  same
	    security label.  Unset by default. Acceptable values include:

	    mcs/account
			only  users  with  the	same account can share the nodes
			(requires enabling of accounting).

	    mcs/group	only users with the same group can share the nodes.

	    mcs/user	a node cannot be shared with other users.

	    mcs/label	only jobs with the same arbitrary label string can share
			nodes.

     MessageTimeout
	    Time permitted for a round-trip communication to  complete	in  sec-
	    onds.  Default  value  is 10 seconds. For systems with shared nodes,
	    the slurmd daemon could be paged out and necessitate higher values.

     MetricsAuthUsers
	    Controls which users are allowed to query metrics plugin  endpoints.
	    SlurmUser and root are always allowed. When set, it will ignore Pri-
	    vateData   and/or	MetricsParameters=ignore_private_data,	allowing
	    users in the list to query the metrics endpoints.  This  option  en-
	    ables JWT authentication for querying metrics endpoints.

     MetricsParameters
	    Parameters	related  to  metrics plugins. Multiple parameters may be
	    comma separated. Currently supported parameters include:

	    ignore_private_data
		   Causes metrics plugins to ignore PrivateData  when  set,  and
		   allows  all	users  global  access to query metrics endpoints
		   without authentication.  This option will be ignored if  Met-
		   ricsAuthUsers is set.

     MetricsType
	    Specify  the  metrics  plugin to be used to dump statistics from the
	    slurmctld socket. Refer to the Metrics Guide  for  further	details:
	    <https://slurm.schedmd.com/metrics.html>

	    Configurable values at present are:

	    metrics/openmetrics
		   Use the OpenMetrics based plugin.

     MinJobAge
	    The minimum age of a completed job before its record is cleared from
	    the list of jobs slurmctld keeps in memory. Combine with MaxJobCount
	    to	ensure the slurmctld daemon does not exhaust its memory or other
	    resources. The default value is 300 seconds.  A value of  zero  pre-
	    vents any job record purging.  Jobs are not purged during a backfill
	    cycle,  so	it can take longer than MinJobAge seconds to purge a job
	    if using the backfill scheduling plugin.  In order to eliminate some
	    possible race conditions, the minimum non-zero value  for  MinJobAge
	    recommended is 2.

     MpiDefault
	    Identifies	the  default  type of MPI to be used.  Unset by default,
	    which allows Slurm to work with versions of MPI  other  than  listed
	    below.   Srun may override this configuration parameter in any case.
	    Currently supported versions include: pmi2 and pmix.  More	informa-
	    tion       about	   MPI	    use      is      available	    here
	    <https://slurm.schedmd.com/mpi_guide.html>.

     MpiParams
	    MPI-related parameters. Multiple parameters may be comma  separated.
	    Currently supported parameters include:

	    ports=Identifies a range of communication ports used by native
	    Cray's PMI.

	    disable_slurm_hydra_bootstrap
		   Disable environment variable injection in allocations for the
		   following variables: I_MPI_HYDRA_BOOTSTRAP, I_MPI_HYDRA_BOOT-
		   STRAP_EXEC_EXTRA_ARGS,   HYDRA_BOOTSTRAP,  HYDRA_LAUNCHER_EX-
		   TRA_ARGS.

		   Manually setting I_MPI_HYDRA_BOOTSTRAP or HYDRA_BOOTSTRAP  to
		   'slurm' in the allocation will skip this parameter and injec-
		   tion of extra args will be performed as usual.

     NamespaceType
	    Identifies	the  plugin  to  be used for job isolation through name-
	    spaces. To use these plugins, 'PrologFlags=Contain' must be set. Re-
	    fer    to	 the	namespace    page    for    further	details:
	    <https://slurm.schedmd.com/namespace.html>

	    NOTE: See ProctrackType for resource containment and usage tracking.

	    Acceptable values at present include:

	    namespace/linux	Used  to  create  a private filesystem namespace
				and optionally	user  and  pid	namespaces.  The
				filesystem  namespace  houses temporary filesys-
				tems (/tmp and /dev/shm) for each job.

				NOTE: This plugin requires cgroup/v2 to  operate
				correctly.
				NOTE: When using user namespaces, bpf token sup-
				port  (added  in  kernel 6.9) is required to use
				ConstrainDevices in cgroup.conf.

	    namespace/tmpfs	Used  to  create  a  private  namespace  on  the
				filesystem for jobs, which houses temporary file
				systems (/tmp and /dev/shm) for each job.

     OverTimeLimit
	    Number  of	minutes  by which a job can exceed its time limit before
	    being canceled.  Normally a job's time limit is treated  as  a  hard
	    limit  and the job will be killed upon reaching that limit.  Config-
	    uring OverTimeLimit will  result  in  the  job's  time  limit  being
	    treated  like  a  soft limit.  Adding the OverTimeLimit value to the
	    soft time limit provides a hard time limit, at which point	the  job
	    is	canceled.   This is particularly useful for backfill scheduling,
	    which bases upon each job's soft time limit.  The default  value  is
	    zero.  May not exceed 65533 minutes.  A value of "UNLIMITED" is also
	    supported.

     PluginDir
	    Identifies the places in which to look for Slurm plugins.  This is a
	    colon-separated list of directories, like the PATH environment vari-
	    able.   The  default  value  is the prefix given at configure time +
	    "/lib/slurm".

     PlugStackConfig
	    Location of the config file for Slurm stackable plugins that use the
	    Stackable Plugin Architecture for Node job (K)control (SPANK).  This
	    provides support for a highly configurable	set  of  plugins  to  be
	    called before and/or after execution of each task spawned as part of
	    a  user's job step. Default location is "plugstack.conf" in the same
	    directory as the system slurm.conf. For more  information  on  SPANK
	    plugins, see the spank(8) manual.

     PreemptMode
	    Mechanism  used  to preempt jobs or enable gang scheduling. When the
	    PreemptType parameter is set to enable preemption,	the  PreemptMode
	    selects  the default mechanism used to preempt the eligible jobs for
	    the cluster.
	    PreemptMode may be specified on a per partition  basis  to	override
	    this  default  value if PreemptType=preempt/partition_prio. Alterna-
	    tively, it can be specified on a per QOS basis  if	PreemptType=pre-
	    empt/qos.  In either case, a valid default PreemptMode value must be
	    specified for the cluster as a whole when preemption is enabled.
	    The GANG option is used to enable  gang  scheduling  independent  of
	    whether  preemption  is enabled (i.e. independent of the PreemptType
	    setting). It can be specified in addition to a  PreemptMode  setting
	    with   the	 two  options  comma  separated  (e.g.	PreemptMode=SUS-
	    PEND,GANG).
	    See 	  <https://slurm.schedmd.com/preempt.html>	     and
	    <https://slurm.schedmd.com/gang_scheduling.html> for more details.

	    NOTE: For performance reasons, the backfill scheduler reserves whole
	    nodes  for	jobs, not partial nodes. If during backfill scheduling a
	    job preempts one or more other jobs, the whole nodes for those  pre-
	    empted  jobs are reserved for the preemptor job, even if the preemp-
	    tor job requested fewer resources than that.  These  reserved  nodes
	    aren't  available  to other jobs during that backfill cycle, even if
	    the other jobs could fit on the nodes. Therefore, jobs  may  preempt
	    more  resources  during  a	single	backfill iteration than they re-
	    quested.
	    NOTE: For heterogeneous job to be considered for preemption all com-
	    ponents must be eligible for preemption. When a heterogeneous job is
	    to be preempted the first identified component of the job  with  the
	    highest  order PreemptMode (SUSPEND (highest), REQUEUE, CANCEL (low-
	    est)) will be used to set the PreemptMode for  all	components.  The
	    GraceTime  and user warning signal for each component of the hetero-
	    geneous job remain unique.	Heterogeneous  jobs  are  excluded  from
	    GANG scheduling operations.

	    OFF 	Is  the  default  value  and disables job preemption and
			gang scheduling.  It is only compatible with  preemption
			being  disabled  at the global level.  A common use case
			for this parameter is to set it on a partition	to  dis-
			able preemption for that partition.

	    CANCEL	The preempted job will be cancelled.

	    GANG	Enables  gang  scheduling  (time slicing) of jobs in the
			same partition, and allows  the  resuming  of  suspended
			jobs.  In  order to use gang scheduling, the GANG option
			must be specified at the cluster level.

			NOTE:  If  GANG  scheduling  is  enabled  with	Preempt-
			Type=preempt/partition_prio,  the controller will ignore
			the    following    PreemptParameters:	  reorder_count,
			strict_order, and youngest_first.

			NOTE:  Gang  scheduling  is  performed independently for
			each partition, so if  you  only  want	time-slicing  by
			OverSubscribe,	without any preemption, then configuring
			partitions with overlapping nodes  is  not  recommended.
			On  the  other hand, if you want to use PreemptType=pre-
			empt/partition_prio to allow jobs  from  higher  Priori-
			tyTier	partitions  to	Suspend  jobs from lower Priori-
			tyTier partitions you will need overlapping  partitions,
			and  PreemptMode=SUSPEND,GANG  to use the Gang scheduler
			to resume the suspended jobs(s). You must configure  the
			partition's  OverSubscribe setting to FORCE for all par-
			titions in which time-slicing is to take place.  In  any
			case,  time-slicing won't happen between jobs on differ-
			ent partitions.

			NOTE: Heterogeneous jobs are excluded from GANG schedul-
			ing operations.

			NOTE: In case of overlapping partitions. If the node  is
			allocated job that allows sharing of resources (Oversub-
			scribe=FORCE  or Oversubscribe=YES and job was submitted
			with -s/--oversubscribe) it can  only  be  allocated  by
			jobs from the same partition.

	    REQUEUE	Preempts jobs by requeuing them (if possible) or cancel-
			ing  them.   For  jobs to be requeued they must have the
			--requeue sbatch option set or the cluster  wide  JobRe-
			queue parameter in slurm.conf must be set to 1.

	    SUSPEND	The preempted jobs will be suspended, and later the Gang
			scheduler  will  resume them. Therefore the SUSPEND pre-
			emption mode always needs the GANG option to  be  speci-
			fied  at  the cluster level. Also, because the suspended
			jobs will still use memory on the allocated nodes, Slurm
			needs to be able to track memory resources to be able to
			suspend jobs.
			When suspending jobs, Slurm sends  the	SIGTSTP  signal,
			waits	the  time  specified  by  PreemptParameters=sus-
			pend_grace_time (default is 2 seconds), then  sends  the
			SIGSTOP signal. The SIGCONT signal is sent when resuming
			jobs.
			If PreemptType=preempt/qos is configured and if the pre-
			empted job(s) and the preemptor job are on the same par-
			tition,  then  they  will  share resources with the Gang
			scheduler (time-slicing). If not (i.e. if the preemptees
			and preemptor are on different partitions) then the pre-
			empted jobs will remain suspended  until  the  preemptor
			ends.

			NOTE: Because gang scheduling is performed independently
			for  each partition, if using PreemptType=preempt/parti-
			tion_prio then jobs in	higher	PriorityTier  partitions
			will  suspend  jobs  in lower PriorityTier partitions to
			run on the released resources. Only when  the  preemptor
			job  ends will the suspended jobs will be resumed by the
			Gang scheduler.
			NOTE: Suspended jobs will not release GRES. Higher  pri-
			ority jobs will not be able to preempt to gain access to
			GRES.

	    PRIORITY	Allow preemption only if the preemptor's job priority is
			higher than the preemptee's job priority.

	    WITHIN	For  PreemptType=preempt/qos, allow jobs within the same
			qos to preempt one another. While this can be set  glob-
			ally  here,  it  is  recommend that this only be set di-
			rectly on a relevant subset of the system qos values in-
			stead.

     PreemptParameters
	    Multiple options may be comma separated.

	    min_exempt_priority=Threshold value for the job's global priority.
	    Only those jobs with priority
		   lower than this value will be marked as preemptable.

	    reclaim_licenses
		   If set, jobs may be preempted to reclaim licenses.  Otherwise
		   jobs  requesting busy licenses will have to wait even if they
		   have preemption priority.  The logic to support  this  option
		   is  only  available in the select/cons_tres plugin. Jobs that
		   use OR in the license request are  not  eligible  to  preempt
		   other jobs to reclaim licenses.

	    reorder_count=Specify how many attempts should be made in reordering
	    preemptable jobs to
		   minimize  the  total  number  of jobs that will be preempted.
		   The default value is 1. High values may adversely impact per-
		   formance.  Changes to the order of jobs on these attempts can
		   be enabled with strict_order.  The logic to support this  op-
		   tion is only available in the select/cons_tres plugin.

	    send_user_signal
		   Send  the user signal (e.g. --signal=<sig_num>) at preemption
		   time even if the signal time hasn't been reached. In the case
		   of a gracetime preemption the user signal will be sent if the
		   user signal has been specified  and	not  sent,  otherwise  a
		   SIGTERM will be sent to the tasks.

	    strict_order
		   When  reordering  preemptable  jobs,  place the most recently
		   tested job at the front of the list since we are certain that
		   it actually added resources needed by the new job.  This  en-
		   sures that with enough reorder attempts, the minimum possible
		   number  of  jobs  will be preempted.  See also reorder_count.
		   The logic to support this option is only available in the se-
		   lect/cons_tres plugin.

	    suspend_grace_time
		   Specifies, in units of seconds,  the  preemption  grace  time
		   when using PreemptMode=SUSPEND.  When a job is suspended, the
		   SIGTSTP signal will be sent, and then after waiting the spec-
		   ified  suspend  grace  time, the SIGSTOP signal will be sent.
		   The default value is 2 seconds.
		   NOTE: This parameter is only used when PreemptMode=SUSPEND is
		   configured or when suspending  jobs	with  scontrol	suspend.
		   For	setting  the preemption grace time when using other pre-
		   emption modes, see GraceTime.

	    youngest_first
		   If set, then the preemption sorting algorithm will be changed
		   to sort by the job start times to  favor  preempting  younger
		   jobs  over  older.  (Requires  preempt/partition_prio or pre-
		   empt/qos plugins.)

     PreemptType
	    Specifies the plugin used to identify which jobs can be preempted in
	    order to start a pending job. Unset by default.

	    preempt/partition_prio
		   Job preemption is based upon partition PriorityTier.  Jobs in
		   higher PriorityTier partitions may preempt  jobs  from  lower
		   PriorityTier  partitions.   This  is not compatible with Pre-
		   emptMode=OFF.

	    preempt/qos
		   Job preemption rules are  specified	by  Quality  Of  Service
		   (QOS)  specifications  in the Slurm database.  In the case of
		   PreemptMode=SUSPEND, a preempting job has to be submitted  to
		   a  partition with a higher PriorityTier or to the same parti-
		   tion. Submission to the same  partition  is	also  supported,
		   which  results in the preemptor QoS to gang schedule the pre-
		   emptee QoS.	This option  is  not  compatible  with	Preempt-
		   Mode=OFF.   A  configuration  of  PreemptMode=SUSPEND is only
		   supported by the SelectType=select/cons_tres plugin.  See the
		   sacctmgr man page to configure the options for preempt/qos.

     PreemptExemptTime
	    Global option for minimum run time for all jobs before they  can  be
	    considered	for  preemption.  Any QOS PreemptExemptTime takes prece-
	    dence over the global option.
	    A time of -1 disables the option, equivalent to 0.	Acceptable  time
	    formats  include  "minutes",  "minutes:seconds", "hours:minutes:sec-
	    onds",  "days-hours",  "days-hours:minutes",  and	"days-hours:min-
	    utes:seconds".

     PrEpParameters
	    Parameters to be passed to the PrEpPlugins.

     PrEpPlugins
	    A  resource  for  programmers wishing to write their own plugins for
	    the Prolog and Epilog (PrEp) scripts. The default, and currently the
	    only implemented plugin is prep/script. Additional	plugins  can  be
	    specified in a comma-separated list. For more information please see
	    the       PrEp	 Plugin       API	documentation	   page:
	    <https://slurm.schedmd.com/prep_plugins.html>

     PriorityCalcPeriod
	    The period of time in minutes in which the half-life decay	will  be
	    re-calculated.   Applicable  only if PriorityType=priority/multifac-
	    tor.  The default value is 5 (minutes).

     PriorityDecayHalfLife
	    This controls how long prior resource use is considered in determin-
	    ing how over- or under-serviced an association is (user, account and
	    cluster) in determining job priority.  The record of usage	will  be
	    decayed  over  time,  with half of the original value cleared at age
	    PriorityDecayHalfLife.  If set to 0 no decay will be applied.   This
	    is	helpful if you want to enforce hard time limits per association.
	    If set to 0 PriorityUsageResetPeriod must be set to  some  interval.
	    Applicable only if PriorityType=priority/multifactor.  The unit is a
	    time  string  (i.e. min, hr:min:00, days-hr:min:00, or days-hr). The
	    default value is 7-0 (7 days).

     PriorityFavorSmall
	    Specifies that small jobs should be  given	preferential  scheduling
	    priority.	Applicable  only  if  PriorityType=priority/multifactor.
	    Supported values are "YES" and "NO". The default value is "NO".

     PriorityFlags
	    Flags to modify priority behavior.	 Applicable  only  if  Priority-
	    Type=priority/multifactor.	 The  keywords	below have no associated
	    value (e.g. "PriorityFlags=ACCRUE_ALWAYS,SMALL_RELATIVE_TO_TIME").

	    ACCRUE_ALWAYS    If set, priority age factor will be  increased  de-
			     spite job ineligibility due to either dependencies,
			     holds  or	begin  time in the future. Accrue limits
			     are ignored.

	    CALCULATE_RUNNING
			     If set, priorities will be  recalculated  not  only
			     for  pending  jobs,  but also running and suspended
			     jobs.

	    DEPTH_OBLIVIOUS  If set, priority will be calculated  based  similar
			     to the normal multifactor calculation, but depth of
			     the associations in the tree does not adversely af-
			     fect  their priority. This option automatically en-
			     ables NO_FAIR_TREE.

	    NO_FAIR_TREE     Disables the "fair tree" algorithm, and reverts  to
			     "classic" fair share priority scheduling.

	    INCR_ONLY	     If  set,  priority  values  will  only  increase in
			     value. Job priority will never decrease in value.

	    MAX_TRES	     If  set,  the  weighted  TRES  value  (TRESBilling-
			     Weights) is calculated as the sum of the following:
			     - MAX of individual TRESs (those tied to a specific
			     node, e.g., cpus, mem, gres)
			     -	SUM  of all global TRESs (those available on any
			     nodes, e.g., licenses)
	    Refer     to     the     TRES     page     for     more	details:
	    <https://slurm.schedmd.com/tres.html>

	    MAX_TRES_GRES    If  set,  the  weighted  TRES  value  (TRESBilling-
			     Weights) is calculated as the sum of the following:
			     - SUM of all billable GRESs (e.g., GPUs)
			     - MAX of other individual TRESs (those  tied  to  a
			     specific node, e.g., cpus, mem)
			     -	SUM  of all global TRESs (those available on any
			     nodes, e.g., licenses)
	    Added in Slurm 25.05. Refer to  the  TRES  page  for  more	details:
	    <https://slurm.schedmd.com/tres.html>

	    NO_NORMAL_ALL    If set, all NO_NORMAL_* flags are set.

	    NO_NORMAL_ASSOC  If  set,  the  association factor is not normalized
			     against the highest association priority.

	    NO_NORMAL_PART   If set, the  partition  factor  is  not  normalized
			     against the highest partition PriorityJobFactor.

	    NO_NORMAL_QOS    If  set,  the  QOS factor is not normalized against
			     the highest qos priority.

	    NO_NORMAL_TRES   If set, the TRES factor is not  normalized  against
			     the job's partition TRES counts.

	    SMALL_RELATIVE_TO_TIME
			     If set, the job's size component will be based upon
			     not  the job size alone, but the job's size divided
			     by its time limit.

     PriorityMaxAge
	    Specifies the job age which will be given the maximum age factor  in
	    computing  priority. For example, a value of 30 minutes would result
	    in all jobs over 30 minutes old would get the same age-based  prior-
	    ity.   Applicable  only  if  PriorityType=priority/multifactor.  The
	    unit is a time  string  (i.e.  min,  hr:min:00,  days-hr:min:00,  or
	    days-hr). The default value is 7-0 (7 days).

     PriorityParameters
	    Arbitrary string used by the PriorityType plugin.

     PrioritySiteFactorParameters
	    Arbitrary string used by the PrioritySiteFactorPlugin plugin.

     PrioritySiteFactorPlugin
	    The specifies an optional plugin to be used alongside "priority/mul-
	    tifactor",	which  is meant to initially set and continuously update
	    the SiteFactor priority factor. Unset by default.

     PriorityType
	    This specifies the plugin to be used in establishing a job's  sched-
	    uling  priority.   Also see PriorityFlags for configuration options.
	    The default value is "priority/multifactor".

	    priority/basic
		   Jobs are evaluated in a First In, First Out (FIFO) manner.

	    priority/multifactor
		   Jobs are assigned a priority based upon a variety of  factors
		   that include size, age, Fairshare, etc.

	    When  not FIFO scheduling, jobs are prioritized in the following or-
	    der:

	    1. Jobs that can preempt
	    2. Jobs with an advanced reservation
	    3. Partition PriorityTier
	    4. Job priority
	    5. Job submit time
	    6. Job ID

     PriorityUsageResetPeriod
	    At this interval the usage of associations will be reset to 0.  This
	    is used if you want to enforce hard limits of time usage per associ-
	    ation.  If PriorityDecayHalfLife is set to be 0 no decay will happen
	    and this is the only way to reset the usage accumulated  by  running
	    jobs.  By  default	this  is turned off and it is advised to use the
	    PriorityDecayHalfLife option to avoid not having anything running on
	    your cluster, but if your schema is set up	to  only  allow  certain
	    amounts of time on your system this is the way to do it.  Applicable
	    only if PriorityType=priority/multifactor.

	    NONE	Never clear historic usage. The default value.

	    NOW 	Clear  the  historic usage now.  Executed at startup and
			reconfiguration time.

	    DAILY	Cleared every day at midnight.

	    WEEKLY	Cleared every week on Sunday at time 00:00.

	    MONTHLY	Cleared on the first day of each month at time 00:00.

	    QUARTERLY	Cleared on the first day of each quarter at time 00:00.

	    YEARLY	Cleared on the first day of each year at time 00:00.

     PriorityWeightAge
	    An integer value that sets the degree to which the queue  wait  time
	    component  contributes  to	the  job's priority.  Applicable only if
	    PriorityType=priority/multifactor.	    Requires	 AccountingStor-
	    ageType=accounting_storage/slurmdbd.  The default value is 0.

     PriorityWeightAssoc
	    An	integer value that sets the degree to which the association com-
	    ponent contributes to the job's priority.  Applicable only if Prior-
	    ityType=priority/multifactor.  The default value is 0.

     PriorityWeightFairshare
	    An integer value that sets the degree to which the fair-share compo-
	    nent contributes to the job's priority.  Applicable only if  Priori-
	    tyType=priority/multifactor.    Requires   AccountingStorageType=ac-
	    counting_storage/slurmdbd.	The default value is 0.

     PriorityWeightJobSize
	    An integer value that sets the degree to which the job  size  compo-
	    nent  contributes to the job's priority.  Applicable only if Priori-
	    tyType=priority/multifactor.  The default value is 0.

     PriorityWeightPartition
	    Partition factor used by priority/multifactor plugin in  calculating
	    job priority.  Applicable only if PriorityType=priority/multifactor.
	    The default value is 0.

     PriorityWeightQOS
	    An	integer  value that sets the degree to which the Quality Of Ser-
	    vice component contributes to the job's priority.	Applicable  only
	    if PriorityType=priority/multifactor.  The default value is 0.

     PriorityWeightTRES
	    A  comma-separated	list of TRES Types and weights that sets the de-
	    gree that each TRES Type contributes to the job's priority.

	    e.g.
	    PriorityWeightTRES=CPU=1000,Mem=2000,GRES/gpu=3000

	    Applicable only if PriorityType=priority/multifactor and if Account-
	    ingStorageTRES is configured with each TRES Type.	Negative  values
	    are allowed.  The default values are 0.

     PrivateData
	    This controls what type of information is hidden from regular users.
	    By default, all information is visible to all users.  User SlurmUser
	    and  root  can  always view all information.  This option, when set,
	    causes metrics plugins endpoints to be restricted (plus  enable  JWT
	    authentication  for  querying)  and available only for SlurmUser and
	    root,  unless  MetricsAuthUsers   or   MetricsParameters=ignore_pri-
	    vate_data  are  configured.  Multiple values may be specified with a
	    comma separator.  Acceptable values include:

	    accounts
		   (NON-SlurmDBD ACCOUNTING ONLY) Prevents  users  from  viewing
		   any account definitions unless they are coordinators of them.

	    events
		   prevents  users  from  viewing  event information unless they
		   have operator status or above.

	    jobs   Prevents users from viewing jobs or job  steps  belonging  to
		   other  users.  (NON-SlurmDBD  ACCOUNTING ONLY) Prevents users
		   from viewing job records belonging to other users unless they
		   are coordinators of the association running the job when  us-
		   ing sacct.

	    nodes  Prevents users from viewing node state information.

	    partitions
		   Prevents users from viewing partition state information.

	    reservations
		   Prevents  regular  users from viewing reservations which they
		   can not use.

		   NOTE: QOS and AllowedPartitions restrictions on the	reserva-
		   tion do not apply to this option.

	    usage  Prevents users from viewing usage of any other user, this ap-
		   plies  to  'sshare' and Association Records through 'scontrol
		   show assoc_mgr'.   (NON-SlurmDBD  ACCOUNTING  ONLY)	Prevents
		   users  from	viewing usage of any other user, this applies to
		   sreport.

	    users  (NON-SlurmDBD ACCOUNTING ONLY) Prevents  users  from  viewing
		   information	of  any  user  other  than themselves, this also
		   makes it so users can only see associations they  deal  with.
		   Coordinators can see associations of all users in the account
		   they  are  coordinator  of,	but can only see themselves when
		   listing users.

     ProctrackType
	    Identifies the plugin to be used for process tracking on a job  step
	    basis.   The  slurmd  daemon  uses	this  mechanism  to identify all
	    processes which are children of processes it spawns for a  user  job
	    step.   NOTE: "proctrack/linuxproc" and "proctrack/pgid" can fail to
	    identify all processes associated with a job since processes can be-
	    come a child of the init process (when  the  parent  process  termi-
	    nates)  or	change	their  process	group.	 To  reliably  track all
	    processes, "proctrack/cgroup"  is  highly  recommended.   NOTE:  The
	    NamespaceType applies to a job namespace isolation, while Proctrack-
	    Type applies to job resource limits and tracking.  Acceptable values
	    at present include:

	    proctrack/cgroup
		   Uses  linux	cgroups to constrain and track processes, and is
		   the default for systems with cgroup support.
		   NOTE: See "man cgroup.conf" for configuration details.

	    proctrack/linuxproc
		   Uses linux process tree using parent process IDs.

	    proctrack/pgid
		   Uses Process Group IDs.
		   NOTE: This is the default for the BSD family.

     Prolog
	    Pathname of a program for the slurmd to execute whenever it is asked
	    to run a job step from a new job allocation. If it	is  not  an  ab-
	    solute  pathname  (i.e.  it does not start with a slash), it must be
	    relative to the directory containing the  slurm.conf  file.  A  glob
	    pattern  (See  glob  (7))  may also be used to specify more than one
	    program to run (e.g. "/etc/slurm/prolog.d/*"). When  more  than  one
	    prolog script is configured, they are executed in reverse alphabeti-
	    cal order (z-a -> Z-A -> 9-0). The slurmd executes the prolog before
	    starting  the  first  job  step. The prolog script or scripts may be
	    used to purge files, enable user login, etc. By default there is  no
	    prolog.  Any  configured  script  is  expected to complete execution
	    quickly (in less time than MessageTimeout).   If  the  prolog  fails
	    (returns  a  non-zero exit code), this will result in the node being
	    set to a DRAIN state and the job being requeued.  The  job	will  be
	    placed  in	a held state, unless nohold_on_prolog_fail is configured
	    in SchedulerParameters.  See Prolog and Epilog Scripts for more  in-
	    formation.

	    NOTE: It is possible to configure multiple prolog scripts by includ-
	    ing this option on multiple lines.

     PrologEpilogTimeout
	    The  interval  in  seconds	Slurm waits for Prolog and Epilog before
	    terminating them. The default behavior is to wait indefinitely. This
	    interval applies to the Prolog and Epilog run by slurmd  daemon  be-
	    fore  and after the job, the PrologSlurmctld and EpilogSlurmctld run
	    by slurmctld daemon,  and  the  SPANK  plugin  prolog/epilog  calls:
	    slurm_spank_job_prolog and slurm_spank_job_epilog.
	    If	the  PrologSlurmctld times out, the job is requeued if possible.
	    If the Prolog or slurm_spank_job_prolog time out,  the  job  is  re-
	    queued  if	possible  and  the  node  is  drained.	If the Epilog or
	    slurm_spank_job_epilog time out, the node is drained.  In all cases,
	    errors are logged.
	    NOTE: This value is not used for prologs if PrologTimeout is config-
	    ured.  Likewise, this value is not used for epilogs if  EpilogTimout
	    is configured.

     PrologTimeout
	    The  interval  in  seconds Slurm waits for Prolog before terminating
	    them. The default value is PrologEpilogTimeout.  This  interval  ap-
	    plies  to  the  Prolog run by slurmd daemon before the job, the Pro-
	    logSlurmctld run by slurmctld daemon, and the  SPANK  plugin  prolog
	    call: slurm_spank_job_prolog.
	    If	the  PrologSlurmctld times out, the job is requeued if possible.
	    If the Prolog or slurm_spank_job_prolog time out,  the  job  is  re-
	    queued if possible and the node is drained. In all cases, errors are
	    logged.

     PrologFlags
	    Flags  to  control the Prolog behavior. By default no flags are set.
	    Multiple flags may be specified in	a  comma-separated  list.   Cur-
	    rently supported options are:

	    Alloc   If set, the Prolog script will always be executed at job al-
		    location.  Otherwise, the Prolog is executed just before the
		    first task is launched, which includes batch and interactive
		    steps  (see  LaunchParameters=use_interactive_step).   Alloc
		    can  be  useful for preparing things before a user starts to
		    use any allocated resources. In  particular,  this	flag  is
		    needed  on	a Cray system when cluster compatibility mode is
		    enabled.

		    NOTE: Use of the Alloc flag will increase the time	required
		    to start jobs.

	    Contain
		    At job allocation time, use the ProcTrack plugin to create a
		    job  container  on	all  allocated compute nodes.  This con-
		    tainer may be used for user  processes  not  launched  under
		    Slurm   control,   for  example  pam_slurm_adopt  may  place
		    processes launched through a direct  user  login  into  this
		    container. If using pam_slurm_adopt, then ProcTrackType must
		    be set to proctrack/cgroup.

		    Setting the Contain flag implicitly sets the Alloc flag.

	    DeferBatch
		    If	set,  slurmctld  will wait until the prolog completes on
		    all allocated nodes before sending the batch job launch  re-
		    quest.  If just the Alloc flag is set, slurmctld will launch
		    the batch step as soon as the job's batch node completes the
		    prolog.

		    Setting the DeferBatch flag implicitly sets the Alloc flag.

	    NoHold  This  will allow for salloc to not block until the prolog is
		    finished on each node. The blocking will happen  when  steps
		    reach  the	slurmd	and before any execution has happened in
		    the step. This is a much faster way to  work  and  if  using
		    srun  to  launch  your  tasks you should use this flag. This
		    flag cannot be combined with the Contain or X11 flags.

		    Setting the NoHold flag implicitly sets the Alloc flag.

	    ForceRequeueOnFail
		    When a batch job fails to launch due to  a	Prolog	failure,
		    always requeue it automatically even if the job requested no
		    requeues.

		    Setting  the ForceRequeueOnFail flag implicitly sets the Al-
		    loc flag.

	    RunInJob
		    Make the Prolog/Epilog run in the  extern  slurmstepd.  This
		    will  contain it in one of on the job's processes. This will
		    contain it in the cgroup if configured.

		    Setting the RunInJob flag implicitly sets  the  Contain  and
		    Alloc flags.

	    Serial  By	default,  the Prolog and Epilog scripts run concurrently
		    on each node.  This flag forces those scripts to  run  seri-
		    ally within each node, but with a significant penalty to job
		    throughput on each node.

		    NOTE: This is incompatible with RunInJob.

	    X11     Enable  Slurm's  built-in X11 forwarding capabilities.  This
		    is incompatible with ProctrackType=proctrack/linuxproc.

		    Setting the X11 flag implicitly sets the Contain  and  Alloc
		    flags.

     PrologSlurmctld
	    Fully  qualified  pathname	of a program for the slurmctld daemon to
	    execute before  granting  a  new  job  allocation  (e.g.   "/usr/lo-
	    cal/slurm/prolog_controller").  The program executes as SlurmUser on
	    the same node where the slurmctld daemon executes, giving it permis-
	    sion  to drain nodes and requeue the job if a failure occurs or can-
	    cel the job if appropriate.  Exactly what the program does	and  how
	    it	accomplishes  this is completely at the discretion of the system
	    administrator.  Information about the job being initiated, its allo-
	    cated nodes, etc. are passed to the program using environment  vari-
	    ables.  While this program is running, the nodes associated with the
	    job  will  be  have  a POWER_UP/CONFIGURING flag set in their state,
	    which can be readily viewed.  The slurmctld daemon will wait indefi-
	    nitely for this program to complete.   Once  the  program  completes
	    with  an  exit  code of zero, the nodes will be considered ready for
	    use and the program will be started.  If some node can not	be  made
	    available  for use, the program should drain the node (typically us-
	    ing the scontrol command) and terminate with a non-zero  exit  code.
	    A  non-zero  exit  code will result in the job being requeued (where
	    possible) or killed. Note that only batch jobs can be requeued.  See
	    Prolog and Epilog Scripts for more information.

	    NOTE: It is possible to configure multiple prolog scripts by includ-
	    ing this option on multiple lines.

     PropagatePrioProcess
	    Controls the scheduling priority (nice value) of user spawned tasks.

	    0	 The tasks will inherit the scheduling priority from  the  slurm
		 daemon.  This is the default value.

	    1	 The  tasks  will inherit the scheduling priority of the command
		 used to submit them (e.g. srun or sbatch).  Unless the  job  is
		 submitted by user root, the tasks will have a scheduling prior-
		 ity no higher than the slurm daemon spawning them.

	    2	 The  tasks  will inherit the scheduling priority of the command
		 used to submit them (e.g. srun or sbatch) with the  restriction
		 that  their nice value will always be one higher than the slurm
		 daemon (i.e.  the tasks scheduling priority will be lower  than
		 the slurm daemon).

     PropagateResourceLimits
	    A  comma-separated	list of resource limit names.  The slurmd daemon
	    uses these names to obtain the associated (soft) limit  values  from
	    the user's process environment on the submit node.	These limits are
	    then propagated and applied to the jobs that will run on the compute
	    nodes.   This  parameter can be useful when system limits vary among
	    nodes.  Any resource limits that do not appear in the list	are  not
	    propagated.  However, the user can override this by specifying which
	    resource  limits  to propagate with the sbatch or srun "--propagate"
	    option. If neither PropagateResourceLimits or  PropagateResourceLim-
	    itsExcept  are configured and the "--propagate" option is not speci-
	    fied, then the default action is to propagate all limits.  Only  one
	    of	the  parameters,  either PropagateResourceLimits or PropagateRe-
	    sourceLimitsExcept, may be specified.  The user limits can	not  ex-
	    ceed hard limits under which the slurmd daemon operates. If the user
	    limits are not propagated, the limits from the slurmd daemon will be
	    propagated	to the user's job. The limits used for the Slurm daemons
	    can be set in the /etc/sysconf/slurm  file.  For  more  information,
	    see:  https://slurm.schedmd.com/faq.html#memlock The following limit
	    names are supported by Slurm (although some options may not be  sup-
	    ported on some systems):

	    ALL       All limits listed below (default)

	    NONE      No limits listed below

	    AS	      The maximum address space (virtual memory) for a process.

	    CORE      The maximum size of core file

	    CPU       The maximum amount of CPU time

	    DATA      The maximum size of a process's data segment

	    FSIZE     The  maximum  size of files created. Note that if the user
		      sets  FSIZE  to  less  than  the	current  size	of   the
		      slurmd.log, job launches will fail with a 'File size limit
		      exceeded' error.

	    MEMLOCK   The maximum size that may be locked into memory

	    NOFILE    The maximum number of open files

	    NPROC     The maximum number of processes available

	    RSS       The maximum resident set size. Note that this only has ef-
		      fect with Linux kernels 2.4.30 or older or BSD.

	    STACK     The maximum stack size

     PropagateResourceLimitsExcept
	    A comma-separated list of resource limit names.  By default, all re-
	    source  limits will be propagated, (as described by the PropagateRe-
	    sourceLimits parameter), except for the  limits  appearing	in  this
	    list. The user can override this by specifying which resource limits
	    to	propagate  with  the  sbatch  or srun "--propagate" option.  See
	    PropagateResourceLimits above for a list of valid limit names.

     RebootProgram
	    Program to be executed on each compute node to reboot it. Invoked on
	    each node once it becomes idle after the command  "scontrol  reboot"
	    is	executed  by  an  authorized user or a job is submitted with the
	    "--reboot" option.	After rebooting, the node is returned to  normal
	    use.   This  can  alternatively be set to the name of a PowerAction.
	    See ResumeTimeout to configure the time you expect a reboot to  fin-
	    ish  in.  A node will be marked DOWN if it doesn't reboot within Re-
	    sumeTimeout.

     ReconfigFlags
	    Flags to control various actions that may be taken when an "scontrol
	    reconfig" command is issued. Currently the options are:

	    KeepPartInfo     If set, an "scontrol reconfig" command  will  main-
			     tain  the	in-memory value of partition "state" and
			     other parameters that may have been dynamically up-
			     dated by "scontrol update".  Partition  information
			     in  the slurm.conf file will be merged with in-mem-
			     ory data. This flag  supersedes  the  KeepPartState
			     flag.

	    KeepPartState    If  set,  an  "scontrol reconfig" command will pre-
			     serve only the current "state" value  of  in-memory
			     partitions  and  will reset all other parameters of
			     the partitions that may have been	dynamically  up-
			     dated  by	"scontrol update" to the values from the
			     slurm.conf  file.	Partition  information	in   the
			     slurm.conf file will be merged with in-memory data.

	    KeepPowerSaveSettings
			     If  set,  an  "scontrol reconfig" command will pre-
			     serve the current state  of  SuspendExcNodes,  Sus-
			     pendExcParts and SuspendExcStates.

	    The default for the above flags is not set, and the "scontrol recon-
	    fig"  will	rebuild the partition information using only the defini-
	    tions in the slurm.conf file.

     RequeueExit
	    Enables automatic requeue for batch jobs which exit with the  speci-
	    fied  values.  Separate multiple exit code by a comma and/or specify
	    numeric ranges using a  "-"  separator  (e.g.  "RequeueExit=1-9,18")
	    Jobs will be put back in to pending state and later scheduled again.
	    Restarted	  jobs	  will	  have	  the	 environment	variable
	    SLURM_RESTART_COUNT set to the number of  times  the  job  has  been
	    restarted.

     RequeueExitHold
	    Enables  automatic requeue for batch jobs which exit with the speci-
	    fied values, with these jobs being held until released  manually  by
	    the user.  Separate multiple exit code by a comma and/or specify nu-
	    meric ranges using a "-" separator (e.g. "RequeueExitHold=10-12,16")
	    These  jobs  are  put in the JOB_SPECIAL_EXIT exit state.  Restarted
	    jobs will have the environment variable SLURM_RESTART_COUNT  set  to
	    the number of times the job has been restarted.

     ResumeFailProgram
	    The  program  that	will be executed when nodes fail to resume to by
	    ResumeTimeout. The argument to the program will be the names of  the
	    failed nodes (using Slurm's hostlist expression format).  It can al-
	    ternatively  be  set to the name of a PowerAction.	Programs will be
	    killed if they run longer than the	largest  configured,  global  or
	    partition, ResumeTimeout or SuspendTimeout.

     ResumeProgram
	    Slurm supports a mechanism to reduce power consumption on nodes that
	    remain  idle  for an extended period of time.  This is typically ac-
	    complished by reducing voltage and frequency or  powering  the  node
	    down.   ResumeProgram  is  the  program that will be executed when a
	    node in power save mode is assigned work to perform. It can alterna-
	    tively be set to the name of a PowerAction.  For reasons  of  relia-
	    bility, ResumeProgram may execute more than once for a node when the
	    slurmctld  daemon crashes and is restarted.  If ResumeProgram is un-
	    able to restore a node to service with a responding  slurmd  and  an
	    updated  BootTime,	it should set the node state to DOWN, which will
	    result in a requeue of any job associated with the node - this  will
	    happen automatically if the node doesn't register within ResumeTime-
	    out.   SchedulerParameters=requeue_on_resume_failure  can be used to
	    always requeue batch jobs in this situation, even  if  the	job  re-
	    quested no requeues.  If the node isn't actually rebooted (i.e. when
	    multiple-slurmd  is  configured)  starting	slurmd	with "-b" option
	    might be useful.  The program executes as SlurmUser.   The	argument
	    to	the  program will be the names of nodes to be removed from power
	    savings mode (using Slurm's hostlist expression format).  A  job  to
	    node  mapping  is  available in JSON format by reading the temporary
	    file specified by the SLURM_RESUME_FILE environment variable.   This
	    file  is  closed once slurmctld shuts down. If ResumeProgram is run-
	    ning, slurmctld shutdown is delayed by up to ten seconds to give Re-
	    sumeProgram time to read this file. Therefore, this file  should  be
	    read  at  the  beginning of ResumeProgram.	By default no program is
	    run.  Programs will be killed if they run longer  than  the  largest
	    configured, global or partition, ResumeTimeout or SuspendTimeout.

     ResumeRate
	    The  rate  at  which nodes in power save mode are returned to normal
	    operation by ResumeProgram.  The value is  a  number  of  nodes  per
	    minute  and it can be used to prevent power surges if a large number
	    of nodes in power save mode are assigned work at the same time (e.g.
	    a large job starts).  A value of zero results in no limits being im-
	    posed.  The default value is 300 nodes per minute.

     ResumeTimeout
	    Maximum time permitted (in seconds) between when a node  resume  re-
	    quest  is  issued  and  when the node is actually available for use.
	    Nodes which fail to respond in this time frame will be  marked  DOWN
	    and  the  jobs  scheduled  on  the node requeued if possible.  Nodes
	    which reboot after this time frame will be marked DOWN with a reason
	    of "Node unexpectedly rebooted." The default value	is  60	seconds,
	    and the maximum value is either 65533 or INFINITE.	See also Return-
	    ToService.

     ResvEpilog
	    Fully  qualified  pathname of a program for the slurmctld to execute
	    when a reservation ends. It does not run when a running  reservation
	    is deleted. The program can be used to cancel jobs, modify partition
	    configuration,  etc.  The reservation named will be passed as an ar-
	    gument to the program.  By default there is no epilog.

     ResvOverRun
	    Describes how long a job already running in a reservation should  be
	    permitted  to execute after the end time of the reservation has been
	    reached.  The time period is specified in minutes  and  the  default
	    value  is  0  (kill  the job immediately).	The value may not exceed
	    65533 minutes, although a value of "UNLIMITED" is supported to  per-
	    mit a job to run indefinitely after its reservation is terminated.

     ResvProlog
	    Fully  qualified  pathname of a program for the slurmctld to execute
	    when a reservation begins. The program can be used to  cancel  jobs,
	    modify  partition configuration, etc.  The reservation named will be
	    passed as an argument to the program.  By default there is	no  pro-
	    log.

     ReturnToService
	    Controls  when a DOWN node will be returned to service.  The default
	    value is 0.  Supported values include

	    0	A node will remain in the DOWN state until a system  administra-
		tor explicitly changes its state (even if the slurmd daemon reg-
		isters and resumes communications).

	    1	A DOWN node will become available for use upon registration with
		a  valid  configuration  only  if  it  was set DOWN due to being
		non-responsive.  If the node was set DOWN for any  other  reason
		(low  memory, unexpected reboot, etc.), its state will not auto-
		matically be changed.  A node registers with a valid  configura-
		tion  if  its  memory,	GRES,  CPU  count,  etc. are equal to or
		greater than the values configured in slurm.conf.

	    2	A DOWN node will become available for use upon registration with
		a valid configuration. The node could have been set DOWN for any
		reason.  A node registers with a valid configuration if its mem-
		ory, GRES, CPU count, etc. are equal to or greater than the val-
		ues configured in slurm.conf.

     SchedulerParameters
	    The interpretation of this parameter varies by SchedulerType.   Mul-
	    tiple options may be comma separated.

	    allow_zero_lic
		   If  set, then job submissions requesting more than configured
		   licenses won't be rejected.

	    assoc_limit_stop
		   If set and a job cannot start due to association limits, then
		   do not attempt to initiate any lower priority  jobs	in  that
		   partition.  Setting	this  can decrease system throughput and
		   utilization, but avoid potentially starving	larger	jobs  by
		   preventing them from launching indefinitely.

	    batch_sched_delay=How long, in seconds, the scheduling of batch jobs
	    can be delayed.
		   This  can be useful in a high-throughput environment in which
		   batch jobs are submitted at a very high rate (i.e. using  the
		   sbatch  command) and one wishes to reduce the overhead of at-
		   tempting to schedule each job at submit  time.   The  default
		   value is 3 seconds.

	    bb_array_stage_cnt=Number of tasks from a job array that should be
	    available for burst buffer
		   resource  allocation.  Higher values will increase the system
		   overhead as each task from the job array will be moved to its
		   own job record in memory, so relatively small values are gen-
		   erally recommended.	The default value is 10.

	    bf_allow_magnetic_slot
		   By default the backfill scheduler will not add a slot in  the
		   bf  plan  when  a job attempts to use a magnetic reservation.
		   This option reverses this to make the backfill scheduler  add
		   slots  in the bf plan when jobs are eligible to run in a mag-
		   netic reservation. With this option enabled, jobs inside mag-
		   netic  reservations	will  respect  priorities  and	also  be
		   counted  against the backfill limits such as bf_max_job_test.
		   NOTE: Backfill  first  evaluates  jobs  inside  reservations,
		   which  means all magnetic jobs will be tested first. When en-
		   abling this option, make sure to revise (increasing if neces-
		   sary) the backfill limits configured to validate backfill cy-
		   cle gets to test the expected jobs in the  queue.   NOTE:  If
		   bf_one_resv_per_job	is  used along with this option the mag-
		   netic reservation slot will now be the only slot  in  the  bf
		   plan.  Otherwise  the  slot will be the first one outside the
		   magnetic reservation.

	    bf_busy_nodes
		   When selecting resources for pending jobs to reserve for  fu-
		   ture execution (i.e. the job can not be started immediately),
		   then  preferentially select nodes that are in use.  This will
		   tend to leave currently idle resources  available  for  back-
		   filling  longer  running  jobs, but may result in allocations
		   having less than optimal network topology.	This  option  is
		   currently only supported by the select/cons_tres plugin.

	    bf_continue
		   The	backfill  scheduler periodically releases locks in order
		   to permit other operations to proceed  rather  than	blocking
		   all	activity  for  what could be an extended period of time.
		   Setting this option will cause the backfill scheduler to con-
		   tinue processing pending jobs from its original job list  af-
		   ter releasing locks even if job or node state changes.

	    bf_hetjob_immediate
		   Instruct the backfill scheduler to attempt to start a hetero-
		   geneous  job  as soon as all of its components are determined
		   able to do so. Otherwise, the backfill scheduler  will  delay
		   heterogeneous  jobs	initiation attempts until after the rest
		   of the queue has been processed. This  delay  may  result  in
		   lower  priority  jobs  being allocated resources, which could
		   delay the initiation of the heterogeneous job due to  account
		   and/or  QOS	limits being reached. This option is disabled by
		   default. If enabled and bf_hetjob_prio=min is not  set,  then
		   it would be automatically set.

	    bf_hetjob_prio=[min|avg|max]
		   At the beginning of each backfill scheduling cycle, a list of
		   pending  to	be  scheduled  jobs  is  sorted according to the
		   precedence order configured in PriorityType. This option  in-
		   structs  the  scheduler to alter the sorting algorithm to en-
		   sure that all components belonging to the same  heterogeneous
		   job will be attempted to be scheduled consecutively (thus not
		   fragmented  in  the	resulting  list). More specifically, all
		   components from the same heterogeneous job will be treated as
		   if they all have the same priority (minimum, average or maxi-
		   mum depending upon this  option's  parameter)  when	compared
		   with  other jobs (or other heterogeneous job components). The
		   original order will be preserved within  the  same  heteroge-
		   neous job. Note that the operation is calculated for the Pri-
		   orityTier  layer and for the Priority resulting from the pri-
		   ority/multifactor plugin calculations. When enabled,  if  any
		   heterogeneous job requested an advanced reservation, then all
		   of  that  job's components will be treated as if they had re-
		   quested an advanced reservation (and get preferential  treat-
		   ment in scheduling).

		   Note  that this operation does not update the Priority values
		   of the heterogeneous job components, only their order  within
		   the	list, so the output of the sprio command will not be af-
		   fected.

		   Heterogeneous jobs have special scheduling  properties:  they
		   are only scheduled by the backfill scheduling plugin, each of
		   their  components is considered separately when reserving re-
		   sources (and might have different PriorityTier  or  different
		   Priority values), and no heterogeneous job component is actu-
		   ally  allocated  resources until all if its components can be
		   initiated.  This may imply potential scheduling deadlock sce-
		   narios because components from different  heterogeneous  jobs
		   can	start reserving resources in an interleaved fashion (not
		   consecutively), but none of the jobs  can  reserve  resources
		   for	all  components and start. Enabling this option can help
		   to mitigate this problem. By default,  this	option	is  dis-
		   abled.

	    bf_interval=The number of seconds between backfill iterations.
		   Higher  values result in less overhead and better responsive-
		   ness.  This option applies only to  SchedulerType=sched/back-
		   fill.  Default: 30, Min: 1, Max: 10800 (3h).  A setting of -1
		   will disable the backfill scheduling loop.

	    bf_job_part_count_reserve=The backfill scheduling logic will reserve
	    resources for the specified count
		   of  highest	priority  jobs	in each partition.  For example,
		   bf_job_part_count_reserve=10 will cause the	backfill  sched-
		   uler  to  reserve resources for the ten highest priority jobs
		   in each partition.	Any  lower  priority  job  that  can  be
		   started using currently available resources and not adversely
		   impact  the expected start time of these higher priority jobs
		   will be started by the backfill scheduler The  default  value
		   is zero, which will reserve resources for any pending job and
		   delay   initiation	of   lower   priority  jobs.   Also  see
		   bf_min_age_reserve and bf_min_prio_reserve.	Default: 0, Min:
		   0, Max: 100000.

	    bf_licenses
		   Require the backfill scheduling logic to track and  plan  for
		   license  availability. By default, any job blocked on license
		   availability will not have resources reserved which can  lead
		   to  job  starvation.   This option implicitly enables bf_run-
		   ning_job_reserve.

	    bf_max_job_array_resv=The maximum number of tasks from a job array
	    for which the backfill scheduler
		   will reserve resources in the future.  Since job  arrays  can
		   potentially have millions of tasks, the overhead in reserving
		   resources for all tasks can be prohibitive.	In addition var-
		   ious limits may prevent all the jobs from starting at the ex-
		   pected  times.   This  has no impact upon the number of tasks
		   from a job array that can be started immediately, only  those
		   tasks  expected  to	start at some future time.  Default: 20,
		   Min: 0, Max: 1000.  NOTE: Jobs submitted to	multiple  parti-
		   tions  appear in the job queue once per partition. If differ-
		   ent copies of a single job array record aren't consecutive in
		   the job queue and another job array	record	is  in	between,
		   then bf_max_job_array_resv tasks are considered per partition
		   that the job is submitted to.

	    bf_max_job_assoc=The maximum number of jobs per user association to
	    attempt starting with the
		   backfill    scheduler.     This   setting   is   similar   to
		   bf_max_job_user but is handy if a user has multiple	associa-
		   tions  equating  to	basically  different users.  One can set
		   this limit to prevent users from flooding the backfill  queue
		   with  jobs that cannot start and that prevent jobs from other
		   users to start.   This  option  applies  only  to  Scheduler-
		   Type=sched/backfill.     Also    see   the	bf_max_job_user,
		   bf_max_job_part,  bf_max_job_test,  and  bf_max_job_user_part
		   options.   Set  bf_max_job_test  to	a value much higher than
		   bf_max_job_assoc.   Default:  0  (no  limit),  Min:	0,  Max:
		   bf_max_job_test.

	    bf_max_job_part=The maximum number of jobs per partition to attempt
	    starting with the backfill
		   scheduler.  This  can  be especially helpful for systems with
		   large numbers of partitions and jobs.   This  option  applies
		   only  to  SchedulerType=sched/backfill.   Also see the parti-
		   tion_job_depth    and    bf_max_job_test    options.      Set
		   bf_max_job_test  to a value much higher than bf_max_job_part.
		   Default: 0 (no limit), Min: 0, Max: bf_max_job_test.

	    bf_max_job_start=The maximum number of jobs which can be initiated
	    in a single iteration
		   of the backfill  scheduler.	 This  option  applies	only  to
		   SchedulerType=sched/backfill.  Default: 0 (no limit), Min: 0,
		   Max: 10000.

	    bf_max_job_test=The maximum number of jobs to attempt backfill
	    scheduling for
		   (i.e.  the  queue depth).  Higher values result in more over-
		   head and less responsiveness.  Until an attempt  is	made  to
		   backfill  schedule  a job, its expected initiation time value
		   will not be set.  In the case of large clusters,  configuring
		   a  relatively  small value may be desirable.  This option ap-
		   plies only to  SchedulerType=sched/backfill.   Default:  500,
		   Min: 1, Max: 1,000,000.

	    bf_max_job_user=The maximum number of jobs per user to attempt
	    starting with the backfill
		   scheduler for ALL partitions.  One can set this limit to pre-
		   vent  users	from  flooding the backfill queue with jobs that
		   cannot start and that prevent jobs from other users to start.
		   This is similar to the MAXIJOB limit in  Maui.   This  option
		   applies  only  to SchedulerType=sched/backfill.  Also see the
		   bf_max_job_part,  bf_max_job_test,  and  bf_max_job_user_part
		   options.   Set  bf_max_job_test  to	a value much higher than
		   bf_max_job_user.   Default:	0  (no	limit),  Min:  0,   Max:
		   bf_max_job_test.

	    bf_max_job_user_part=The maximum number of jobs per user per parti-
	    tion to attempt starting with the
		   backfill scheduler for any single partition.  This option ap-
		   plies  only	to  SchedulerType=sched/backfill.   Also see the
		   bf_max_job_part,  bf_max_job_test,  and  bf_max_job_user  op-
		   tions.  Default: 0 (no limit), Min: 0, Max: bf_max_job_test.

	    bf_max_time=The maximum time in seconds the backfill scheduler can
	    spend (including time
		   spent sleeping when locks are released) before discontinuing,
		   even  if  maximum job counts have not been reached.	This op-
		   tion applies only to SchedulerType=sched/backfill.	The  de-
		   fault value is the value of bf_interval (which defaults to 30
		   seconds).   Default: bf_interval value (def. 30 sec), Min: 1,
		   Max:  3600  (1h).   NOTE:  If  bf_interval	is   short   and
		   bf_max_time is large, this may cause locks to be acquired too
		   frequently and starve out other serviced RPCs. It's advisable
		   if  using  this parameter to set max_rpc_cnt high enough that
		   scheduling isn't always disabled, and low enough that the in-
		   teractive workload can get through in a reasonable period  of
		   time.  max_rpc_cnt  needs  to  be  below 256 (the default RPC
		   thread limit). Running around the middle (150) may  give  you
		   good results.  NOTE: When increasing the amount of time spent
		   in the backfill scheduling cycle, Slurm can be prevented from
		   responding  to client requests in a timely manner. To address
		   this you can use max_rpc_cnt to specify a  number  of  queued
		   RPCs before the scheduler stops to respond to these requests.

	    bf_min_age_reserve=The backfill and main scheduling logic will not
	    reserve resources for pending
		   jobs  until	they have been pending and runnable for at least
		   the specified number of seconds.  In addition,  jobs  waiting
		   for	less  than the specified number of seconds will not pre-
		   vent a newly submitted job from starting immediately, even if
		   the newly submitted job has a lower priority.   This  can  be
		   valuable if jobs lack time limits or all time limits have the
		   same  value.   The  default value is zero, which will reserve
		   resources for any pending job and delay initiation  of  lower
		   priority   jobs.    Also  see  bf_job_part_count_reserve  and
		   bf_min_prio_reserve.  Default: 0, Min: 0,  Max:  2592000  (30
		   days).

	    bf_min_prio_reserve=The backfill and main scheduling logic will not
	    reserve resources for pending
		   jobs  unless they have a priority equal to or higher than the
		   specified value.  In addition, jobs	with  a  lower	priority
		   will  not prevent a newly submitted job from starting immedi-
		   ately, even if the newly submitted job has a lower  priority.
		   This  can  be  valuable if one wished to maximize system uti-
		   lization without regard for	job  priority  below  a  certain
		   threshold.  The default value is zero, which will reserve re-
		   sources  for  any  pending  job and delay initiation of lower
		   priority  jobs.   Also  see	 bf_job_part_count_reserve   and
		   bf_min_age_reserve.	Default: 0, Min: 0, Max: 2^63.

	    bf_node_space_size=Size of backfill node_space table. Adding a sin-
	    gle job to backfill reservations
		   in the worst case can consume two node_space records.  In the
		   case  of large clusters, configuring a relatively small value
		   may be desirable.  This option  applies  only  to  Scheduler-
		   Type=sched/backfill.   Also	see  bf_max_job_test and bf_run-
		   ning_job_reserve.  Default:	bf_max_job_test,  Min:	2,  Max:
		   2,000,000.

	    bf_one_resv_per_job
		   Disallow  adding  more than one backfill reservation per job.
		   The scheduling logic builds a sorted  list  of  job-partition
		   pairs. Jobs submitted to multiple partitions have as many en-
		   tries  in  the  list as requested partitions. By default, the
		   backfill scheduler may evaluate all the job-partition entries
		   for a single job, potentially reserving  resources  for  each
		   pair,  but  only starting the job in the reservation offering
		   the earliest start time.  Having a single job  reserving  re-
		   sources  for  multiple partitions could impede other jobs (or
		   hetjob components) from reserving resources already	reserved
		   for	the partitions that don't offer the earliest start time.
		   A single job that requests multiple partitions can also  pre-
		   vent  itself from starting earlier in a lower priority parti-
		   tion if the partitions overlap nodes and a backfill	reserva-
		   tion  in  the higher priority partition blocks nodes that are
		   also in the lower priority partition.  This option  makes  it
		   so  that a job submitted to multiple partitions will stop re-
		   serving resources  once  the  first	job-partition  pair  has
		   booked a backfill reservation. Subsequent pairs from the same
		   job	will  only be tested to start now. This allows for other
		   jobs to be able to book the other pairs resources at the cost
		   of not guaranteeing that the multi partition job  will  start
		   in  the partition offering the earliest start time (unless it
		   can start immediately).  This option is disabled by default.

	    bf_resolution=The number of seconds in the resolution of data main-
	    tained about when jobs
		   begin and end. Higher values result in better  responsiveness
		   and quicker backfill cycles by using larger blocks of time to
		   determine  node  eligibility.  However, higher values lead to
		   less efficient system planning, and may miss opportunities to
		   improve system utilization.	 This  option  applies	only  to
		   SchedulerType=sched/backfill.  Default: 60, Min: 1, Max: 3600
		   (1 hour).

	    bf_running_job_reserve
		   Add	an  extra step to backfill logic, which creates backfill
		   reservations for jobs running on whole nodes.  This option is
		   disabled by default.

	    bf_topopt_enable
		   Enable experimental hook to control whether to delay jobs  in
		   backfill   for   a	better	 placement.   Modify   src/plug-
		   ins/sched/backfill/oracle.c for testing.

		   It is recommended to disable the main scheduler so  that  all
		   jobs  are  planned  through	backfill  and utilize the oracle
		   function(). This can  be  done  by  setting	SchedulerParame-
		   ters=sched_interval=-1.

		   It's also recommended to run with SchedulerParameters=bf_run-
		   ning_job_reserve for better planning.

	    bf_topopt_iterations
		   The number of successive backfill map slots that a job may be
		   delayed.   This option applies only when the bf_topopt_enable
		   is set.

	    bf_window=The number of minutes into the future to look when consid-
	    ering jobs to schedule.
		   Higher values result in more overhead  and  less  responsive-
		   ness.   A  value at least as long as the highest allowed time
		   limit is generally advisable to prevent job	starvation.   In
		   order  to  limit  the  amount of data managed by the backfill
		   scheduler, if the value of bf_window is increased, then it is
		   generally advisable to also increase bf_resolution.	This op-
		   tion applies only to SchedulerType=sched/backfill.	Default:
		   1440 (1 day), Min: 1, Max: 43200 (30 days).

	    bf_window_linear=For performance reasons, the backfill scheduler
	    will decrease precision in
		   calculation	of  job  expected termination times. By default,
		   the precision starts at 30 seconds  and  that  time	interval
		   doubles with each evaluation of currently executing jobs when
		   trying  to determine when a pending job can start. This algo-
		   rithm can support an environment with many thousands of  run-
		   ning jobs, but can result in the expected start time of pend-
		   ing jobs being gradually being deferred due to lack of preci-
		   sion. A value for bf_window_linear will cause the time inter-
		   val	to  be increased by a constant amount on each iteration.
		   The value is specified in units of seconds.	For  example,  a
		   value  of  60  will cause the backfill scheduler on the first
		   iteration to identify the job ending soonest and determine if
		   the pending job can be started after that job plus all  other
		   jobs  expected  to  end  within  30	seconds (default initial
		   value) of the first job. On the next iteration,  the  pending
		   job	will  be  evaluated  for starting after the next job ex-
		   pected to end plus all jobs ending within 90 seconds of  that
		   time  (30  second  default, plus the 60 second option value).
		   The third iteration will have a 150	second	window	and  the
		   fourth  210	seconds.   Without this option, the time windows
		   will double on each iteration and thus be 30,  60,  120,  240
		   seconds,  etc. The use of bf_window_linear is not recommended
		   with more than a few hundred simultaneously executing jobs.

	    bf_yield_interval=The backfill scheduler will periodically relin-
	    quish locks in order for other
		   pending operations to take place.  This specifies  the  times
		   when  the  locks  are  relinquished in microseconds.  Smaller
		   values may be helpful for high throughput computing when used
		   in conjunction with the bf_continue	option.   Also	see  the
		   bf_yield_sleep  option.   Default: 2,000,000 (2 sec), Min: 1,
		   Max: 10,000,000 (10 sec).

	    bf_yield_rpc_cnt
		   If the number of active threads in the  slurmctld  daemon  is
		   lower  than	this  value,  continue	scheduling  of jobs. The
		   scheduler will check this condition at certain points in code
		   and release previously yielded locks if  necessary.	This  is
		   used  to  instruct Slurm when to stop processing requests and
		   start  scheduling  new  jobs,  which  is  the   opposite   of
		   max_rpc_cnt.  In conjunction with max_rpc_cnt, it can improve
		   Slurm's  responsiveness  to	spikes	of  requests.	Default:
		   MAX((max_rpc_cnt  /	10), 20) (option disabled), Min: 0, Max:
		   200.

		   NOTE: If a value is set, then a value lower than  max_rpc_cnt
		   is  recommended.  It may require some tuning for each system,
		   but needs to be high enough that scheduling isn't always dis-
		   abled, and low enough that requests can get through in a rea-
		   sonable period of time. Avoid both values being close  enough
		   to  cause continuous switching between request processing and
		   scheduling.

	    bf_yield_sleep=The backfill scheduler will periodically relinquish
	    locks in order for other
		   pending operations to take place.  This specifies the  length
		   of time for which the locks are relinquished in microseconds.
		   Also see the bf_yield_interval option.  Default: 500,000 (0.5
		   sec), Min: 1, Max: 10,000,000 (10 sec).

	    build_queue_timeout=Defines the maximum time that can be devoted to
	    building a queue of jobs to
		   be tested for scheduling.  If the system has a huge number of
		   jobs  with dependencies, just building the job queue can take
		   so much time as to adversely impact	overall  system  perfor-
		   mance  and this parameter can be adjusted as needed.  The de-
		   fault value is 2,000,000 microseconds (2 seconds).

	    correspond_after_task_cnt=Defines the number of array tasks that get
	    split for potential aftercorr
		   dependency check. Low number may  result  in  dependent  task
		   check failures when the job one depends on gets purged before
		   the split.  Default: 10.

	    default_queue_depth=The default number of jobs to attempt scheduling
	    (i.e. the queue depth) when a
		   running job completes or other routine actions occur, however
		   the	frequency with which the scheduler is run may be limited
		   by using the defer or sched_min_interval parameters described
		   below.  The main scheduling	loop  will  run  (ignoring  this
		   limit)  on  a less frequent basis as defined by the sched_in-
		   terval option described below. The default value is 100.  See
		   the partition_job_depth option to limit depth by partition.

	    defer  Setting this option will avoid attempting  to  schedule  each
		   job	individually  at  job  submit time, but defer it until a
		   later time when scheduling multiple jobs  simultaneously  may
		   be  possible.   This option may improve system responsiveness
		   when large numbers of jobs (many hundreds) are  submitted  at
		   the same time, but it will delay the initiation time of indi-
		   vidual jobs. Also see default_queue_depth above.

	    defer_batch
		   Like  defer,  but  only will defer scheduling for batch jobs.
		   Interactive allocations from salloc/srun will  still  attempt
		   to schedule immediately upon submission.

	    delay_boot=Do not reboot nodes in order to satisfied this job's fea-
	    ture specification if
		   the	job has been eligible to run for less than this time pe-
		   riod.  If the job has waited for less than the specified  pe-
		   riod, it will use only nodes which already have the specified
		   features.   The  argument is in units of minutes.  Individual
		   jobs may override this default value  with  the  --delay-boot
		   option.

	    disable_job_shrink
		   Deny  user requests to shrink the size of running jobs. (How-
		   ever, running jobs may still shrink due to  node  failure  if
		   the --no-kill option was set.)

	    disable_hetjob_steps
		   Disable job steps that span heterogeneous job allocations.

	    enable_hetjob_steps
		   Enable  job	steps  that  span heterogeneous job allocations.
		   The default value.

	    enable_user_top
		   Enable use of the "scontrol top"  command  by  non-privileged
		   users.

	    extra_constraints
		   Enable  node  filtering  with  the --extra option for salloc,
		   sbatch, and srun and the node's Extra field.

	    ignore_constraint_validation
		   If set, and a job requests --constraint any features  in  the
		   request that would create an invalid request with the current
		   system  will  not generate an error.  This is helpful for dy-
		   namic systems where nodes with features come  and  go.   Jobs
		   will  remain  in the job queue until the requested feature is
		   in the cluster and available.  Please note using this  option
		   will not protect you from typos.  See also ignore_prefer_val-
		   idation.

	    Ignore_NUMA
		   Some processors (e.g. AMD Opteron 6000 series) contain multi-
		   ple NUMA nodes per socket. This is a configuration which does
		   not	map  into the hardware entities that Slurm optimizes re-
		   source allocation for (PU/thread,  core,  socket,  baseboard,
		   node and network switch). In order to optimize resource allo-
		   cations  on such hardware, Slurm will consider each NUMA node
		   within the socket as a separate socket by  default.	Use  the
		   Ignore_NUMA	option	to  report the correct socket count, but
		   not optimize resource allocations on the NUMA nodes.

		   NOTE: Since hwloc 2.0 NUMA Nodes are  are  not  part  of  the
		   main/CPU  topology  tree,  because  of that if Slurm is build
		   with hwloc 2.0 or above Slurm will treat HWLOC_OBJ_PACKAGE as
		   Socket, you can  change  this  behavior  using  SlurmdParame-
		   ters=l3cache_as_socket.

	    ignore_prefer_validation
		   If  set,  and a job requests --prefer any features in the re-
		   quest that would create an invalid request with  the  current
		   system  will  not generate an error.  This is helpful for dy-
		   namic systems where nodes with features come and go.   Please
		   note  using this option will not protect you from typos.  See
		   also ignore_constraint_validation.

	    max_array_tasks
		   Specify the maximum number of tasks that can be included in a
		   job array.  The default limit is MaxArraySize, but  this  op-
		   tion  can  be used to set a lower limit. For example, max_ar-
		   ray_tasks=1000 and MaxArraySize=100001 would permit a maximum
		   task ID of 100000, but limit the number of tasks in any  sin-
		   gle job array to 1000.

	    max_rpc_cnt=If the number of active threads in the slurmctld daemon
	    is equal to or
		   larger  than this value, defer scheduling of jobs. The sched-
		   uler will check this condition at certain points in code  and
		   yield  locks  if necessary.	This can improve Slurm's ability
		   to process requests at a cost of  initiating  new  jobs  less
		   frequently. Default: 0 (option disabled), Min: 0, Max: 1000.

		   NOTE:  The  maximum number of threads (MAX_SERVER_THREADS) is
		   internally set to 256 and defines the number of  served  RPCs
		   at a given time. Setting max_rpc_cnt to more than 256 will be
		   only  useful  to  let backfill continue scheduling work after
		   locks have been yielded (i.e. each 2 seconds) if there are  a
		   maximum  of	MAX(max_rpc_cnt/10,  20) RPCs in the queue. i.e.
		   max_rpc_cnt=1000, the scheduler will be allowed  to	continue
		   after  yielding  locks only when there are less than or equal
		   to 100 pending RPCs.  If a value is set, then a value  of  10
		   or higher is recommended. It may require some tuning for each
		   system, but needs to be high enough that scheduling isn't al-
		   ways  disabled,  and low enough that requests can get through
		   in a reasonable period of time.

	    max_sched_time=How long, in seconds, the main scheduling loop will
	    run before exiting.
		   Note that all other Slurm operations, including responses  to
		   RPCs, will be deferred while the scheduling loop is running.

		   Defaults  to 2 seconds in most cases, or 1 second if Message-
		   Timeout is set to 3 or less. The maximum  value  is	half  of
		   MessageTimeout.  Larger  values will be replaced with the ap-
		   plicable default value.

		   NOTE: A higher value will allow the main scheduler to  evalu-
		   ate	more pending jobs per cycle. If this timeout is reached,
		   some low priority pending jobs will not be  evaluated,  which
		   can	leave  their reason for pending as 'None' until they can
		   be evaluated in a future scheduling cycle.

	    max_script_size=Specify the maximum size of a batch script, in
	    bytes.
		   The default value is 4  megabytes.	Larger	values	may  ad-
		   versely impact system performance.

	    max_submit_line_size=Specify the maximum size of a submit line, in
	    bytes.
		   The default value is 1 megabtye.  This option cannot exceed 2
		   megabytes.

	    max_switch_wait=Maximum number of seconds that a job can delay exe-
	    cution waiting for the
		   specified desired switch count. The default value is 300 sec-
		   onds.

	    no_backup_scheduling
		   If used, the backup controller will not schedule jobs when it
		   takes  over. The backup controller will allow jobs to be sub-
		   mitted, modified and cancelled but won't schedule  new  jobs.
		   This  is  useful  in  Cray  environments when the backup con-
		   troller resides on an external Cray node.

	    nohold_on_prolog_fail
		   By default, if the Prolog exits with a non-zero value the job
		   is requeued in a held state. By specifying this parameter the
		   job will be requeued but not held so that the  scheduler  can
		   dispatch it to another host.

	    pack_serial_at_end
		   If  used  with  the	select/cons_tres plugin, then put serial
		   jobs at the end of the available nodes rather  than	using  a
		   best  fit  algorithm.  This may reduce resource fragmentation
		   for some workloads.

	    partition_job_depth=The default number of jobs to attempt scheduling
	    (i.e. the queue depth)
		   from each partition/queue in Slurm's main  scheduling  logic.
		   This  limit	will  be enforced for all main scheduler cycles.
		   The	functionality  is  similar  to	that  provided	by   the
		   bf_max_job_part  option  for  the  backfill scheduling logic.
		   The default value is 0 (no limit).  Job's excluded  from  at-
		   tempted  scheduling	based upon partition will not be counted
		   against  the  default_queue_depth  limit.	Also   see   the
		   bf_max_job_part option.

	    reduce_completing_frag
		   This option is used to control how scheduling of resources is
		   performed when jobs are in the COMPLETING state, which influ-
		   ences  potential  fragmentation.   If  this option is not set
		   then no jobs will be started in any partition when any job is
		   in the COMPLETING state for less than  CompleteWait	seconds.
		   If this option is set then no jobs will be started in any in-
		   dividual  partition	that  has  a job in COMPLETING state for
		   less than CompleteWait seconds.  In addition, no jobs will be
		   started in any partition with nodes	that  overlap  with  any
		   nodes in the partition of the completing job.  This option is
		   to be used in conjunction with CompleteWait.

		   NOTE:  CompleteWait must be set in order for this to work. If
		   CompleteWait=0 then this option does nothing.

		   NOTE: reduce_completing_frag only affects the main scheduler,
		   not the backfill scheduler.

	    requeue_delay=
		   Delay before a non-Expedited Requeue job is eligible  to  run
		   after  being  requeued.  Defaults to the AuthInfo=cred_expire
		   setting, which itself defaults to 120 seconds.

	    requeue_on_resume_failure
		   In the event that nodes fail to resume by ResumeTimeout,  all
		   batch jobs will be requeued -- even if the jobs requested not
		   to	  be	requeued.    This    is    similar    to    Pro-
		   logFlags=ForceRequeueOnFail.

	    salloc_wait_nodes
		   If defined, the salloc command will wait until all  allocated
		   nodes  are ready for use (i.e. booted) before the command re-
		   turns. By default, salloc will return as soon as the resource
		   allocation has been made. The  salloc  command  can	use  the
		   --wait-all-nodes  option to override this configuration para-
		   meter.

	    sbatch_wait_nodes
		   If defined, the sbatch script will wait until  all  allocated
		   nodes  are ready for use (i.e. booted) before the initiation.
		   By default, the sbatch script will be initiated  as	soon  as
		   the	first  node  in  the job allocation is ready. The sbatch
		   command can use the --wait-all-nodes option to override  this
		   configuration parameter.

	    sched_interval=How frequently, in seconds, the main scheduling loop
	    will execute and test all
		   pending  jobs,  with  only  the  partition_job_depth limit in
		   place.  The default value is 60 seconds.   A  setting  of  -1
		   will disable the main scheduling loop.

	    sched_max_job_start=The maximum number of jobs that the main sched-
	    uling logic will start in any
		   single  execution.	The default value is zero, which imposes
		   no limit.

	    sched_min_interval=How frequently, in microseconds, the main sched-
	    uling loop will execute and test
		   any pending jobs.  The scheduler runs in  a	limited  fashion
		   every time that any event happens which could enable a job to
		   start  (e.g.  job  submit,  job  terminate,	etc.).	If these
		   events happen at a high frequency, the scheduler can run very
		   frequently and consume significant resources if not throttled
		   by this option.  This option specifies the minimum  time  be-
		   tween  the  end  of one scheduling cycle and the beginning of
		   the next scheduling cycle.  A  value  of  zero  will  disable
		   throttling  of  the	scheduling  logic interval.  The default
		   value is 2 microseconds.

	    spec_cores_first
		   Specialized cores will be selected from the	first  cores  of
		   the	first  sockets,  cycling  through the sockets on a round
		   robin basis.  By default, specialized cores will be	selected
		   from  the last cores of the last sockets, cycling through the
		   sockets on a round robin basis.

	    step_retry_count=When a step completes and there are steps ending
	    resource allocation, then
		   retry step allocations for at least this  number  of  pending
		   steps.   Also  see  step_retry_time.   The default value is 8
		   steps.

	    step_retry_time=When a step completes and there are steps ending re-
	    source allocation, then
		   retry step allocations for all steps which have been  pending
		   for	 at   least   this   number   of   seconds.    Also  see
		   step_retry_count.  The default value is 60 seconds.

	    time_min_as_soft_limit
		   Treat the --time-min limit as a soft time limit for the  job.
		   Scheduling  will plan for the shorter duration, while permit-
		   ting the job to continue running until  the	("hard")  --time
		   limit.

	    whole_hetjob
		   Requests  to  cancel, hold or release any component of a het-
		   erogeneous job will be applied to all components of the job.

		   NOTE: This option was previously named whole_pack and this is
		   still supported for backwards compatibility.

     SchedulerTimeSlice
	    Number of seconds in each time slice when gang scheduling is enabled
	    (PreemptMode=SUSPEND,GANG).  The value must be between 5 seconds and
	    65533 seconds.  The default value is 30 seconds.

     SchedulerType
	    Identifies the type of scheduler to be used.  The  scontrol  command
	    can  be  used to manually change job priorities if desired.  Accept-
	    able values include:

	    sched/backfill
		   For a backfill scheduling module to augment the default  FIFO
		   scheduling.	Backfill scheduling will initiate lower-priority
		   jobs  if doing so does not delay the expected initiation time
		   of any higher priority job.	Effectiveness of backfill sched-
		   uling is dependent upon users  specifying  job  time  limits,
		   otherwise  all  jobs  will have the same time limit and back-
		   filling is impossible.  Note documentation for the Scheduler-
		   Parameters option above.  This is the default configuration.

	    sched/builtin
		   This is the FIFO scheduler which initiates jobs  in	priority
		   order.   If any job in the partition can not be scheduled, no
		   lower priority job in that partition will be  scheduled.   An
		   exception  is made for jobs that can not run due to partition
		   constraints (e.g. the time limit) or down/drained nodes.   In
		   that  case,	lower priority jobs can be initiated and not im-
		   pact the higher priority job.  Setting  this  scheduler  type
		   will  disable  heterogeneous  jobs, since they are handled by
		   the backfill scheduler.

     ScronParameters
	    Multiple options may be comma separated.

	    enable
		   Enable the use of scrontab to submit and manage periodic  re-
		   peating jobs.

	    explicit_scancel
		   When  cancelling an scrontab job, require the user to explic-
		   itly request cancelling the job with the --cron flag in scan-
		   cel.

     SelectType
	    Identifies the type of resource  selection	algorithm  to  be  used.
	    When  changed,  all  job  information  (running and pending) will be
	    lost, since the job state save format used by each plugin is differ-
	    ent.  The only exception to this is when changing  from  the  legacy
	    cons_res to cons_tres.

	    Acceptable values include

	    select/cons_tres
		   The	resources  (cores,  memory, GPUs and all other trackable
		   resources) within a node are individually allocated	as  con-
		   sumable resources.  Note that whole nodes can be allocated to
		   jobs for selected partitions by using the partition Exclusive
		   parameter (e.g.  Exclusive=NODE).  See Exclusive and OverSub-
		   scribe for more information.  This is the default value.

	    select/linear
		   for allocation of entire nodes assuming a one-dimensional ar-
		   ray	of nodes in which sequentially ordered nodes are prefer-
		   able.  For a heterogeneous cluster (e.g. different CPU counts
		   on the various nodes), resource allocations will favor  nodes
		   with  high CPU counts as needed based upon the job's node and
		   CPU specification if TopologyPlugin=topology/flat is  config-
		   ured.  Use  of  other topology plugins with select/linear and
		   heterogeneous nodes is not  recommended  and  may  result  in
		   valid job allocation requests being rejected. The linear plu-
		   gin	is not designed to track generic resources on a node. In
		   cases where generic resources  (such  as  GPUs)  need  to  be
		   tracked, the cons_tres plugin should be used instead.

     SelectTypeParameters
	    The permitted values of SelectTypeParameters depend upon the config-
	    ured  value  of  SelectType.  The only supported options for Select-
	    Type=select/linear are  CR_ONE_TASK_PER_CORE  and  CR_Memory,  which
	    treats memory as a consumable resource and prevents memory over sub-
	    scription  with  job  preemption or gang scheduling.  By default Se-
	    lectType=select/linear allocates whole nodes to jobs without consid-
	    ering  their  memory   consumption.    By	default   SelectType=se-
	    lect/cons_tres  uses  CR_Core_Memory,  which  allocates Core to jobs
	    while considering their memory consumption.

	    The  following  options  are   supported   by   the   SelectType=se-
	    lect/cons_tres plugin:

	    CR_CPU
		   CPUs  are consumable resources.  Configure the number of CPUs
		   on each node, which may be equal to the count of cores or hy-
		   per-threads on the node depending upon  the	desired  minimum
		   resource  allocation.   The node's Boards, Sockets, CoresPer-
		   Socket and ThreadsPerCore may optionally  be  configured  and
		   result  in job allocations which have improved locality; how-
		   ever doing so will prevent more than one job from being allo-
		   cated on each core.

	    CR_CPU_Memory
		   CPUs and memory are consumable resources.  Configure the num-
		   ber of CPUs on each node, which may be equal to the count  of
		   cores or hyper-threads on the node depending upon the desired
		   minimum  resource  allocation.   The  node's Boards, Sockets,
		   CoresPerSocket and ThreadsPerCore may optionally  be  config-
		   ured and result in job allocations which have improved local-
		   ity; however doing so will prevent more than one job from be-
		   ing allocated on each core.	Setting a value for DefMemPerCPU
		   is strongly recommended.

	    CR_Core
		   Cores are consumable resources.  On nodes with hyper-threads,
		   each  thread  is counted as a CPU to satisfy a job's resource
		   requirement, but multiple jobs are not allocated  threads  on
		   the	same  core.   The  count  of  CPUs allocated to a job is
		   rounded up to account for every CPU	on  an	allocated  core.
		   This   will	 also	impact	 total	 allocated  memory  when
		   --mem-per-cpu is used to be multiply of total number of  CPUs
		   on allocated cores.

	    CR_Core_Memory
		   Cores and memory are consumable resources.  On nodes with hy-
		   per-threads,  each  thread  is  counted as a CPU to satisfy a
		   job's resource requirement, but multiple jobs are  not  allo-
		   cated  threads on the same core.  The count of CPUs allocated
		   to a job may be rounded up to account for every CPU on an al-
		   located core.  Setting a value for DefMemPerCPU  is	strongly
		   recommended.

	    CR_ONE_TASK_PER_CORE
		   Allocate  one task per core by default.  Without this option,
		   by default one task will be allocated  per  thread  on  nodes
		   with more than one ThreadsPerCore configured.  NOTE: This op-
		   tion cannot be used with CR_CPU*.

	    CR_CORE_DEFAULT_DIST_BLOCK
		   Allocate  cores within a node using block distribution by de-
		   fault.  This is a pseudo-best-fit  algorithm  that  minimizes
		   the	number	of  boards  and  minimizes the number of sockets
		   (within minimum boards) used for the  allocation.   This  de-
		   fault behavior can be overridden specifying a particular "-m"
		   parameter  with  srun/salloc/sbatch.   Without  this  option,
		   cores will be allocated cyclically across the sockets.

	    CR_LLN
		   Schedule resources to jobs on the least loaded  nodes  (based
		   upon  the number of idle CPUs). This is generally only recom-
		   mended for an environment with serial jobs as idle  resources
		   will tend to be highly fragmented, resulting in parallel jobs
		   being  distributed  across many nodes.  Note that node Weight
		   takes precedence over how many idle	resources  are	on  each
		   node.  Also see the partition configuration parameter LLN use
		   the least loaded nodes in selected partitions.

	    CR_Pack_Nodes
		   If a job allocation contains more resources than will be used
		   for	launching  tasks (e.g. if whole nodes are allocated to a
		   job), then rather than  distributing  a  job's  tasks  evenly
		   across  its allocated nodes, pack them as tightly as possible
		   on these nodes.  For example, consider a job allocation  con-
		   taining  two  entire  nodes with eight CPUs each.  If the job
		   starts ten tasks across those two nodes without this  option,
		   it will start five tasks on each of the two nodes.  With this
		   option, eight tasks will be started on the first node and two
		   tasks on the second node.  This can be superseded by "NoPack"
		   in  srun's  "--distribution"  option.  CR_Pack_Nodes only ap-
		   plies when the "block" task distribution method is used.

	    LL_SHARED_GRES
		   When  allocating  resources	for  a	shared	GRES  (gres/mps,
		   gres/shard),  prefer least loaded device (in terms of already
		   allocated fraction). This way jobs are spread across GRES de-
		   vices on the node, instead of the default behavior where  the
		   first  available  device  is  used.	This option is only sup-
		   ported by select/cons_tres plugin.

	    CR_Socket
		   Sockets are consumable resources.   On  nodes  with	multiple
		   cores,  each  core or thread is counted as a CPU to satisfy a
		   job's resource requirement, but multiple jobs are  not  allo-
		   cated resources on the same socket.

	    CR_Socket_Memory
		   Memory  and	sockets are consumable resources.  On nodes with
		   multiple cores, each core or thread is counted as  a  CPU  to
		   satisfy  a  job's resource requirement, but multiple jobs are
		   not allocated resources on the same socket.	Setting a  value
		   for DefMemPerCPU is strongly recommended.

	    MULTIPLE_SHARING_GRES_PJ
		   By  default, only one sharing gres per job is allowed on each
		   node from shared gres requests. This allows multiple  sharing
		   gres'  to be used on a single node to satisfy shared gres re-
		   quirements per job.	Example: If there are 10 shards to a gpu
		   and 12 shards are requested, instead of being denied the  job
		   will  be  allocated	with  2  gpus. 1 using 10 shards and the
		   other using 2 shards.

	    ENFORCE_BINDING_GRES
		   Set --gres-flags=enforce-binding as the default in every job.
		   This can be overridden with --gres-flags=disable-binding.

	    ONE_TASK_PER_SHARING_GRES
		   Set --gres-flags=one-task-per-sharing as the default in every
		   job.   This	can  be  overridden   with   --gres-flags=multi-
		   ple-tasks-per-sharing.

	    CR_NO_DIST_TOPO_BLOCK
		   Disable  topology-aware  task  distribution for steps. By de-
		   fault, when a topology plugin is configured, tasks  are  dis-
		   tributed  to  nodes following topology order. This option re-
		   verts to the standard bitmap order.

	    NOTE: If memory isn't configured as a consumable  resource	(CR_CPU,
	    CR_Core  or  CR_Socket without _Memory) memory can be oversubscribed
	    and will not be constrained by task/cgroup even if it is  configured
	    in cgroup.conf. In this case the --mem option is only used to filter
	    out  nodes	with  lower  configured memory and does not take running
	    jobs into account. For instance, two jobs requesting all the  memory
	    of a node can run at the same time.

     SlurmctldAddr
	    An	optional  address to be used for communications to the currently
	    active slurmctld daemon, normally used with Virtual IP addressing of
	    the currently active server.  If this  parameter  is  not  specified
	    then each primary and backup server will have its own unique address
	    used for communications as specified in the SlurmctldHost parameter.
	    If this parameter is specified then the SlurmctldHost parameter will
	    still  be  used  for communications to specific slurmctld primary or
	    backup servers, for example to cause all of them to read the current
	    configuration files or shutdown.  Also see the  SlurmctldPrimaryOff-
	    Prog  and SlurmctldPrimaryOnProg configuration parameters to config-
	    ure programs to manipulate virtual IP address manipulation.

     SlurmctldDebug
	    The level of detail to provide slurmctld daemon's logs.  The default
	    value is info.  If the slurmctld daemon  is  initiated  with  -v  or
	    --verbose  options,  that  debug level will be preserved or restored
	    upon reconfiguration.

	    quiet     Log nothing

	    fatal     Log only fatal errors

	    error     Log only errors

	    info      Log errors and general informational messages

	    verbose   Log errors and verbose informational messages

	    debug     Log errors and verbose informational messages  and  debug-
		      ging messages

	    debug2    Log errors and verbose informational messages and more de-
		      bugging messages

	    debug3    Log  errors  and	verbose  informational messages and even
		      more debugging messages

	    debug4    Log errors and verbose  informational  messages  and  even
		      more debugging messages

	    debug5    Log  errors  and	verbose  informational messages and even
		      more debugging messages

     SlurmctldHost
	    The short, or long, hostname of the machine where Slurm control dae-
	    mon is executed (i.e. the name returned  by  the  command  "hostname
	    -s").  This hostname is optionally followed by either the IP address
	    or a name by which the address can be identified, enclosed in paren-
	    theses. e.g.
	    SlurmctldHost=slurmctl-primary(12.34.56.78)

	    Each  host running an instance of slurmctld should have a Slurmctld-
	    Host= entry.  e.g.
	    SlurmctldHost=slurmctl-primary1
	    SlurmctldHost=slurmctl-primary2
	    SlurmctldHost=slurmctl-primary3(12.34.56.78)

	    SlurmctldHost must be specified at least  once.  If  specified  more
	    than once, the first entry will run as the primary and all other en-
	    tries  as  standby	backups.   If  the primary host fails, the first
	    backup will change from standby to	primary  until	the  first  host
	    comes  back online. This same process will repeat if the new primary
	    fails.

	    Slurm daemons need to be reconfigured (e.g. "scontrol reconfig") for
	    changes to this parameter to take effect. It is okay for jobs to  be
	    running when making these changes, as the running steps will get the
	    updated SlurmctldHost info.

	    Every slurmctld host controller must have access to the StateSaveLo-
	    cation  directory, which must be readable and writable from the pri-
	    mary and all backup controllers at all times.

	    Refer to the RELOCATING CONTROLLERS section if you	need  to  change
	    this.

     SlurmctldHttpAuthParameters
	    Comma-separated  list  of options controlling how the slurmctld HTTP
	    listener authenticates incoming requests. Recognized  keys	are  the
	    same  JWT-related keys documented under AuthAltParameters. When set,
	    an independent per-daemon authentication keys are loaded from  these
	    parameters.   Tokens  presented  to the slurmctld HTTP endpoints are
	    verified against these configured keys rather than against	AuthAlt-
	    Parameters.

     SlurmctldLogFile
	    Fully qualified pathname of a file into which the slurmctld daemon's
	    logs  are  written.  The default value is none (performs logging via
	    syslog).
	    See the section LOGGING if a pathname is specified.

     SlurmctldParameters
	    Multiple options may be comma separated.

	    allow_user_triggers
		   Permit setting triggers from non-root/slurm_user users. Slur-
		   mUser must also be set to root to permit  these  triggers  to
		   work. See the strigger man page for additional details.

	    cloud_dns
		   By  default,  Slurm	expects  that  the network address for a
		   cloud node won't be known until the creation of the node  and
		   that Slurm will be notified of the node's address (e.g. scon-
		   trol  update  nodename=<name>  nodeaddr=<addr>).  Since Slurm
		   communications rely on the node configuration  found  in  the
		   slurm.conf, Slurm will tell the client command, after waiting
		   for	all  nodes  to boot, each node's ip address. However, in
		   environments where the nodes are in DNS,  this  step  can  be
		   avoided by configuring this option.

	    conmgr_max_connections=<connection_count>
		   Specify  the maximum number of connections to be processed at
		   any given time.  This does not influence the  maximum  number
		   of  pending	connections as that is controlled by the kernel.
		   Increasing this value will increase slurmctld's memory  foot-
		   print.  Sites  are advised to monitor memory consumption when
		   increasing this value. Defaults to 512.

	    conmgr_threads=<thread_count>
		   The number of process threads in thread pool used for receiv-
		   ing and processing connections on the listening  sockets.  In
		   most  cases,  you  should  decrease conmgr_threads to improve
		   scheduling performance.

	    conmgr_use_poll
		   Use poll(2) instead of epoll(7) for monitoring file	descrip-
		   tors.

	    conmgr_connect_timeout=<seconds>
		   Wait  <seconds> before considering an outbound connection at-
		   tempt to be timed out. Defaults to the value of  MessageTime-
		   out.

	    conmgr_read_timeout=<seconds>
		   Wait <seconds> before considering a read from a file descrip-
		   tor to be timed out. Defaults to the value of MessageTimeout.

	    conmgr_quiesce_timeout=<seconds>
		   Wait  <seconds>  before  considering quiesce to be timed out.
		   Upon timeout, all (non-listening) active connections will  be
		   closed  to  allow the quiesce to start. Defaults to two times
		   value of MessageTimeout.

	    conmgr_wait_write_delay=<seconds>
		   When waiting for kernel to flush outgoing buffer, poll kernel
		   for changes every <seconds>	for  changes.  Defaults  to  the
		   value of MessageTimeout.

	    conmgr_write_timeout=<seconds>
		   Wait  <seconds>  before  considering  a write from a file de-
		   scriptor to be timed out. Defaults to the value  of	Message-
		   Timeout.

	    disable_triggers
		   Disable the ability to register new triggers.

	    enable_async_reply
		   Enable  slurmctld to reply to incoming (supported) RPCs asyn-
		   chronously without blocking a thread  in  the  conmgr  thread
		   pool.

	    enable_configless
		   Permit  "configless" operation by the slurmd, slurmstepd, and
		   user commands.  When enabled the slurmd will be permitted  to
		   retrieve  config  files  and  Prolog, Epilog, TaskProlog, and
		   TaskEpilog scripts from the slurmctld, and on  any  'scontrol
		   reconfigure' command new configs and scripts will be automat-
		   ically  pushed  out	and applied to nodes that are running in
		   this "configless" mode. See https://slurm.schedmd.com/config-
		   less_slurm.html for more details.

		   NOTE: Included files with the Include directive will only  be
		   pushed  if the filename has no path separators and is located
		   adjacent to slurm.conf.

		   NOTE: Prolog and Epilog scripts will only be  pushed  if  the
		   filenames have no path separators and are located adjacent to
		   slurm.conf.	Glob patterns (See glob (7)) are not supported.

	    enable_expedited_requeue
		   Allow jobs to request an expedited requeue on certain events.
		   An expedited requeue ensures that the job is immediately eli-
		   gible to run and gets placed at the top of the queue.

	    idle_on_node_suspend
		   Mark  nodes	as  idle, regardless of current state, when sus-
		   pending nodes with SuspendProgram so that nodes will be  eli-
		   gible to be resumed at a later time.

	    node_reg_mem_percent=Percentage of memory a node is allowed to reg-
	    ister with without being marked as
		   invalid  with  low  memory.	Default  is 100. For State=CLOUD
		   nodes, the default is 90. To disable this for cloud nodes set
		   it to 100. config_overrides takes precedence  over  this  op-
		   tion.

		   It's  recommended  that task/cgroup with ConstrainRamSpace is
		   configured. A memory cgroup limit won't be set more than  the
		   actual  memory  on the node. If needed, configure AllowedRam-
		   Space in the cgroup.conf to add a buffer.

	    no_quick_restart
		   By default starting a new instance of the slurmctld will kill
		   the old one running before taking control. If this option  is
		   set this will not happen without the -i option.

	    power_save_interval
		   How	often  the power_save thread looks to resume and suspend
		   nodes. The power_save thread will do work sooner if there are
		   node state changes. Default is 10 seconds.

	    power_save_min_interval
		   How often the power_save thread, at a minimum, looks  to  re-
		   sume and suspend nodes. Default is 0.

	    max_powered_nodes
		   The	max  number of powered up nodes across the cluster. Once
		   this is reached, jobs requesting additional	nodes  will  not
		   start, and "scontrol power up <nodes>" will fail.

	    max_dbd_msg_action
		   Action used once MaxDBDMsgs is reached, options are 'discard'
		   (default) and 'exit'.

		   When  'discard'  is	specified  and	MaxDBDMsgs is reached we
		   start by purging pending messages of  types	Step  start  and
		   complete,  and it reaches MaxDBDMsgs again Job start messages
		   are purged. Job completes and node state changes continue  to
		   consume  the  empty	space  created	from  the purgings until
		   MaxDBDMsgs is reached  again  at  which  no	new  message  is
		   tracked creating data loss and potentially runaway jobs.

		   When 'exit' is specified and MaxDBDMsgs is reached the slurm-
		   ctld will exit instead of discarding any messages. It will be
		   impossible  to start the slurmctld with this option where the
		   slurmdbd is down and the  slurmctld	is  tracking  more  than
		   MaxDBDMsgs.

	    reboot_from_controller
		   Run	the  RebootProgram from the controller instead of on the
		   slurmds. The RebootProgram will be passed  a  comma-separated
		   list of nodes to reboot as the first argument and if applica-
		   ble the required features needed for reboot as the second ar-
		   gument.  If RebootProgram is set to a PowerAction, this para-
		   meter is ignored in favor of the PowerAction Location.

	    reconfig_on_restart
		   Every restart of slurmctld (process restart not triggered  by
		   "scontrol  reconfigure")  will  trigger a reconfiguration re-
		   quest to all slurmd and sackd daemons. For "configless"  sys-
		   tems  this  will ensure all processes are running the current
		   configuration.

		   NOTE: Use with caution when performing  rolling  upgrades  as
		   this  could inadvertently trigger an upgrade of the slurmd or
		   sackd daemons earlier than intended.

	    rl_bucket_size=
		   Size of the token bucket. This permits a  certain  amount  of
		   RPC	burst  from  a	user  before the steady-state rate limit
		   takes effect.  The default value is 30.

	    rl_enable
		   Enable per-user RPC	rate-limiting  support.  Client-commands
		   will  be  told  to  back  off and sleep for a second once the
		   limit has been reached.  This  is  implemented  as  a  "token
		   bucket",  which permits a certain degree of "bursty" RPC load
		   from an individual user before holding them to a steady-state
		   RPC load established by the refill period and rate.

	    rl_log_freq=
		   The maximum frequency (in seconds) for which logs  about  RPC
		   limit being exceeded by an individual user are printed to the
		   logs.  Set to 0 to see every incidence.  Set to -1 to disable
		   the log message entirely.  The default value is 0.

	    rl_refill_period=
		   How frequently, in seconds, in which  additional  tokens  are
		   added to each user bucket.  The default value is 1.

	    rl_refill_rate=
		   How many tokens to add to the bucket on each period.  The de-
		   fault value is 2.

	    rl_table_size=
		   Number  of  entries in the user hash-table. Recommended value
		   should be at least twice the number of active  user	accounts
		   on the system.  The default value is 8192.

	    enable_stepmgr
		   Enable  slurmstepd  step management system wide. This enables
		   job steps to be managed by a single extern slurmstepd associ-
		   ated with the job to manage steps.  This  is  beneficial  for
		   jobs  that  submit many steps inside their allocations.  Pro-
		   logFlags=contain must be set.

	    user_resv_delete
		   Allow any user able to run in a reservation to delete it.

	    threadpool=<enabled|disabled>
		   Enable or disable using the threadpool in slurmctld to  avoid
		   overhead of allocating new process threads by preserving pre-
		   viously created threads.  The default value is "disabled".

	    threadpool_preallocate=<thread_count>
		   The	number	of process threads to preallocate at startup for
		   thread pool.  The default value is 32.

	    threadpool_preserve=<thread_count>
		   The number of idle process threads to maintain in thread pool
		   before allowing threads to exit.  The default value is 128.

	    validate_nodeaddr_threads=
		   During startup, slurmctld looks up the address for each  com-
		   pute node in the system. On large systems this can cause con-
		   siderable delay, this option permits the slurmctld to concur-
		   rently  handle the lookup calls and can reduce system startup
		   time considerably. The default value is 1. Maximum  permitted
		   value is 64.

     SlurmctldPidFile
	    Fully  qualified  pathname of a file into which the slurmctld daemon
	    may write its process id. This may be used for automated signal pro-
	    cessing.  The default value is "/var/run/slurmctld.pid".

     SlurmctldPort
	    The port number that the Slurm controller, slurmctld, listens to for
	    work. The default value is SLURMCTLD_PORT as established  at  system
	    build time. If none is explicitly specified, it will be set to 6817.
	    SlurmctldPort may also be configured to support a range of port num-
	    bers for existing legacy configurations.  NOTE: Either slurmctld and
	    slurmd  daemons  must not execute on the same nodes or the values of
	    SlurmctldPort and SlurmdPort must be different.

	    NOTE: On Cray systems, Realm-Specific IP Addressing (RSIP) will  au-
	    tomatically   try	to   interact  with  anything  opened  on  ports
	    8192-60000.  Configure SlurmctldPort to use a port	outside  of  the
	    configured SrunPortRange and RSIP's port range.

     SlurmctldPrimaryOffProg
	    This program is executed when a slurmctld daemon running as the pri-
	    mary  server  becomes  a backup server. The controller will wait for
	    this script to end before fully shutting down. By default no program
	    is executed.  See also the related "SlurmctldPrimaryOnProg"  parame-
	    ter.

     SlurmctldPrimaryOnProg
	    This program is executed when a slurmctld daemon running as a backup
	    server becomes the primary server. The controller will wait for this
	    script to end before fully starting up. By default no program is ex-
	    ecuted.   When  using  virtual IP addresses to manage High Available
	    Slurm services, this program can be used to add the IP address to an
	    interface (and optionally try to  kill  the  unresponsive  slurmctld
	    daemon  and flush the ARP caches on nodes on the local Ethernet fab-
	    ric).  See also the related "SlurmctldPrimaryOffProg" parameter.

     SlurmctldSyslogDebug
	    The slurmctld daemon will log events to the syslog file at the spec-
	    ified level of detail. If not set, the slurmctld daemon will log  to
	    syslog at level fatal, unless there is no SlurmctldLogFile and it is
	    running  in  the  background, in which case it will log to syslog at
	    the level specified by SlurmctldDebug (at fatal  in  the  case  that
	    SlurmctldDebug is set to quiet) or it is run in the foreground, when
	    it will be set to quiet.

	    quiet     Log nothing

	    fatal     Log only fatal errors

	    error     Log only errors

	    info      Log errors and general informational messages

	    verbose   Log errors and verbose informational messages

	    debug     Log  errors  and verbose informational messages and debug-
		      ging messages

	    debug2    Log errors and verbose informational messages and more de-
		      bugging messages

	    debug3    Log errors and verbose  informational  messages  and  even
		      more debugging messages

	    debug4    Log  errors  and	verbose  informational messages and even
		      more debugging messages

	    debug5    Log errors and verbose  informational  messages  and  even
		      more debugging messages

	    NOTE:  By default, Slurm's systemd service file starts the slurmctld
	    daemon in the foreground with the --systemd option. This means  that
	    systemd  will capture stdout/stderr output and print that to syslog,
	    independent of Slurm printing to syslog directly. To prevent systemd
	    from doing this, add "StandardOutput=null" and  "StandardError=null"
	    to the respective service files or override files.

     SlurmctldTimeout
	    The  interval,  in seconds, that the backup controller waits for the
	    primary controller to respond before assuming control.  The  default
	    value is 120 seconds.  May not exceed 65533.

     SlurmdDebug
	    The  level	of  detail to provide slurmd daemon's logs.  The default
	    value is info.

	    quiet     Log nothing

	    fatal     Log only fatal errors

	    error     Log only errors

	    info      Log errors and general informational messages

	    verbose   Log errors and verbose informational messages

	    debug     Log errors and verbose informational messages  and  debug-
		      ging messages

	    debug2    Log errors and verbose informational messages and more de-
		      bugging messages

	    debug3    Log  errors  and	verbose  informational messages and even
		      more debugging messages

	    debug4    Log errors and verbose  informational  messages  and  even
		      more debugging messages

	    debug5    Log  errors  and	verbose  informational messages and even
		      more debugging messages

     SlurmdHttpAuthParameters
	    Comma-separated list of options controlling how the slurmd HTTP lis-
	    tener authenticates incoming requests. Recognized keys are the  same
	    JWT-related  keys  documented  under AuthAltParameters. When set, an
	    independent per-daemon authentication keys are loaded from these pa-
	    rameters.  Tokens presented to the slurmd HTTP endpoints  are  veri-
	    fied against this context rather than against AuthAltParameters.

     SlurmdLogFile
	    Fully  qualified  pathname	of a file into which the slurmd daemon's
	    logs are written.  The default value is none (performs  logging  via
	    syslog).   The first "%h" within the name is replaced with the host-
	    name on which the slurmd is running.  The first "%n" within the name
	    is replaced with the Slurm node name on which the slurmd is running.
	    See the section LOGGING if a pathname is specified.

     SlurmdParameters
	    Parameters specific to the Slurmd.	Multiple options  may  be  comma
	    separated.

	    NOTE: Additional node-specific parameters can be specified using the
	    Parameters option in individual node definitions.

	    allow_ecores
		   If  set,  and  processors  on your nodes have E-Cores, allows
		   them to be used in for scheduling and task placement. (By de-
		   fault, E-Cores are ignored.)

	    config_overrides
		   If set, consider the configuration of each node  to	be  that
		   specified  in  the slurm.conf configuration file and any node
		   with less than the configured resources will not  be  set  to
		   INVAL/INVALID_REG.	This option is generally only useful for
		   testing  purposes.	Equivalent   to   the	now   deprecated
		   FastSchedule=2 option.

	    conmgr_max_connections=<connection_count>
		   Specify  the maximum number of connections to be processed at
		   any given time.  This does not influence the  maximum  number
		   of  pending	connections as that is controlled by the kernel.
		   Increasing this value will  increase  slurmd's  memory  foot-
		   print.  Sites  are advised to monitor memory consumption when
		   increasing this value. Defaults to 512.

	    conmgr_threads=<thread_count>
		   The number of process threads in thread pool used for receiv-
		   ing and processing connections on the listening  sockets.  In
		   most  cases	you  should  decrease  conmgr_threads to improve
		   scheduling performance.  Default value is 6 threads.

	    conmgr_use_poll
		   Use poll(2) instead of epoll(7) for monitoring file	descrip-
		   tors.

	    conmgr_connect_timeout=<seconds>
		   Wait  <seconds> before considering an outbound connection at-
		   tempt to be timed out. Defaults to the value of  MessageTime-
		   out.

	    conmgr_read_timeout=<seconds>
		   Wait <seconds> before considering a read from a file descrip-
		   tor to be timed out. Defaults to the value of MessageTimeout.

	    conmgr_quiesce_timeout=<seconds>
		   Wait  <seconds>  before  considering quiesce to be timed out.
		   Upon timeout, all (non-listening) active connections will  be
		   closed  to  allow the quiesce to start. Defaults to two times
		   value of MessageTimeout.

	    conmgr_wait_write_delay=<seconds>
		   When waiting for kernel to flush outgoing buffer, poll kernel
		   for changes every <seconds>	for  changes.  Defaults  to  the
		   value of MessageTimeout.

	    conmgr_write_timeout=<seconds>
		   Wait  <seconds>  before  considering  a write from a file de-
		   scriptor to be timed out. Defaults to the value  of	Message-
		   Timeout.

	    l3cache_as_socket
		   Use	the  hwloc l3cache as the socket count. Can be useful on
		   certain processors where the socket level is too coarse,  and
		   the	l3cache  may  provide  better  task distribution. (E.g.,
		   along CCX boundaries instead of socket boundaries.)	Mutually
		   exclusive with numa_node_as_socket.	Requires hwloc v2.

		   NOTE: When this parameter is set,  the  node  definitions  in
		   slurm.conf  (Sockets  or SocketsPerBoard, CoresPerSocket, and
		   ThreadsPerCore) must be  updated  to  reflect  the  resulting
		   topology    as    reported	 by    slurmd	 -C    --parame-
		   ters=l3cache_as_socket, not	the  physical  hardware  layout.
		   Failing  to update these values will cause a mismatch between
		   what slurmd detects and what the controller expects.

	    numa_node_as_socket
		   Use the hwloc NUMA Node to determine main hierarchy object to
		   be used as socket.  If the option is set Slurm will check the
		   parent object of NUMA Node and use it as socket. This  option
		   may	be useful for architectures likes AMD Epyc, where number
		   of nodes per socket may be  configured.   Mutually  exclusive
		   with l3cache_as_socket.  Requires hwloc v2.

		   NOTE:  When	this  parameter  is set, the node definitions in
		   slurm.conf (Sockets or SocketsPerBoard,  CoresPerSocket,  and
		   ThreadsPerCore)  must  be  updated  to  reflect the resulting
		   topology    as    reported	 by    slurmd	 -C    --parame-
		   ters=numa_node_as_socket,  not  the physical hardware layout.
		   Failing to update these values will cause a mismatch  between
		   what slurmd detects and what the controller expects.

	    shutdown_on_reboot
		   If  set,  the  Slurmd will shut itself down when a reboot re-
		   quest is received.

	    contain_spank
		   If set and a namespace plugin is specified, the spank_user(),
		   spank_task_post_fork() and spank_task_exit()  calls	will  be
		   run inside the job's namespace.

     SlurmdPidFile
	    Fully  qualified pathname of a file into which the slurmd daemon may
	    write its process id. This may be used for automated signal process-
	    ing.  The first "%h" within the name is replaced with  the	hostname
	    on	which  the slurmd is running.  The first "%n" within the name is
	    replaced with the Slurm node name on which the  slurmd  is	running.
	    The default value is "/var/run/slurmd.pid".

     SlurmdPort
	    The  port number that the Slurm compute node daemon, slurmd, listens
	    to for work. The default value is SLURMD_PORT as established at sys-
	    tem build time. If none is explicitly specified, its value	will  be
	    6818.  NOTE: Either slurmctld and slurmd daemons must not execute on
	    the same nodes or the values of SlurmctldPort and SlurmdPort must be
	    different.

	    NOTE:  On Cray systems, Realm-Specific IP Addressing (RSIP) will au-
	    tomatically  try  to  interact  with  anything   opened   on   ports
	    8192-60000.   Configure SlurmdPort to use a port outside of the con-
	    figured SrunPortRange and RSIP's port range.

     SlurmdSpoolDir
	    Fully qualified pathname of a directory into which the  slurmd  dae-
	    mon's  state  information and batch job script information are writ-
	    ten. This must be a common pathname for all nodes, but should repre-
	    sent a directory which is local to each node (reference a local file
	    system). The default value is "/var/spool/slurmd".	The  first  "%h"
	    within the name is replaced with the hostname on which the slurmd is
	    running.   The first "%n" within the name is replaced with the Slurm
	    node name on which the slurmd is running.

     SlurmdSyslogDebug
	    The slurmd daemon will log events to the syslog file at  the  speci-
	    fied level of detail. If not set, the slurmd daemon will log to sys-
	    log  at level fatal, unless there is no SlurmdLogFile and it is run-
	    ning in the background, in which case it will log to syslog  at  the
	    level  specified by SlurmdDebug (at fatal in the case that SlurmdDe-
	    bug is set to quiet) or it is run in the foreground, when it will be
	    set to quiet.

	    quiet     Log nothing

	    fatal     Log only fatal errors

	    error     Log only errors

	    info      Log errors and general informational messages

	    verbose   Log errors and verbose informational messages

	    debug     Log errors and verbose informational messages  and  debug-
		      ging messages

	    debug2    Log errors and verbose informational messages and more de-
		      bugging messages

	    debug3    Log  errors  and	verbose  informational messages and even
		      more debugging messages

	    debug4    Log errors and verbose  informational  messages  and  even
		      more debugging messages

	    debug5    Log  errors  and	verbose  informational messages and even
		      more debugging messages

	    NOTE: By default, Slurm's systemd service  file  starts  the  slurmd
	    daemon  in the foreground with the --systemd option. This means that
	    systemd will capture stdout/stderr output and print that to  syslog,
	    independent of Slurm printing to syslog directly. To prevent systemd
	    from  doing this, add "StandardOutput=null" and "StandardError=null"
	    to the respective service files or override files.

     SlurmdTimeout
	    The interval, in seconds, that the Slurm controller waits for slurmd
	    to respond before configuring that node's state to DOWN.  A value of
	    zero indicates the node will not be tested by slurmctld  to  confirm
	    the  state	of  slurmd,  the node will not be automatically set to a
	    DOWN state indicating a non-responsive slurmd, and some  other  tool
	    will  take	responsibility	for monitoring the state of each compute
	    node and its  slurmd  daemon.   Slurm's  hierarchical  communication
	    mechanism  is  used  to ping the slurmd daemons in order to minimize
	    system noise and overhead.	The default value is 300  seconds.   The
	    value may not exceed 65533 seconds.

     SlurmdUser
	    The  name of the user that the slurmd daemon executes as.  This user
	    must exist on all nodes of the cluster for authentication of  commu-
	    nications  between	Slurm  components.  The default value is "root",
	    which should be kept in almost all cases so that slurmd can run jobs
	    as the user that submitted them.

     SlurmSchedLogFile
	    Fully qualified pathname of the scheduling event logging file.   The
	    syntax  of	this  parameter is the same as for SlurmctldLogFile.  In
	    order to configure scheduler logging, set both the SlurmSchedLogFile
	    and SlurmSchedLogLevel parameters.

     SlurmSchedLogLevel
	    The initial level of scheduling event logging, similar to the Slurm-
	    ctldDebug parameter used to control the initial level  of  slurmctld
	    logging.   Valid  values  for  SlurmSchedLogLevel are "0" (scheduler
	    logging disabled) and "1" (scheduler logging enabled).  If this  pa-
	    rameter  is omitted, the value defaults to "0" (disabled).	In order
	    to configure scheduler logging, set both the  SlurmSchedLogFile  and
	    SlurmSchedLogLevel	parameters.   The scheduler logging level can be
	    changed dynamically using scontrol.

     SlurmUser
	    The name of the user that the slurmctld daemon executes as.  For se-
	    curity purposes, a user other than "root" is recommended.  This user
	    must exist on all nodes of the cluster for authentication of  commu-
	    nications between Slurm components.  The default value is "root".

     SrunEpilog
	    Fully  qualified pathname of a program for srun to execute following
	    the completion of a job step. The command line arguments for the ex-
	    ecutable will be the command and arguments of  the	job  step.  This
	    configuration parameter may be overridden by srun's --epilog parame-
	    ter.  Note that while the other "Epilog" executables (e.g., TaskEpi-
	    log) are run by slurmd on the compute nodes where the tasks are exe-
	    cuted, the SrunEpilog runs on the node where the "srun"  is  execut-
	    ing.

     SrunPortRange
	    The  srun  creates	a set of listening ports to communicate with the
	    controller, the slurmstepd and to handle the  application  I/O.   By
	    default  these  ports are ephemeral meaning the port numbers are se-
	    lected by the kernel. Using this parameter allow sites to  configure
	    a  range  of  ports  from which srun ports will be selected. This is
	    useful if sites want to allow only certain port range on their  net-
	    work.

	    NOTE:  On Cray systems, Realm-Specific IP Addressing (RSIP) will au-
	    tomatically  try  to  interact  with  anything   opened   on   ports
	    8192-60000.   Configure  SrunPortRange to use a range of ports above
	    those used by RSIP, ideally 1000 or more ports, for  example  "Srun-
	    PortRange=60001-63000".

	    NOTE:  SrunPortRange must be large enough to cover the expected num-
	    ber of srun ports created. A single srun  opens  4	listening  ports
	    plus 2 more for every 48 hosts beyond the first 48. Use of the --pty
	    option will result in an additional port being used.

	    Example:
	    srun -N 1	     will use 4 listening ports.
	    srun --pty -N 1  will use 5 listening ports.
	    srun -N 48	     will use 4 listening ports.
	    srun -N 50	     will use 6 listening ports.
	    srun -N 200      will use 12 listening ports.

     SrunProlog
	    Fully  qualified  pathname of a program for srun to execute prior to
	    the launch of a job step. The command line arguments  for  the  exe-
	    cutable will be the command and arguments of the job step. This con-
	    figuration parameter may be overridden by srun's --prolog parameter.
	    Note  that	while  the other "Prolog" executables (e.g., TaskProlog)
	    are run by slurmd on the compute nodes where the tasks are executed,
	    the SrunProlog runs on the node where the "srun" is executing.

     StateSaveLocation
	    Fully qualified pathname of a directory into which	the  Slurm  con-
	    troller,  slurmctld,  saves its state (e.g. "/usr/local/slurm/check-
	    point").  Slurm state will saved here to recover from  system  fail-
	    ures.  SlurmUser must be able to create files in this directory.  If
	    you  have a secondary SlurmctldHost configured, this location should
	    be readable and writable by both systems.	Since  all  running  and
	    pending  job  information is stored here, the use of a reliable file
	    system  (e.g.  RAID)  is  recommended.    The   default   value   is
	    "/var/spool".  If any slurm daemons terminate abnormally, their core
	    files will also be written into this directory.

     SuspendExcNodes
	    Specifies  the  nodes which are to not be placed in power save mode,
	    even if the node remains idle for an extended period of  time.   Use
	    Slurm's  hostlist  expression  or NodeSets to identify nodes with an
	    optional ":" separator and count of nodes to exclude from  the  pre-
	    ceding  range.  For example "nid[10-20]:4" will prevent 4 powered up
	    nodes in the set "nid[10-20]" from	being  powered	down.	Multiple
	    sets  of  nodes  can  be specified with or without counts in a comma
	    separated list (e.g  "nid[10-20]:4,nid[80-90]:2").	 By  default  no
	    nodes  are	excluded.  This value may be updated with scontrol.  See
	    ReconfigFlags=KeepPowerSaveSettings for setting persistence.

     SuspendExcParts
	    Specifies the partitions whose nodes are to not be placed  in  power
	    save  mode,  even if the node remains idle for an extended period of
	    time.  Multiple partitions can be identified and separated	by  com-
	    mas.   By  default no nodes are excluded.  This value may be updated
	    with scontrol.  See ReconfigFlags=KeepPowerSaveSettings for  setting
	    persistence.

     SuspendExcStates
	    Specifies node states that are not to be powered down automatically.
	    Valid   states  include  CLOUD,  DOWN,  DRAIN,  DYNAMIC_FUTURE,  DY-
	    NAMIC_NORM, FAIL, INVALID_REG, MAINTENANCE,  NOT_RESPONDING,  PERFC-
	    TRS,  PLANNED,  and  RESERVED.   By default, any of these states, if
	    idle for SuspendTime, would be powered down.  This value may be  up-
	    dated  with  scontrol.   See ReconfigFlags=KeepPowerSaveSettings for
	    setting persistence.

     SuspendProgram
	    SuspendProgram is the program that will be executed when a node  re-
	    mains idle for an extended period of time. It can also be set to the
	    name  of  a PowerAction.  This program is expected to place the node
	    into some power save mode.	This can be used to reduce the frequency
	    and voltage of a node or completely power the node off.   The  argu-
	    ment  to  the  program  will be the names of nodes to be placed into
	    power savings mode (using Slurm's hostlist expression  format).   By
	    default,  no  program  is  run.  Programs will be killed if they run
	    longer than the largest configured, global or partition, ResumeTime-
	    out or SuspendTimeout.

     SuspendRate
	    The rate at which nodes are placed into power save mode by	Suspend-
	    Program.  The value is number of nodes per minute and it can be used
	    to prevent a large drop in power consumption (e.g. after a large job
	    completes).   A  value  of	zero results in no limits being imposed.
	    The default value is 60 nodes per minute.

     SuspendTime
	    Nodes which remain idle or down for this number of seconds	will  be
	    placed  into  power  save mode by SuspendProgram.  This value can be
	    overridden on a per-partition or per-node basis.   Setting	Suspend-
	    Time  to  anything but INFINITE (or -1) will enable power save mode.
	    INFINITE is the default.

     SuspendTimeout
	    Maximum time permitted (in seconds) between when a node suspend  re-
	    quest  is  issued  and  when the node is shutdown.	At that time the
	    node must be ready for a resume request to be issued as  needed  for
	    new work.  The default value is 30 seconds.

     SwitchParameters
	    Optional parameters for the switch plugin.

	    On	     HPE       Slingshot       systems	    configured	    with
	    SwitchType=switch/hpe_slingshot, the following parameters  are  sup-
	    ported (separate multiple parameters with a comma):

	    vnis=<min>-<max>
		   Range of VNIs to allocate for jobs and applications.  The de-
		   fault value is 1024-65535.

	    destroy_retries=<retry attempts>
		   Configure  the number of times destroying CXI services is re-
		   tried at the end of the step. There is a one second pause be-
		   tween each retry.  The default value is 5.

	    tcs=<class1>[:<class2>]...
		   Set of traffic classes to configure for  applications.   Sup-
		   ported  traffic  classes  are  DEDICATED_ACCESS, LOW_LATENCY,
		   BULK_DATA, and BEST_EFFORT. The traffic classes may	also  be
		   specified	 as	TC_DEDICATED_ACCESS,	 TC_LOW_LATENCY,
		   TC_BULK_DATA, and TC_BEST_EFFORT.

	    single_node_vni=<all|user|none>
		   If set to 'all', allocate a VNI for all  job  steps	(by  de-
		   fault,  no  VNI will be allocated for single-node job steps).
		   If set to 'user', allocate a VNI for  single-node  job  steps
		   using the srun --network=single_node_vni option or SLURM_NET-
		   WORK=single_node_vni  environment variable.	If set to 'none'
		   (or if single_node_vni is not set), do not allocate	any  VNI
		   for single-node job steps.  For backwards compatibility, set-
		   ting single_node_vni with no argument is equivalent to 'all'.

	    job_vni=<all|user|none>
		   If  set to 'all', allocate an additional VNI for jobs, shared
		   among all job steps.  If set to  'user',  allocate  an  addi-
		   tional  VNI	for any job using the srun --network=job_vni op-
		   tion or SLURM_NETWORK=job_vni environment variable.	 If  set
		   to 'none' (or if job_vni is not set), do not allocate any ad-
		   ditional  VNI  for jobs. For backwards compatibility, setting
		   job_vni with no argument is equivalent to 'all'.

	    adjust_limits
		   If set, slurmd will set an upper bound  on  network	resource
		   reservations  by taking the per-NIC maximum resource quantity
		   and subtracting the reserved or  used  values  (whichever  is
		   higher) for any system network services; this is the default.

	    no_adjust_limits
		   If  set,  slurmd will calculate network resource reservations
		   based only upon the per-resource  configuration  default  and
		   number  of tasks in the application; it will not set an upper
		   bound on those reservation requests based on  resource  usage
		   of  already-existing  system  network services.  Setting this
		   will mean more application launches could fail based on  net-
		   work  resource  exhaustion, but if the application absolutely
		   needs a certain amount of resources to function, this  option
		   will ensure that.

	    hwcoll_addrs_per_job
		   The	number	of  Slingshot hardware collectives multicast ad-
		   dresses to allocate	per  job.  (That  are  larger  than  hw-
		   coll_min_nodes nodes)

	    hwcoll_num_nodes
		   The	minimum number of nodes for a job to be allocated Sling-
		   shot hardware collectives. Because  the  hardware  collective
		   engine  is  not  expected  to  offer a meaningful performance
		   boost for jobs spanning a small number of nodes.

	    fm_url
		   If set, slurm will use the configured URL to  interface  with
		   the	fabric manager to enable Slingshot hardware collectives.
		   Note enable_stepmgr needs to be set for hardware  collectives
		   to run.

	    fm_auth
		   HPE	fabric	manager  REST  API authentication type (BASIC or
		   OAUTH, default OAUTH).

	    fm_authdir
		   Directory  containing  authentication  info	files	(default
		   /etc/fmsim for BASIC authentication, /etc/wlm-client-auth for
		   OAUTH authentication).

	    fm_authdir_ctld
		   Directory containing authentication info files that slurmctld
		   will use.  Defaults to the value of fm_authdir.

	    fm_mtls_url
		   This  sets  an  alternative	URL to fm_url that slurm daemons
		   will use to interface  with	the  fabric  manager  to  enable
		   Slingshot  hardware	collectives  when mTLS authentication is
		   enabled. If this is not set, fm_url will be used instead.  To
		   enable  mTLS authentication see fm_mtls_ca, fm_mtls_cert, and
		   fm_mtls_key.

		   Note: Setting fm_url and enable_stepmgr are required  to  en-
		   able Slingshot hardware collectives.

	    fm_mtls_ca
		   Path  to  Certificate Authority (CA) bundle file or directory
		   containing a file signed by the fabric  manager  certificate.
		   If  set,  the  identity  of the fabric manager server will be
		   verified if Slingshot hardware collectives are enabled.   See
		   also fm_mtls_cert and fm_mtls_key.

		   Note:  This option is not required to enable mTLS authentica-
		   tion with the fabric manager. However, without it the  client
		   (slurmctld  and stepmgr processes) will not be able to verify
		   the server identity.

	    fm_mtls_cert
		   Path to client public certificate. This is required to enable
		   mTLS authentication with the fabric	manager  when  Slingshot
		   hardware  collectives  are  enabled.  See also fm_mtls_ca and
		   fm_mtls_key.

	    fm_mtls_key
		   Path to client private key. This is required to  enable  mTLS
		   authentication  to the fabric manager when Slingshot hardware
		   collectives	 are   enabled.    See	 also	fm_mtls_ca   and
		   fm_mtls_cert.

	    nic_distribution_count=<val>
		   The default number of NICs users will evenly distribute their
		   tasks  over.   Users  can override this value by using --net-
		   work=nic_distribution_count=<val> option  or  the  SLURM_NET-
		   WORK=nic_distribution_count=<val>  environment variable.  De-
		   faults to the number of NICs on each node.

	    def_<rsrc>=<val>
		   Per-CPU reserved allocation for this resource.

	    res_<rsrc>=<val>
		   Per-node reserved allocation  for  this  resource.	If  set,
		   overrides the per-CPU allocation.

	    max_<rsrc>=<val>
		   Maximum per-node application for this resource.

     The resources that may be configured are:

	    txqs   Transmit  command  queues.  The default is 2 per-CPU, maximum
		   1024 per-node.

	    tgqs   Target command queues. The default is 1 per-CPU, maximum  512
		   per-node.

	    eqs    Event  queues.  The	default  is 2 per-CPU, maximum 2047 per-
		   node.

	    cts    Counters. The default is 1 per-CPU, maximum 2047 per-node.

	    tles   Trigger list entries. The default is 1 per-CPU, maximum  2048
		   per-node.

	    ptes   Portable  table  entries.  The  default is 6 per-CPU, maximum
		   2048 per-node.

	    les    List entries. The default is 16 per-CPU, maximum  16384  per-
		   node.

	    acs    Addressing  contexts.  The default is 2 per-CPU, maximum 1022
		   per-node.

     On systems configured with SwitchType=switch/nvidia_imex, the following pa-
     rameters are supported:

	    imex_channel_count
		   Number of channels that can	be  configured.  Channels  allow
		   nodes  to  create  a secure method of sharing memory. The de-
		   fault value is 2048.

		   By default, each job is allocated one IMEX  channel	that  is
		   accessible by the batch, interactive, and normal job steps on
		   all	nodes within the job. If using --network=unique-channel-
		   per-segment on job submission and topology/block  is  config-
		   ured,  then	each  segment will be allocated one IMEX channel
		   that is accessible by the batch, interactive, and normal  job
		   steps on all nodes within that particular segment.

     SwitchType
	    Identifies	the  type of switch or interconnect used for application
	    communications.  The default value is no  special  plugin  requiring
	    special  processing for job launch or termination (Ethernet, and In-
	    finiBand).	All Slurm daemons, commands and  running  jobs	must  be
	    restarted or reconfigured for a change in SwitchType to take effect.
	    If	running jobs exist at the time slurmctld is restarted with a new
	    value of SwitchType, records of all jobs in any state may  be  lost.
	    Acceptable values include:

	    switch/hpe_slingshot
			   For HPE Slingshot systems.

	    switch/nvidia_imex
			   For	allocating unique channels within an NVIDIA IMEX
			   domain.

     TaskEpilog
	    Pathname of a program to be executed as the job's user after  termi-
	    nation of each task. If it is not an absolute pathname (i.e. it does
	    not  start	with a slash), it must be relative to the directory con-
	    taining the slurm.conf file.  Will run inside of the job's container
	    if configured. Should  not	be  used  for  policy  enforcement.  See
	    TaskProlog for execution order details.

     TaskPlugin
	    Identifies the type of task launch plugin, typically used to provide
	    resource  management  within  a node (e.g. pinning tasks to specific
	    processors). More than  one  task  plugin  can  be	specified  in  a
	    comma-separated  list.  The  prefix of "task/" is optional. Unset by
	    default.  Acceptable values include:

	    task/affinity  binds  processes   to   specified   resources   using
			   sched_setaffinity().   This	enables  the  --cpu-bind
			   and/or --mem-bind srun options.

	    task/cgroup    enables process containment	to  specified  resources
			   using  Cgroups  cpuset  interface.  This  enables the
			   --cpu-bind and/or --mem-bind srun options.  NOTE: see
			   "man cgroup.conf" for configuration details.

	    NOTE: It is recommended to stack task/cgroup,task/affinity	together
	    when  configuring  TaskPlugin,  and  setting  ConstrainCores=yes  in
	    cgroup.conf. This setup uses the task/affinity  plugin  for  setting
	    the  cpu  mask  for  tasks	and uses the task/cgroup plugin to fence
	    tasks into the allocated cpus.

     TaskPluginParam
	    Optional parameters for the task plugin.  Multiple options should be
	    comma separated.  None, Sockets, Cores and Threads are mutually  ex-
	    clusive and treated as a last possible source of --cpu-bind default.
	    See also Node and Partition CpuBind options.

	    Cores  Bind tasks to cores by default.  Overrides automatic binding.

	    None   Perform  no	task  binding  by  default.  Overrides automatic
		   binding.

	    Sockets
		   Bind to sockets by default.	Overrides automatic binding.

	    Threads
		   Bind to threads by default.	Overrides automatic binding.

	    SlurmdSpecOverride
		   If slurmd is started in a cgroup which has cpuset  or  memory
		   constraints,  then  CpuSpecList  and MemSpecLimit will be set
		   and will override the  configured  values.  This  will  avoid
		   scheduling  resources  from	these constraints. In cgroup/v1,
		   slurmd and slurmstepd daemons will now not be able to use any
		   of these resources. While in normal behavior, cgroup/v1  con-
		   strains the daemons to CpuSpecList and MemSpecLimit.

	    SlurmdOffSpec
		   If  specialized  cores  or  CPUs  are identified for the node
		   (i.e. the CoreSpecCount or CpuSpecList are configured for the
		   node), then Slurm daemons running on the compute  node  (i.e.
		   slurmd  and slurmstepd) should run outside of those resources
		   (i.e. specialized resources	are  completely  unavailable  to
		   Slurm daemons and jobs spawned by Slurm).

	    OOMKillStep
		   Set this parameter to kill the whole step in all the nodes in
		   case an OOM event is triggered in any task of the step.

		   This  applies to entire allocations but does not apply to the
		   external step.  It can be overwritten by the user.

		   NOTE: This parameter requires the task/cgroup plugin, Cgroups
		   v2, and a kernel newer than 4.19.

	    Verbose
		   Verbosely report binding before tasks run by default.

	    Autobind
		   Set a default  binding  in  the  event  that  "auto	binding"
		   doesn't find a match.  Set to Threads, Cores or Sockets (E.g.
		   TaskPluginParam=autobind=threads).

     TaskProlog
	    Pathname of a program to be executed as the job's user prior to ini-
	    tiation  of  each  task.  If it is not an absolute pathname (i.e. it
	    does not start with a slash), it must be relative to  the  directory
	    containing	the  slurm.conf file.  Will run inside of the job's con-
	    tainer if configured. Should not be used for policy enforcement. Be-
	    sides the normal  environment  variables,  this  has  SLURM_TASK_PID
	    available  to  identify  the  process  ID of the task being started.
	    Standard output from this program can be used to control  the  envi-
	    ronment variables and output for the user program.

	    export NAME=value	Will  set environment variables for the task be-
				ing spawned.  Everything after the equal sign to
				the end of the line will be used  as  the  value
				for  the  environment  variable.   Exporting  of
				functions is not currently supported.

	    print ...		Will cause that line (without the leading "print
				") to be printed to the job's standard output.

	    unset NAME		Will clear environment variables  for  the  task
				being spawned.

	    The order of task prolog/epilog execution is as follows:

	    1. pre_launch_priv()
				Function in TaskPlugin

	    1. pre_launch()	Function in TaskPlugin

	    2. TaskProlog	System-wide   per   task   program   defined  in
				slurm.conf

	    3. User prolog	Job-step-specific  task  program  defined  using
				srun's --task-prolog option or SLURM_TASK_PROLOG
				environment variable

	    4. Task		Execute the job step's task

	    5. User epilog	Job-step-specific  task  program  defined  using
				srun's --task-epilog option or SLURM_TASK_EPILOG
				environment variable

	    6. TaskEpilog	System-wide  per   task   program   defined   in
				slurm.conf

	    7. post_term()	Function in TaskPlugin

     TCPTimeout
	    Time  permitted  for TCP connection to be established. Default value
	    is 2 seconds.

     TLSParameters
	    Comma-separated options for the TLS plugin	configured  by	TLSType.
	    Supported values include:

	    ca_cert_file=
		   Path of certificate authority (CA) certificate. Must exist on
		   all	hosts  and  be	accessible by all Slurm components. File
		   permissions must be 644, and owned by SlurmUser/root.

		   Default path is "ca_cert.pem" in the Slurm configuration  di-
		   rectory

	    ctld_cert_file=
		   Path   of  certificate  used  by  slurmctld.  Must  chain  to
		   ca_cert_file. Should only exist on  host  running  slurmctld.
		   File permissions must be 600, and owned by SlurmUser.

		   Default  path  is  "ctld_cert.pem" in the Slurm configuration
		   directory

	    ctld_cert_key_file=
		   Path of private key that accompanies  ctld_cert_file.  Should
		   only  exist	on host running slurmctld. File permissions must
		   be 600, and owned by SlurmUser.

		   Default path is "ctld_cert_key.pem" in the  Slurm  configura-
		   tion directory

	    restd_cert_file=
		   Path  of  certificate  used	by  slurmrestd.  Must  chain  to
		   ca_cert_file. Should only exist on host  running  slurmrestd.
		   File permissions must be 600, and owned by the user that runs
		   slurmrestd.

		   Default  path  is "restd_cert.pem" in the Slurm configuration
		   directory

	    restd_cert_key_file=
		   Path of private key that accompanies restd_cert_file.  Should
		   only  exist on host running slurmrestd. File permissions must
		   be 600, and owned by the user that runs slurmrestd.

		   Default path is "restd_cert_key.pem" in the Slurm  configura-
		   tion directory

	    sackd_cert_file=
		   Path   of   certificate   used   by	 sackd.  Must  chain  to
		   ca_cert_file. Should only exist on host running  sackd.  File
		   permissions must be 600, and owned by SlurmUser.

		   Default  path  is "sackd_cert.pem" in the Slurm configuration
		   directory

		   NOTE: If not using the certmgr plugin, this file needs to ex-
		   ist.

	    sackd_cert_key_file=
		   Path of private key that accompanies sackd_cert_file.  Should
		   only  exist	on  host running sackd. File permissions must be
		   600, and owned by SlurmUser.

		   Default path is "sackd_cert_key.pem" in the Slurm  configura-
		   tion directory

		   NOTE: If not using the certmgr plugin, this file needs to ex-
		   ist.

	    slurmd_cert_file=
		   Path   of   certificate   used   by	slurmd.  Must  chain  to
		   ca_cert_file. Should only exist on host running slurmd.  File
		   permissions must be 600, and owned by SlurmUser.

		   Default  path is "slurmd_cert.pem" in the Slurm configuration
		   directory

		   NOTE: If not using the certmgr plugin, this file needs to ex-
		   ist.

	    slurmd_cert_key_file=
		   Path of private key that accompanies slurmd_cert_file. Should
		   only exist on host running slurmd. File permissions	must  be
		   600, and owned by SlurmUser.

		   Default path is "slurmd_cert_key.pem" in the Slurm configura-
		   tion directory

		   NOTE: If not using the certmgr plugin, this file needs to ex-
		   ist.

	    load_system_certificates
		   Load  certificates  found  in  default system locations (e.g.
		   /etc/ssl) into trust store.

		   Default is to not  load  system  certificates,  and	to  rely
		   solely on ca_cert_file to establish trust.

	    security_policy_version=
		   Security  policy  version  used by s2n. See s2n documentation
		   for more details.  Default  security  policy  is  "20230317",
		   which is FIPS compliant and includes TLS 1.3.

     TLSType
	    Specify  the TLS implementation that will be used. Unset by default.
	    Acceptable values at present:

	    tls/s2n
		   Use the s2n TLS plugin. Requires additional configuration and
		   causes significant processing overhead, but allows all  Slurm
		   communication  to  be  encrypted.  Refer to the TLS guide for
		   more details: <https://slurm.schedmd.com/tls.html>

     TmpFS  Fully qualified pathname of the file system available to  user  jobs
	    for  temporary  storage.  This  parameter  is used in establishing a
	    node's TmpDisk space.  The default value is "/tmp".

     TopologyParam
	    Comma-separated options identifying network topology options.

	    Dragonfly	     Optimize allocation for Dragonfly	network.   Valid
			     when TopologyPlugin=topology/tree.

	    RoutePart	     Instead  of using the plugin's default route calcu-
			     lation, use partition node lists to route	communi-
			     cations  from  the  controller. Once on the compute
			     node, communications will be routed using	the  re-
			     quested   plugin's   normal   algorithm,  following
			     TreeWidth if applicable. If a node is  in	multiple
			     partitions,  the first partition seen will be used.
			     The controller will communicate directly  with  any
			     nodes that aren't in a partition.

	    BlockAsNodeRank  Assign  the  same	node rank to all nodes under one
			     base block.  This can be useful if the naming  con-
			     vention  for  the	nodes does not match the network
			     topology.	Valid when topology/block is  a  cluster
			     default topology.

	    SwitchAsNodeRank
			     Assign  the  same	node rank to all nodes under one
			     leaf switch.  This can be useful if the naming con-
			     vention for the nodes does not  match  the  network
			     topology.	 Valid	when  topology/tree is a cluster
			     default topology.

	    RouteTree	     Use the switch hierarchy defined in a topology.conf
			     file for routing instead of just scheduling.  Valid
			     when  TopologyPlugin=topology/tree.    Incompatible
			     with dynamic nodes.

	    TopoMaxSizeUnroll=Maximum number of individual job sizes automati-
	    cally unrolled
			     from  min-max nodes job specification.  Default: -1
			     (option   disabled).    Valid   when   TopologyPlu-
			     gin=topology/block.

	    TopoOptional     Only  optimize  allocation  for network topology if
			     the job includes a switch option. Since  optimizing
			     resource  allocation  for	topology  involves  much
			     higher system overhead, this option can be used  to
			     impose  the  extra  overhead only on jobs which can
			     take advantage of it. If most job	allocations  are
			     not  optimized for network topology, they may frag-
			     ment resources to the point that topology optimiza-
			     tion for other jobs will be difficult  to	achieve.
			     NOTE:  Jobs  may  span  across nodes without common
			     parent switches with this enabled.

     TopologyPlugin
	    Identifies the plugin to be used for determining the network  topol-
	    ogy  and  optimizing job allocations to minimize network contention.
	    See NETWORK TOPOLOGY below for details.  Additional plugins  may  be
	    provided  in  the  future which gather topology information directly
	    from the network.  Acceptable values include:

	    topology/block	 used for a block network topology, as described
				 in the topology.conf(5) man page

	    topology/flat	 best-fit logic over  one-dimensional  topology.
				 This is the default.

	    topology/tree	 used  for  a  hierarchical network with the se-
				 lect/cons_tres  plugin,  as  described  in  the
				 topology.conf(5) man page
     NOTE: This option is ignored if topology.yaml exists.

     TrackWCKey
	    Boolean  yes  or  no.  Used to set display and track of the Workload
	    Characterization Key. Must be set  to  track  correct  wckey  usage.
	    NOTE:  You	must  also  set TrackWCKey in your slurmdbd.conf file to
	    create historical usage reports.

     TreeWidth
	    Slurmd daemons  use  a  virtual  tree  network  for  communications.
	    TreeWidth  specifies  the  width of the tree (i.e. the fanout).  The
	    default value is 16, meaning each slurmd daemon can communicate with
	    up to 16 other slurmd daemons. This value balances offloading slurm-
	    ctld (max 16 threads running), time of communication, and node fault
	    tolerance (4368 nodes can be contacted with three message hops). The
	    default value will work well for most  clusters  however  on  bigger
	    systems  this  value can be increased to avoid long timeouts and re-
	    transmissions in case of unresponsive nodes. The value may	not  ex-
	    ceed 65533.

     UnkillableStepProgram
	    If the processes in a job step are determined to be unkillable for a
	    period  of time specified by the UnkillableStepTimeout variable, the
	    program specified by UnkillableStepProgram will be executed.  By de-
	    fault no program is run.

	    See section UNKILLABLE STEP PROGRAM SCRIPT for more information.

     UnkillableStepTimeout
	    The length of time, in seconds, that Slurm will wait before deciding
	    that processes in a job step are unkillable (after	they  have  been
	    signaled  with  SIGKILL) and execute UnkillableStepProgram.  The de-
	    fault timeout value is 60 seconds or five times the  value	of  Mes-
	    sageTimeout,  whichever  is  greater.  If exceeded, the compute node
	    will be drained to prevent future jobs from being scheduled  on  the
	    node.

	    NOTE:  Ensure  that UnkillableStepTimeout is at least 5 times larger
	    than MessageTimeout, otherwise it can lead to unexpected draining of
	    nodes.

     UrlParserType
	    Specify the url_parser implementation that will be used. Default  is
	    url_parser/libhttp_parser  if  found, otherwise url_parser/internal.
	    Acceptable values at present:

	    url_parser/libhttp_parser
		   Use the libhttp_parser based plugin.

	    url_parser/internal
		   Use Slurm's internal url parser plugin.

		   Note: required when HttpParserType=http_parser/llhttp_parser.

     UsePAM
	    If set to 1, PAM (Pluggable Authentication Modules for  Linux)  will
	    be	enabled.  PAM is used to establish the upper bounds for resource
	    limits. With PAM support enabled, local  system  administrators  can
	    dynamically  configure  system  resource  limits. Changing the upper
	    bound of a resource limit will not alter the limits of running jobs,
	    only jobs started after a change has been made will pick up the  new
	    limits.  The default value is 0 (not to enable PAM support).  Remem-
	    ber  that PAM also needs to be configured to support Slurm as a ser-
	    vice.  For sites using PAM's directory based configuration option, a
	    configuration file named slurm should be created.  The  module-type,
	    control-flags,  and module-path names that should be included in the
	    file are:
	    auth	required      pam_localuser.so
	    auth	required      pam_shells.so
	    account	required      pam_unix.so
	    account	required      pam_access.so
	    session	required      pam_unix.so
	    For sites configuring PAM with a general configuration file, the ap-
	    propriate lines (see above), where slurm is the service-name, should
	    be added.  See <https://slurm.schedmd.com/pam_slurm_adopt.html>  for
	    more details.

	    NOTE:   UsePAM   option   has   nothing   to   do	with   the  con-
	    tribs/pam/pam_slurm  and/or  contribs/pam_slurm_adopt  modules.   So
	    these  two	modules  can  work  independently  of  the value set for
	    UsePAM.

     VSizeFactor
	    Memory specifications in job requests  apply  to  real  memory  size
	    (also known as resident set size). It is possible to enforce virtual
	    memory  limits for both jobs and job steps by limiting their virtual
	    memory to some percentage  of  their  real	memory	allocation.  The
	    VSizeFactor parameter specifies the job's or job step's virtual mem-
	    ory  limit as a percentage of its real memory limit. For example, if
	    a job's real memory limit is 500MiB and VSizeFactor is  set  to  101
	    then the job will be killed if its real memory exceeds 500MiB or its
	    virtual  memory  exceeds  505MiB  (101  percent  of  the real memory
	    limit).  The default value is 0, which disables enforcement of  vir-
	    tual memory limits.  The value may not exceed 65533 percent.

	    NOTE: This parameter is dependent on OverMemoryKill being configured
	    in	JobAcctGatherParams.  It  is  also  possible  to  configure  the
	    TaskPlugin to use task/cgroup for  memory  enforcement.  VSizeFactor
	    will not have an effect on memory enforcement done through cgroups.

     WaitTime
	    Specifies  how  many seconds the srun command should by default wait
	    after the first task terminates  before  terminating  all  remaining
	    tasks.  The  "--wait" option on the srun command line overrides this
	    value.  The default value is 0, which disables  this  feature.   May
	    not exceed 65533 seconds.

     X11Parameters
	    For use with Slurm's built-in X11 forwarding implementation.

	    home_xauthority
		    If	set,  xauth  data  on the compute node will be placed in
		    ~/.Xauthority rather than in a temporary file under TmpFS.

NODE CONFIGURATION
     The configuration of nodes (or machines) to be managed  by  Slurm	is  also
     specified	in  /etc/slurm.conf.  Changes in node configuration (e.g. adding
     nodes, changing their processor count, etc.) require restarting  or  recon-
     figuring  all  slurmctld  and slurmd daemons.  All slurmd daemons must know
     each node in the system to forward messages in support of hierarchical com-
     munications.  Only the NodeName must be supplied in the configuration file.
     All other node configuration information is optional.  It is  advisable  to
     establish	baseline  node configurations, especially if the cluster is het-
     erogeneous.  Nodes which register to the system with less than the  config-
     ured resources (e.g. too little memory), will be placed in the "DOWN" state
     to  avoid	scheduling  jobs  on them.  Establishing baseline configurations
     will also speed Slurm's scheduling process by permitting it to compare  job
     requirements  against  these  (relatively few) configuration parameters and
     possibly avoid having to check job requirements  against  every  individual
     node's configuration.  The resources checked at node registration time are:
     CPUs, RealMemory and TmpDisk.

     Default  values  can  be  specified with a record in which NodeName is "DE-
     FAULT".  The default entry values will apply only to lines following it  in
     the  configuration  file and the default values can be reset multiple times
     in the configuration file with multiple entries  where  "NodeName=DEFAULT".
     Each  line  where NodeName is "DEFAULT" will replace or add to previous de-
     fault values and will not reinitialize the default values.  The "NodeName="
     specification must be placed on every line describing the configuration  of
     nodes.   A single node name can not appear as a NodeName value in more than
     one line (duplicate node name records will be ignored).   In  fact,  it  is
     generally	possible and desirable to define the configurations of all nodes
     in only a few lines.  This convention permits significant	optimization  in
     the scheduling of larger clusters.  In order to support the concept of jobs
     requiring	consecutive  nodes  on	some  architectures, node specifications
     should be place in this file in consecutive order.  No single node name may
     be listed more than once in the configuration file.   Use	"DownNodes="  to
     record the state of nodes which are temporarily in a DOWN, DRAIN or FAILING
     state  without  altering permanent configuration information.  A job step's
     tasks are allocated to nodes in order the nodes appear in the configuration
     file. There is presently no capability within Slurm to arbitrarily order  a
     job step's tasks.

     Multiple node names may be comma separated (e.g. "alpha,beta,gamma") and/or
     a	simple	node  range expression may optionally be used to specify numeric
     ranges of nodes to avoid building a configuration file with  large  numbers
     of  entries.   The  node  range expression can contain one or more pairs of
     square brackets with a sequence of comma-separated numbers and/or ranges of
     numbers separated by a "-" (e.g., "linux[0-64,128]", "lx[15,18,32-33]",  or
     "rack[0-63]_blade[0-41]").  Note that the numeric ranges can include one or
     more leading zeros to indicate the numeric portion has a  fixed  number  of
     digits (e.g. "linux[0000-1023]").

     The node configuration specified the following information:

     NodeName
	    Name  that	Slurm  uses to refer to a node.  Typically this would be
	    the string that "/bin/hostname -s" returns.   It  may  also  be  the
	    fully  qualified domain name as returned by "/bin/hostname -f" (e.g.
	    "foo1.bar.com"), or any valid domain name associated with  the  host
	    through  the host database (/etc/hosts) or DNS, depending on the re-
	    solver settings. Note that if the short form of the hostname is  not
	    used,  it  may prevent use of hostlist expressions (the numeric por-
	    tion in brackets must be at the end of the string).  It may also  be
	    an	arbitrary  string if NodeHostname is specified.  If the NodeName
	    is "DEFAULT", the values specified with that record  will  apply  to
	    subsequent node specifications unless explicitly set to other values
	    in that node record or replaced with a different set of default val-
	    ues.   Each  line where NodeName is "DEFAULT" will replace or add to
	    previous default values and not  reinitialize  the	default  values.
	    For architectures in which the node order is significant, nodes will
	    be considered consecutive in the order defined.  For example, if the
	    configuration for "NodeName=charlie" immediately follows the config-
	    uration for "NodeName=baker" they will be considered adjacent in the
	    computer.	NOTE:  If  the NodeName is "ALL" the process parsing the
	    configuration will exit immediately as it is an internally	reserved
	    word.

     NodeHostname
	    Typically  this would be the string that "/bin/hostname -s" returns.
	    It may also be the	fully  qualified  domain  name	as  returned  by
	    "/bin/hostname  -f"  (e.g. "foo1.bar.com"), or any valid domain name
	    associated with the host through the host database	(/etc/hosts)  or
	    DNS, depending on the resolver settings. Note that if the short form
	    of	the hostname is not used, it may prevent use of hostlist expres-
	    sions (the numeric portion in brackets must be at  the  end  of  the
	    string).   A  node	range expression can be used to specify a set of
	    nodes.  If an expression is used, the number of nodes identified  by
	    NodeHostname  on  a line in the configuration file must be identical
	    to the number of nodes identified  by  NodeName.   By  default,  the
	    NodeHostname will be identical in value to NodeName.

     NodeAddr
	    Name  that a node should be referred to in establishing a communica-
	    tions path.  This name will be used as an  argument  to  the  getad-
	    drinfo() function for identification.  If a node range expression is
	    used  to  designate  multiple nodes, they must exactly match the en-
	    tries in the NodeName (e.g.  "NodeName=lx[0-7]  NodeAddr=elx[0-7]").
	    NodeAddr  may  also  contain IP addresses.	By default, the NodeAddr
	    will be identical in value to NodeHostname.

     BcastAddr
	    Alternate network path to be used for sbcast network  traffic  to  a
	    given  node.   This  name  will be used as an argument to the getad-
	    drinfo() function.	If a node range expression is used to  designate
	    multiple  nodes, they must exactly match the entries in the NodeName
	    (e.g. "NodeName=lx[0-7] BcastAddr=elx[0-7]").   BcastAddr  may  also
	    contain  IP  addresses.  By default, the BcastAddr is unset, and sb-
	    cast traffic will be routed to the NodeAddr for a given node.  Note:
	    cannot be used with CommunicationParameters=NoInAddrAny.

     Boards
	    Number of Baseboards in nodes with	a  baseboard  controller.   Note
	    that  when Boards is specified, SocketsPerBoard, CoresPerSocket, and
	    ThreadsPerCore should be specified.  The default value is 1.

     CoreSpecCount
	    Number of  cores  reserved	for  system  use.   Depending  upon  the
	    TaskPluginParam option of SlurmdOffSpec, the Slurm daemon slurmd may
	    either  be	confined  to  these resources (the default) or prevented
	    from using these resources.  If cgroup/v1 is used, the same  applies
	    to the slurmstepd processes.  Isolation of slurmd from user jobs may
	    improve  application  performance.	A job can use these cores if Al-
	    lowSpecResourcesUsage=yes and the user explicitly requests less than
	    the configured CoreSpecCount.  If this option  and	CpuSpecList  are
	    both  designated  for a node, an error is generated. For information
	    on the algorithm used by Slurm to select the cores refer to the core
	    specialization		      documentation		       (
	    https://slurm.schedmd.com/core_spec.html ).

     CoresPerSocket
	    Number  of	cores  in a single physical processor socket (e.g. "2").
	    The CoresPerSocket value describes physical cores, not  the  logical
	    number  of	processors  per  socket.   NOTE:  If you have multi-core
	    processors, you will likely need to specify this parameter in  order
	    to optimize scheduling.  The default value is 1.

     CpuBind
	    If	a  job	step  request  does not specify an option to control how
	    tasks are bound to allocated CPUs  (by  using  --cpu-bind)	and  all
	    nodes  allocated  to  the job have the same CpuBind option, the node
	    CpuBind option will control how tasks are  bound  to  allocated  re-
	    sources.  Partition  definitions  are  used next if the node defini-
	    tion(s) can't be used, followed by TaskPluginParam as a last resort,
	    with the default being no binding. Supported values for CpuBind  are
	    none, socket, ldom (NUMA), core and thread.

     CPUs   Number  of logical processors on the node (e.g. "2").  It can be set
	    to the total number of  sockets(supported  only  by  select/linear),
	    cores or threads.  This can be useful when you want to schedule only
	    the  cores on a hyper-threaded node. If CPUs is omitted, its default
	    will be set equal to the product of Boards, Sockets, CoresPerSocket,
	    and ThreadsPerCore.

     CpuSpecList
	    A comma-delimited list of Slurm abstract CPU IDs reserved for system
	    use.  The list will be expanded to include all other CPUs,	if  any,
	    on	the  same  cores.   Depending upon the TaskPluginParam option of
	    SlurmdOffSpec, the Slurm daemon slurmd may	either	be  confined  to
	    these  resources  (the  default)  or  prevented from using these re-
	    sources.  If cgroup/v1 is used, the same applies to  the  slurmstepd
	    processes.	 Isolation of slurmd from user jobs may improve applica-
	    tion performance.  A job can use these cores  if  AllowSpecResource-
	    sUsage=yes	and the user explicitly requests less than the number of
	    CPUs in this list.	If this option and CoreSpecCount are both desig-
	    nated for a node, an error is generated.  This option has no  effect
	    unless   cgroup   job  confinement	is  also  configured  (i.e.  the
	    task/cgroup TaskPlugin is enabled and ConstrainCores=yes is  set  in
	    cgroup.conf).

     Features
	    A comma-delimited list of arbitrary strings indicative of some char-
	    acteristic associated with the node.  There is no value or count as-
	    sociated with a feature at this time, a node either has a feature or
	    it	does not.  A desired feature may contain a numeric component in-
	    dicating, for example, processor speed but	this  numeric  component
	    will  be  considered  to be part of the feature string. Features are
	    intended to be used to filter nodes eligible to  run  jobs	via  the
	    --constraint argument.  By default a node has no features.	Also see
	    Gres  for  being  able to have more control such as types and count.
	    Using features is faster than scheduling against GRES but is limited
	    to Boolean operations.

	    NOTE: The hostlist function feature{myfeature} expands to all  nodes
	    with  the  specified feature. This may be used in place of or along-
	    side regular hostlist expressions in commands or configuration files
	    that interact with the  slurmctld.	 For  example:	scontrol  update
	    node=feature{myfeature}  state=resume or PartitionName=p1 Nodes=fea-
	    ture{myfeature}.

     Gres   A comma-delimited list of generic  resources  specifications  for  a
	    node.     The    format    is:   "<name>[:<type>][:no_consume]:<num-
	    ber>[K|M|G]".  The first field is the resource name,  which  matches
	    the  GresType configuration parameter name.  The optional type field
	    might be used to identify a model of that generic resource.   It  is
	    forbidden  to specify both an untyped GRES and a typed GRES with the
	    same <name>.  The optional no_consume field allows	you  to  specify
	    that  a  generic  resource does not have a finite number of that re-
	    source that gets consumed as it is requested. The  no_consume  field
	    is	a  GRES  specific setting and applies to the GRES, regardless of
	    the type specified.  It should not be used with GRES that has a ded-
	    icated plugin, if you're looking for a way	to  overcommit	GPUs  to
	    multiple  processes  at  the  time	you  may  be interested in using
	    "shard" GRES instead.  The final field must specify  a  generic  re-
	    sources count.  A suffix of "K", "M", "G", "T" or "P" may be used to
	    multiply the number by 1024, 1048576, 1073741824, etc. respectively.
	    (e.g."Gres=gpu:tesla:1,gpu:kepler:1,bandwidth:lustre:no_con-
	    sume:4G").	 If  Gres  is  configured on a default node entry (Node-
	    Name=DEFAULT), you can set an empty string (Gres="") to configure no
	    Gres on a subsequent entry.  By default a node has	no  generic  re-
	    sources  and its maximum count is that of an unsigned 64bit integer.
	    Also see Features for Boolean flags to filter nodes using  job  con-
	    straints.

     MemSpecLimit
	    Amount  of RealMemory, in mebibytes, reserved for system use and not
	    available for user allocations. Must be less than the amount defined
	    for RealMemory.  If the task/cgroup plugin is  configured  and  that
	    plugin  constrains memory allocations (i.e. the task/cgroup TaskPlu-
	    gin is enabled and ConstrainRAMSpace=yes  is  set  in  cgroup.conf),
	    then  the  slurmd  will  be allocated the specified memory limit. If
	    cgroup/v1 is used the slurmstepd will also be allocated  the  speci-
	    fied  memory  limit. If cgroup/v2 is used, the slurmstepd's consump-
	    tion is completely dependent on the topology of the job.  Note  that
	    having  the Memory set in SelectTypeParameters as any of the options
	    that has it as a consumable resource is needed for	this  option  to
	    work.  The daemons will not be killed if they exhaust the memory al-
	    location (i.e. the Out-Of-Memory Killer is disabled for the daemon's
	    memory  cgroup).   If  the task/cgroup plugin is not configured, the
	    specified memory will only be unavailable for user allocations.

     Parameters
	    Allows for node-specific additions to the  global  SlurmdParameters.
	    Options are appended, and cannot override global options.

     Port   The  port number that the Slurm compute node daemon, slurmd, listens
	    to for work on this particular node. By default there  is  a  single
	    port  number  for all slurmd daemons on all compute nodes as defined
	    by the SlurmdPort configuration parameter. Use of this option is not
	    generally recommended except for development or testing purposes. If
	    multiple slurmd daemons execute on a node this can specify	a  range
	    of ports.

	    NOTE:  On Cray systems, Realm-Specific IP Addressing (RSIP) will au-
	    tomatically  try  to  interact  with  anything   opened   on   ports
	    8192-60000.   Configure Port to use a port outside of the configured
	    SrunPortRange and RSIP's port range.

     Procs  See CPUs.

     RealMemory
	    Size of real memory on the node in mebibytes (e.g. "2048").  The de-
	    fault value is 1. Lowering RealMemory with the goal of setting aside
	    some amount for the OS and not available for  job  allocations  will
	    not  work  as intended if Memory is not set as a consumable resource
	    in SelectTypeParameters. So one of the *_Memory options need  to  be
	    enabled for that goal to be accomplished.  Also see MemSpecLimit.

     Reason
	    Identifies	the  reason  for a node being in state "DOWN", "DRAINED"
	    "DRAINING", "FAIL" or "FAILING".  Use quotes  to  enclose  a  reason
	    having more than one word.

     RestrictedCoresPerGPU
	    Number  of	cores per GPU restricted for only GPU use. If a job does
	    not request a GPU it will not have access to these cores. The node's
	    GPUs must either be autodetected or have valid cores  configured  in
	    gres.conf(5).

	    NOTE:  Configuring multiple GPU types on overlapping sockets can re-
	    sult in erroneous GPU type and restricted core pairings  in  alloca-
	    tions  requesting  gpus without specifying a type.	NOTE: Shared gpu
	    gres (shards or mps) will have access to these cores, but  there  is
	    no	guarantee  that  reserved  cores  are  used in proportion to the
	    shared gres allocation.

     Sockets
	    Number of physical processor sockets/chips on the node  (e.g.  "2").
	    If	Sockets  is  omitted,  it  will be inferred from CPUs, CoresPer-
	    Socket, and ThreadsPerCore.  If you have multi-core processors,  you
	    will  likely  need	to  specify  these parameters. Sockets and Sock-
	    etsPerBoard are mutually exclusive.  If Sockets  is  specified  when
	    Boards  is	also  used,  Sockets  is  interpreted as SocketsPerBoard
	    rather than total sockets.	The default value is 1.

	    NOTE:  If  SlurmdParameters=numa_node_as_socket   or   SlurmdParame-
	    ters=l3cache_as_socket is configured, the values for Sockets, Cores-
	    PerSocket,	and  ThreadsPerCore  must match the virtual topology re-
	    ported by slurmd -C under that configuration, not the physical hard-
	    ware layout. See the SlurmdParameters documentation for details.

     SocketsPerBoard
	    Number of physical processor sockets/chips on a baseboard.	 Sockets
	    and SocketsPerBoard are mutually exclusive.  The default value is 1.

     SuspendTime
	    Nodes  which  remain idle or down for this number of seconds will be
	    placed into power save mode by  SuspendProgram.   This  value  takes
	    precedence	over the partition-level and global SuspendTime settings
	    for the specified nodes.  For nodes that are in multiple  partitions
	    with  SuspendTime configured, the node-level value takes precedence.
	    If not set on the node, the partition and  then  global  values  are
	    used.   Setting  SuspendTime  to INFINITE will disable suspending of
	    these nodes.  Setting SuspendTime to anything but INFINITE	(or  -1)
	    will enable power save mode.

     State  State  of the node with respect to the initiation of user jobs.  Ac-
	    ceptable values are CLOUD, DOWN, DRAIN, FAIL,  FAILING,  FUTURE  and
	    UNKNOWN.   Node  states  of BUSY and IDLE should not be specified in
	    the node configuration, but set the node state to  UNKNOWN	instead.
	    Setting  the node state to UNKNOWN will result in the node state be-
	    ing set to BUSY, IDLE or other appropriate state based  upon  recov-
	    ered  system state information.  The default value is UNKNOWN.  Also
	    see the DownNodes parameter below.

	    CLOUD     Indicates the node exists in the cloud.  Its initial state
		      will be treated as powered down.	The node will be  avail-
		      able  for  use  after  its state is recovered from Slurm's
		      state save file or the slurmd daemon starts on the compute
		      node.

	    DOWN      Indicates the node failed and is unavailable to  be  allo-
		      cated work.

	    DRAIN     Indicates the node is unavailable to be allocated work.

	    FAIL      Indicates  the  node is expected to fail soon, has no jobs
		      allocated to it, and will not  be  allocated  to	any  new
		      jobs.

	    FAILING   Indicates  the  node  is expected to fail soon, has one or
		      more jobs allocated to it, but will not  be  allocated  to
		      any new jobs.

	    FUTURE    Indicates  the node is defined for future use and need not
		      exist when the Slurm daemons are started. These nodes  can
		      be  made	available  for	use  simply by updating the node
		      state using the scontrol command	rather	than  restarting
		      the  slurmctld  daemon.  After these nodes are made avail-
		      able, change their State in  the	slurm.conf  file.  Until
		      these  nodes are made available, they will not be seen us-
		      ing any Slurm commands or nor will any attempt be made  to
		      contact  them.  FUTURE  nodes  retain  non-FUTURE state on
		      restart. Use scontrol to put node back into FUTURE state.

		      Dynamic Future Nodes
			     A slurmd started with -F[<feature>] will be associ-
			     ated with a FUTURE node that matches the same  con-
			     figuration (sockets, cores, threads) as reported by
			     slurmd  -C.  The  node's  NodeAddr and NodeHostname
			     will automatically be retrieved from the slurmd and
			     will be cleared when set back to the FUTURE state.

	    UNKNOWN   Indicates the node's state is undefined but will be estab-
		      lished (set to BUSY or IDLE) when  the  slurmd  daemon  on
		      that node registers. UNKNOWN is the default state.

     ThreadsPerCore
	    Number  of	logical  threads  in  a single physical core (e.g. "2").
	    Note that the Slurm can allocate resources to jobs down to the reso-
	    lution of a core. If your system is configured with  more  than  one
	    thread  per core, execution of a different job on each thread is not
	    supported  unless  you  configure  SelectTypeParameters=CR_CPU  plus
	    CPUs; do not configure Sockets, CoresPerSocket or ThreadsPerCore.  A
	    job  can  execute  a one task per thread from within one job step or
	    execute a distinct job step on each of the threads.   Note	also  if
	    you are running with more than 1 thread per core and running the se-
	    lect/cons_tres  plugin then you will want to set the SelectTypePara-
	    meters variable to something other than CR_CPU to  avoid  unexpected
	    results.  The default value is 1.

     TmpDisk
	    Total  size  of  temporary	disk storage in TmpFS in mebibytes (e.g.
	    "16384"). TmpFS (for "Temporary File System") identifies  the  loca-
	    tion  which  jobs  should use for temporary storage.  Note this does
	    not indicate the amount of free space available to the user  on  the
	    node,  only  the  total  file system size. The system administration
	    should ensure this file system is purged as needed so that user jobs
	    have access to most of this space.	The Prolog  and/or  Epilog  pro-
	    grams  (specified in the configuration file) might be used to ensure
	    the file system is kept clean.  The default value is 0.

     Topology
	    Comma-separated list of pairs in the format  <topology_name>:<topol-
	    ogy_unit>.	Where <topology_unit> is the block name or the name of a
	    leaf  switch.   Intermediate switch names -- ':' delimited -- can be
	    provided  and  will  be  created  if  needed  (e.g.   Topology=topo-
	    tree:sw_root:s1:s2).   This setting overwrites the node topology af-
	    filiation configuration specified  in  topology.conf(5)  and  topol-
	    ogy.yaml(5).

     Weight
	    The  priority of the node for scheduling purposes.	All things being
	    equal, jobs will be allocated the nodes with the lowest weight which
	    satisfies their requirements.  For example, a heterogeneous  collec-
	    tion  of  nodes  might be placed into a single partition for greater
	    system utilization,  responsiveness  and  capability.  It  would  be
	    preferable	to allocate smaller memory nodes rather than larger mem-
	    ory nodes if either will satisfy a job's requirements.  The units of
	    weight are arbitrary, but larger weights should be assigned to nodes
	    with more processors, memory, disk space,  higher  processor  speed,
	    etc.  Note that if a job allocation request can not be satisfied us-
	    ing the nodes with the lowest weight, the set of nodes with the next
	    lowest  weight  is added to the set of nodes under consideration for
	    use (repeat as needed for higher weight values). If  you  absolutely
	    want  to  minimize	the number of higher weight nodes allocated to a
	    job (at a cost of higher scheduling overhead), give each node a dis-
	    tinct Weight value and they will be added to the pool of nodes being
	    considered for scheduling individually.

	    The default value is 1.

	    NOTE: Node weights are first considered  among  currently  available
	    nodes.  For  example,  POWERED_DOWN and POWERING_UP nodes with lower
	    weights will not be evaluated before a powered up IDLE node.

DOWN NODE CONFIGURATION
     The DownNodes= parameter permits you to mark certain nodes as  in	a  DOWN,
     DRAIN, FAIL, FAILING or FUTURE state without altering the permanent config-
     uration information listed under a NodeName= specification.

     DownNodes
	    Any  node name, or list of node names, from the NodeName= specifica-
	    tions.

     Reason
	    Identifies the reason for a node being in state DOWN,  DRAIN,  FAIL,
	    FAILING  or FUTURE.  Use quotes to enclose a reason having more than
	    one word.

     State  State of the node with respect to the initiation of user jobs.   Ac-
	    ceptable values are DOWN, DRAIN, FAIL, FAILING and FUTURE.	For more
	    information  about	these states see the descriptions under State in
	    the NodeName= section above.  The default value is DOWN.

NODESET CONFIGURATION
     The nodeset configuration allows you to define a name for a specific set of
     nodes which can be used to simplify the  partition  configuration	section,
     especially  for  heterogeneous  or condo-style systems. Each nodeset may be
     defined by an explicit list of nodes, and/or by filtering the  nodes  by  a
     particular  configured  feature.  If  both Feature= and Nodes= are used the
     nodeset shall be the union of the two subsets.  Note that the nodesets  are
     only used to simplify the partition definitions at present, and are not us-
     able outside of the partition configuration.

     Feature
	    All  nodes	with this feature will be included as part of this node-
	    set. Only a single feature is allowed.

     Nodes  List of nodes in this set.

     NodeSet
	    Unique name for a set of nodes. Must not overlap with  any	NodeName
	    definitions.

PARTITION CONFIGURATION
     The  partition  configuration permits you to establish different job limits
     or access controls for various groups (or partitions) of nodes.  Nodes  may
     be  in  more than one partition, making partitions serve as general purpose
     queues.  For example one may put the same set of nodes into  two  different
     partitions,  each with different constraints (time limit, job sizes, groups
     allowed to use the partition, etc.).  Jobs are allocated resources within a
     single partition.	Default values can be specified with a record  in  which
     PartitionName  is	"DEFAULT".   The default entry values will apply only to
     lines following it in the configuration file and the default values can  be
     reset  multiple times in the configuration file with multiple entries where
     "PartitionName=DEFAULT".  The "PartitionName=" specification must be placed
     on every line describing the configuration of partitions.	Each line  where
     PartitionName  is	"DEFAULT" will replace or add to previous default values
     and not reinitialize the default values.  A single partition name	can  not
     appear  as a PartitionName value in more than one line (duplicate partition
     name records will be ignored).  If a partition that is in	use  is  deleted
     from the configuration and slurm is restarted or reconfigured (scontrol re-
     configure),  jobs	using the partition are canceled.  NOTE: Put all parame-
     ters for each partition on a single line.	Each line of partition	configu-
     ration  information  should represent a different partition.  The partition
     configuration file contains the following information:

     AllocNodes
	    Comma-separated list of nodes from which users can	submit	jobs  in
	    the partition.  Node names may be specified using the node range ex-
	    pression syntax described above.  The default value is "ALL".

     AllowAccounts
	    Comma-separated  list of accounts which may execute jobs in the par-
	    tition.  The default value is  "ALL".  This  list  is  hierarchical,
	    meaning  subaccounts  are included automatically.  NOTE: If AllowAc-
	    counts is used then DenyAccounts will not be enforced.   Also  refer
	    to DenyAccounts.

     AllowGroups
	    Comma-separated  list  of group names which may execute jobs in this
	    partition.	A user will be permitted to submit a job to this  parti-
	    tion if AllowGroups has at least one group associated with the user.
	    Jobs  executed  as user root or as user SlurmUser will be allowed to
	    use any partition, regardless of the value of AllowGroups. In  addi-
	    tion,  a Slurm Admin or Operator will be able to view any partition,
	    regardless of the value of AllowGroups.  If user  root  attempts  to
	    execute a job as another user (e.g. using srun's --uid option), then
	    the  job  will  be subject to AllowGroups as if it were submitted by
	    that user.	By default, AllowGroups is unset, meaning all groups are
	    allowed to use this partition. The special value 'ALL' is equivalent
	    to this.  Users who are not members of the specified group will  not
	    see  information  about  this  partition  by  default. However, this
	    should not be treated as a security mechanism, since job information
	    will be returned if a user requests details about the partition or a
	    specific job. See the PrivateData parameter to  restrict  access  to
	    job  information.	NOTE: For performance reasons, Slurm maintains a
	    list of user IDs allowed to use each partition and this  is  checked
	    at	job  submission time.  This list of user IDs is updated when the
	    slurmctld daemon is restarted, reconfigured (e.g.  "scontrol  recon-
	    fig")  or  the  partition's  AllowGroups  value is reset, even if is
	    value is unchanged (e.g. "scontrol update PartitionName=name  Allow-
	    Groups=group").   For a user's access to a partition to change, both
	    his group membership must change and Slurm's internal user	ID  list
	    must change using one of the methods described above.

     AllowQos
	    Comma-separated list of Qos which may execute jobs in the partition.
	    Jobs  executed  as user root can use any partition without regard to
	    the value of AllowQos.  The default value is "ALL".   NOTE:  If  Al-
	    lowQos  is	used  then  DenyQos will not be enforced.  Also refer to
	    DenyQos.

     Alternate
	    Partition name of alternate partition to be used  if  the  state  of
	    this partition is "DRAIN" or "INACTIVE."

     CpuBind
	    If	a  job	step  request  does not specify an option to control how
	    tasks are bound to allocated CPUs  (by  using  --cpu-bind)	and  all
	    nodes  allocated  to the job do not have the same CpuBind option for
	    the node, then the partition's CpuBind option will control how tasks
	    are bound to allocated resources.  The TaskPluginParam will be  used
	    as	a last resort, with the default being no binding. Supported val-
	    ues for CpuBind are none, socket, ldom (NUMA), core and thread.

     Default
	    If this keyword is set, jobs submitted without a partition	specifi-
	    cation  will  utilize this partition.  Possible values are "YES" and
	    "NO".  The default value is "NO".

     DefaultTime
	    Run time limit used for jobs that don't specify a value. If not set,
	    the default will be set to an applicable time limit,  which  may  be
	    from  the  partition (MaxTime) or from a QOS or association (MaxWall
	    or GrpWall).  Regardless, MaxTime will still be enforced.  Format is
	    the same as for MaxTime.

     DefCpuPerGPU
	    Default count of CPUs allocated per allocated  GPU.  This  value  is
	    used   only   if   the   job   didn't  specify  --cpus-per-task  and
	    --cpus-per-gpu.

     DefMemPerCPU
	    Default real memory size available per allocated CPU  in  mebibytes.
	    Used  to  avoid over-subscribing memory and causing paging.  DefMem-
	    PerCPU would generally be used if individual  processors  are  allo-
	    cated  to  jobs  (SelectType=select/cons_tres).   If  not  set,  the
	    DefMemPerCPU value for the entire cluster will be  used.   Also  see
	    DefMemPerGPU, DefMemPerNode and MaxMemPerCPU.  DefMemPerCPU, DefMem-
	    PerGPU and DefMemPerNode are mutually exclusive.

     DefMemPerGPU
	    Default  real  memory size available per allocated GPU in mebibytes.
	    Please note a best effort attempt is made to predict which	GPUs  on
	    the  system  will be used, but this could change between job submis-
	    sion and start time, causing MaxMemPerNode to potentially  not  work
	    as	expected for heterogeneous jobs.  Also see DefMemPerCPU, DefMem-
	    PerNode and MaxMemPerCPU.  DefMemPerCPU,  DefMemPerGPU  and  DefMem-
	    PerNode are mutually exclusive.

     DefMemPerNode
	    Default  real memory size available per allocated node in mebibytes.
	    Used to avoid over-subscribing memory and causing  paging.	 DefMem-
	    PerNode would generally be used if whole nodes are allocated to jobs
	    (SelectType=select/linear)	and resources are over-subscribed (Over-
	    Subscribe=yes or OverSubscribe=force).  If not set, the  DefMemPerN-
	    ode  value for the entire cluster will be used.  Also see DefMemPer-
	    CPU, DefMemPerGPU and MaxMemPerCPU.  DefMemPerCPU, DefMemPerGPU  and
	    DefMemPerNode are mutually exclusive.

     DenyAccounts
	    Comma-separated  list  of accounts which may not execute jobs in the
	    partition.	By default, no accounts are denied access. This list  is
	    hierarchical, meaning subaccounts are included automatically.  NOTE:
	    If	AllowAccounts  is  used  then DenyAccounts will not be enforced.
	    Also refer to AllowAccounts.

     DenyQos
	    Comma-separated list of Qos which may not execute jobs in the parti-
	    tion.  By default, no QOS are denied access  NOTE:	If  AllowQos  is
	    used then DenyQos will not be enforced.  Also refer AllowQos.

     DisableRootJobs
	    If	set  to  "YES" then user root will be prevented from running any
	    jobs on this partition.  The default value will be the value of Dis-
	    ableRootJobs set outside of  a  partition  specification  (which  is
	    "NO", allowing user root to execute jobs).

     Exclusive
	    Controls  partition-level  exclusivity  together with OverSubscribe.
	    Specify one of "NO", "NODE",  "USER",  or  "TOPO".	 NODE  allocates
	    whole nodes and implies OverSubscribe=NO.  USER allows only one user
	    to	have  jobs  on	a  node at a time (similar to --exclusive=user).
	    TOPO allows only one job per topology segment (similar  to	--exclu-
	    sive=topo)	and implies OverSubscribe=NO.  For node-exclusive parti-
	    tions, jobs receive all CPUs  and  generic	resources  on  allocated
	    nodes,  but  only as much memory as requested; use --mem=0 at submit
	    time to request all memory on the  node  (notably  when  using  gang
	    scheduling	and  suspended	jobs still occupy memory).  If unset, no
	    partition-level exclusivity is added beyond OverSubscribe.

	    This replaces the deprecated options OverSubscribe=EXCLUSIVE, Exclu-
	    siveUser,  and  ExclusiveTopo.   ExclusiveUser=YES	and   Exclusive-
	    Topo=YES are mutually exclusive.  If both deprecated options are set
	    for the same partition, ExclusiveUser will be ignored.

     GraceTime
	    Specifies,	in units of seconds, the preemption grace time to be ex-
	    tended to a job which has been selected for preemption.  This  para-
	    meter  only  takes	effect when PreemptType=partition_prio.  The de-
	    fault value is zero, no preemption grace time  is  allowed	on  this
	    partition.	 Once  a  job  has been selected for preemption, its end
	    time is set to the current time plus GraceTime. The job's tasks  are
	    immediately sent SIGCONT and SIGTERM signals in order to provide no-
	    tification	of  its  imminent  termination.  This is followed by the
	    SIGCONT, SIGTERM and SIGKILL signal sequence upon reaching	its  new
	    end  time.	This second set of signals is sent to both the tasks and
	    the containing batch script, if applicable.   See  also  the  global
	    KillWait configuration parameter.
	    NOTE:  This  parameter  does  not apply to PreemptMode=SUSPEND.  For
	    setting the preemption grace time  when  using  PreemptMode=SUSPEND,
	    see PreemptParameters=suspend_grace_time.

     Hidden
	    Specifies if the partition and its jobs are to be hidden by default.
	    Hidden  partitions will by default not be reported by the Slurm APIs
	    or commands.  Possible values are "YES" and "NO".  The default value
	    is "NO".  Note that partitions that a user lacks access to by virtue
	    of the AllowGroups parameter will also be hidden by default.

     LLN    Schedule resources to jobs on the least loaded nodes (based upon the
	    number of idle CPUs). This is generally only recommended for an  en-
	    vironment  with serial jobs as idle resources will tend to be highly
	    fragmented, resulting in parallel jobs being distributed across many
	    nodes.  Note that node Weight takes precedence over  how  many  idle
	    resources  are on each node.  Also see the SelectTypeParameters con-
	    figuration parameter CR_LLN to use the least loaded nodes  in  every
	    partition.

     MaxCPUsPerNode
	    Maximum  number  of CPUs on any node available to all jobs from this
	    partition.	This can be especially useful to schedule GPUs. For  ex-
	    ample a node can be associated with two Slurm partitions (e.g. "cpu"
	    and  "gpu") and the partition/queue "cpu" could be limited to only a
	    subset of the node's CPUs, ensuring that one or more CPUs  would  be
	    available  to  jobs in the "gpu" partition/queue.  Also see MaxCPUs-
	    PerSocket.

     MaxCPUsPerSocket
	    Maximum number of CPUs on any node available on the  all  jobs  from
	    this  partition.  This  can  be  especially useful to schedule GPUs.
	    Also see MaxCPUsPerNode.

     MaxMemPerCPU
	    Maximum real memory size available per allocated CPU  in  mebibytes.
	    Used  to  avoid over-subscribing memory and causing paging.  MaxMem-
	    PerCPU would generally be used if individual  processors  are  allo-
	    cated  to  jobs  (SelectType=select/cons_tres).   If  not  set,  the
	    MaxMemPerCPU value for the entire cluster will be  used.   Also  see
	    DefMemPerCPU  and MaxMemPerNode.  MaxMemPerCPU and MaxMemPerNode are
	    mutually exclusive.

     MaxMemPerNode
	    Maximum real memory size available per allocated node in a job allo-
	    cation in mebibytes. Used to avoid over-subscribing memory and caus-
	    ing paging.  MaxMemPerNode would generally be used	if  whole  nodes
	    are  allocated  to jobs (SelectType=select/linear) and resources are
	    over-subscribed (OverSubscribe=yes or OverSubscribe=force).  If  not
	    set,  the  MaxMemPerNode  value for the entire cluster will be used.
	    Also see DefMemPerNode and MaxMemPerCPU.  MaxMemPerCPU  and  MaxMem-
	    PerNode are mutually exclusive.

     MaxNodes
	    Maximum  count  of	nodes  which may be allocated to any single job.
	    The default value is "UNLIMITED", which is represented internally as
	    -1.

     MaxTime
	    Maximum run time limit for jobs.  Format  is  minutes,  minutes:sec-
	    onds,    hours:minutes:seconds,    days-hours,   days-hours:minutes,
	    days-hours:minutes:seconds or "UNLIMITED".	Time resolution  is  one
	    minute and second values are rounded up to the next minute.  The job
	    TimeLimit  may  be	updated  by  root, SlurmUser or an Operator to a
	    value higher than the configured MaxTime after job submission.

     MinNodes
	    Minimum count of nodes which may be allocated  to  any  single  job.
	    The default value is 0.

     Nodes  Comma-separated  list of nodes or nodesets which are associated with
	    this partition.  Node names may be specified using	the  node  range
	    expression	syntax	described  above.  A  blank  list of nodes (i.e.
	    Nodes="") can be used if one wants a partition to exist, but have no
	    resources (possibly on a temporary basis).	 A  value  of  "ALL"  is
	    mapped to all nodes configured in the cluster.

     OverSubscribe
	    Controls  the  ability of the partition to execute more than one job
	    at a time on each resource (node, socket or core depending upon  the
	    value  of  SelectTypeParameters).	If resources are to be over-sub-
	    scribed, avoiding memory over-subscription is very	important.   Se-
	    lectTypeParameters should be configured to treat memory as a consum-
	    able  resource  and  the --mem option should be used for job alloca-
	    tions.  Sharing of resources is typically  useful  only  when  using
	    gang  scheduling  (PreemptMode=suspend,gang).   Possible  values for
	    OverSubscribe are "FORCE", "YES", and  "NO".   Whole-node  exclusive
	    partitions	can be configured with Exclusive=node (see above).  Note
	    that a value of "YES" or "FORCE" can negatively  impact  performance
	    for  systems with many thousands of running jobs.  The default value
	    is "NO".  For more information see the following web pages:
	    https://slurm.schedmd.com/cons_tres.html
	    https://slurm.schedmd.com/cons_tres_share.html
	    https://slurm.schedmd.com/gang_scheduling.html
	    https://slurm.schedmd.com/preempt.html

	    FORCE	Makes all  resources  (except  GRES)  in  the  partition
			available  for	oversubscription  without  any means for
			users to disable it.  May be followed with a  colon  and
			maximum  number  of  jobs in running or suspended state.
			For example  OverSubscribe=FORCE:4  enables  each  node,
			socket or core to oversubscribe each resource four ways.
			Recommended  only  for	systems  using	PreemptMode=sus-
			pend,gang.

			NOTE: OverSubscribe=FORCE:1 is a special  case	that  is
			not  exactly  equivalent  to  OverSubscribe=NO. OverSub-
			scribe=FORCE:1 disables the regular oversubscription  of
			resources  in the same partition but it will still allow
			oversubscription due to  preemption  or  on  overlapping
			partitions  with the same PriorityTier. Setting OverSub-
			scribe=NO will prevent oversubscription  from  happening
			in all cases.

			NOTE: If using PreemptType=preempt/qos you can specify a
			value  for  FORCE  that  is greater than 1. For example,
			OverSubscribe=FORCE:2 will permit two jobs per	resource
			normally, but a third job can be started only if done so
			through preemption based upon QOS.

			NOTE:  If OverSubscribe is configured to FORCE or YES in
			your slurm.conf and the system is not configured to  use
			preemption  (PreemptMode=OFF) accounting can easily grow
			to values greater than the actual utilization. It may be
			common on such systems to  get	error  messages  in  the
			slurmdbd  log stating: "We have more allocated time than
			is possible."

	    YES 	Makes all  resources  (except  GRES)  in  the  partition
			available  for	sharing  upon  request	by the job.  Re-
			sources will only be over-subscribed when explicitly re-
			quested by the user using the  "--oversubscribe"  option
			on  job  submission.   May  be followed with a colon and
			maximum number of jobs in running  or  suspended  state.
			For  example  "OverSubscribe=YES:4"  enables  each node,
			socket or core to execute up to four jobs at once.  Rec-
			ommended only for systems running with	gang  scheduling
			(PreemptMode=suspend,gang).

	    NO		Selected resources are allocated to a single job. No re-
			source will be allocated to more than one job.

			NOTE:  Even  if  you are using PreemptMode=suspend,gang,
			setting OverSubscribe=NO will disable preemption on that
			partition. Use OverSubscribe=FORCE:1 if you want to dis-
			able normal oversubscription but still allow  suspension
			due to preemption.

     OverTimeLimit
	    Number  of	minutes  by which a job can exceed its time limit before
	    being canceled.  Normally a job's time limit is treated  as  a  hard
	    limit  and the job will be killed upon reaching that limit.  Config-
	    uring OverTimeLimit will  result  in  the  job's  time  limit  being
	    treated  like  a  soft limit.  Adding the OverTimeLimit value to the
	    soft time limit provides a hard time limit, at which point	the  job
	    is	canceled.   This is particularly useful for backfill scheduling,
	    which bases upon each job's soft time limit.  If not set, the  Over-
	    TimeLimit value for the entire cluster will be used.  May not exceed
	    65533 minutes.  A value of "UNLIMITED" is also supported.

     PartitionName
	    Name  by which the partition may be referenced (e.g. "Interactive").
	    This name can be specified by users when submitting  jobs.	 If  the
	    PartitionName  is  "DEFAULT",  the values specified with that record
	    will apply to subsequent partition specifications unless  explicitly
	    set to other values in that partition record or replaced with a dif-
	    ferent set of default values.  Each line where PartitionName is "DE-
	    FAULT" will replace or add to previous default values and not reini-
	    tialize the default values.

     PowerDownOnIdle
	    If	set to "YES" and power saving is enabled for the partition, then
	    nodes allocated from this partition will be requested to power  down
	    after  being allocated at least one job.  These nodes will not power
	    down until they transition from COMPLETING to IDLE.  If set to  "NO"
	    then power saving will operate as configured for the partition.  The
	    default	       value	       is	    "NO".	     See
	    <https://slurm.schedmd.com/power_save.html> 		     and
	    <https://slurm.schedmd.com/elastic_computing.html> for more details.

	    NOTE: The following will cause a transition from COMPLETING to IDLE:
	    Completing all running jobs without additional jobs being allocated.
	    Exclusive=USER  and  after	all running jobs complete but before an-
	    other user's job is allocated.
	    Exclusive=NODE and after the running job completes	but  before  an-
	    other job is allocated.

	    NOTE:  Nodes  are still subject to powering down when being IDLE for
	    SuspendTime when PowerDownOnIdle is set to NO.</p>

	    Also see SuspendTime.

     PreemptMode
	    Mechanism used to preempt jobs running in this partition  when  Pre-
	    emptType=preempt/partition_prio  is configured.  This partition-spe-
	    cific PreemptMode configuration parameter will  override  the  clus-
	    ter-wide  PreemptMode  for jobs in this partition.	It can be set to
	    OFF to prevent jobs in this partition  from  being	preempted.   See
	    also PriorityTier and the above description of the cluster-wide Pre-
	    emptMode parameter for further details.
	    See <https://slurm.schedmd.com/preempt.html> for more details.

	    NOTE: For performance reasons, the backfill scheduler reserves whole
	    nodes  for	jobs, not partial nodes. If during backfill scheduling a
	    job preempts one or more other jobs, the whole nodes for those  pre-
	    empted  jobs are reserved for the preemptor job, even if the preemp-
	    tor job requested fewer resources than that.  These  reserved  nodes
	    aren't  available  to other jobs during that backfill cycle, even if
	    the other jobs could fit on the nodes. Therefore, jobs  may  preempt
	    more  resources  during  a	single	backfill iteration than they re-
	    quested.
	    NOTE: For heterogeneous job to be considered for preemption all com-
	    ponents must be eligible for preemption. When a heterogeneous job is
	    to be preempted the first identified component of the job  with  the
	    highest  order PreemptMode (SUSPEND (highest), REQUEUE, CANCEL (low-
	    est)) will be used to set the PreemptMode for  all	components.  The
	    GraceTime  and user warning signal for each component of the hetero-
	    geneous job remain unique.	Heterogeneous  jobs  are  excluded  from
	    GANG scheduling operations.

	    OFF 	Disables job preemption.

	    CANCEL	The preempted job will be cancelled.

	    REQUEUE	Preempts jobs by requeuing them (if possible) or cancel-
			ing  them.   For  jobs to be requeued they must have the
			--requeue sbatch option set or the cluster  wide  JobRe-
			queue parameter in slurm.conf must be set to 1.

	    SUSPEND	The preempted jobs will be suspended, and later the Gang
			scheduler  will  resume them. Therefore the SUSPEND pre-
			emption mode always needs the GANG option to  be  speci-
			fied  at  the cluster level. Also, because the suspended
			jobs will still use memory on the allocated nodes, Slurm
			needs to be able to track memory resources to be able to
			suspend jobs.

			If the preemptees and preemptor are on different  parti-
			tions  then the preempted jobs will remain suspended un-
			til the preemptor ends.
			NOTE: Because gang scheduling is performed independently
			for each partition, if using  PreemptType=preempt/parti-
			tion_prio  then  jobs  in higher PriorityTier partitions
			will suspend jobs in lower  PriorityTier  partitions  to
			run  on  the released resources. Only when the preemptor
			job ends will the suspended jobs will be resumed by  the
			Gang scheduler.
			NOTE:  Suspended jobs will not release GRES. Higher pri-
			ority jobs will not be able to preempt to gain access to
			GRES.

	    PRIORITY	Allow preemption only if the preemptor's job priority is
			higher than the preemptee's job priority.

     PriorityJobFactor
	    Partition factor used by priority/multifactor plugin in  calculating
	    job  priority.   Defaults to 1. A value of 0 prevents this partition
	    from adding to the job's priority. The value may not  exceed  65533.
	    Also see PriorityTier.

     PriorityTier
	    Jobs  submitted to a partition with a higher PriorityTier value will
	    be evaluated by the scheduler before pending  jobs	in  a  partition
	    with  a  lower  PriorityTier value. They will also be considered for
	    preemption of running jobs in partition(s) with  lower  PriorityTier
	    values if PreemptType=preempt/partition_prio.  The value may not ex-
	    ceed 65533.  Also see PriorityJobFactor.

     QOS    Used  to  extend  the limits available to a QOS on a partition. Jobs
	    will not be associated to this QOS outside of  being  associated  to
	    the partition. They will still be associated to their requested QOS.
	    By default, no QOS is used.  Additional details are in the QOS docu-
	    mentation at <https://slurm.schedmd.com/qos.html>, including special
	    conditions when a relative QOS is used for this parameter.	NOTE: If
	    a  limit  is  set in both the Partition's QOS and the Job's QOS, the
	    Partition QOS limit will be honored unless the  Job's  QOS	has  the
	    OverPartQOS  flag  set,  in which case the Job's QOS limit will take
	    precedence.

     ReqResv
	    Specifies users of this partition are required to designate a reser-
	    vation when submitting a job. This option can be useful in restrict-
	    ing usage of a partition that may have higher priority or additional
	    resources to be allowed only within a reservation.	Possible  values
	    are "YES" and "NO".  The default value is "NO".

     ResumeTimeout
	    Maximum  time  permitted (in seconds) between when a node resume re-
	    quest is issued and when the node is  actually  available  for  use.
	    Nodes  which  fail to respond in this time frame will be marked DOWN
	    and the jobs scheduled on the  node  requeued  if  possible.   Nodes
	    which reboot after this time frame will be marked DOWN with a reason
	    of "Node unexpectedly rebooted." For nodes that are in multiple par-
	    titions  with this option set, the highest time will take effect. If
	    not set on any partition, the node will use the ResumeTimeout  value
	    set for the entire cluster. The maximum value is either 65533 or IN-
	    FINITE.

     RootOnly
	    Specifies if only user ID zero (i.e. user root) or SlurmUser may al-
	    locate  resources  in this partition.  Possible values are "YES" and
	    "NO".  The default value is "NO".

     SelectTypeParameters
	    Partition-specific resource allocation type.  This	option	replaces
	    the   global   SelectTypeParameters  value.   Supported  values  are
	    CR_Core, CR_Core_Memory, CR_Socket and  CR_Socket_Memory.	Use  re-
	    quires  the  system-wide SelectTypeParameters value be set to any of
	    the four supported values previously listed; otherwise,  the  parti-
	    tion-specific value will be ignored.

     State  State  of  partition  or  availability  for use. Possible values are
	    "UP", "DOWN", "DRAIN" and "INACTIVE". The  default	value  is  "UP".
	    See also the related "Alternate" keyword.

	    UP	      Designates  that	new jobs may be queued on the partition,
		      and that jobs may be allocated nodes and run from the par-
		      tition.

	    DOWN      Designates that new jobs may be queued on  the  partition,
		      but  queued  jobs  may not be allocated nodes and run from
		      the partition. Jobs already running on the partition  con-
		      tinue  to  run.  The  jobs  must be explicitly canceled to
		      force their termination.

	    DRAIN     Designates that no new jobs may be queued on the partition
		      (job submission requests will be denied with an error mes-
		      sage), but jobs already queued on the partition may be al-
		      located nodes and run.  See also the "Alternate" partition
		      specification.

	    INACTIVE  Designates that no new jobs may be queued  on  the  parti-
		      tion,  and  jobs already queued may not be allocated nodes
		      and run.	See also the  "Alternate"  partition  specifica-
		      tion.

     SuspendTime
	    Nodes  which  remain idle or down for this number of seconds will be
	    placed into power save mode by SuspendProgram.  For nodes  that  are
	    in	multiple  partitions with this option set, the highest time will
	    take effect. If not set on any partition, the node will use the Sus-
	    pendTime value set for the entire cluster.	A SuspendTime value  set
	    on a NodeName line takes precedence over this partition-level value.
	    Setting  SuspendTime to INFINITE will disable suspending of nodes in
	    this partition.  Setting SuspendTime to anything  but  INFINITE  (or
	    -1) will enable power save mode.

     SuspendTimeout
	    Maximum  time permitted (in seconds) between when a node suspend re-
	    quest is issued and when the node is shutdown.   At  that  time  the
	    node  must	be ready for a resume request to be issued as needed for
	    new work.  For nodes that are in multiple partitions with  this  op-
	    tion  set, the highest time will take effect. If not set on any par-
	    tition, the node will use the SuspendTimeout value set for	the  en-
	    tire cluster.

     Topology
	    Name of the topology, defined in topology.yaml, used by jobs in this
	    partition.

     TRESBillingWeights
	    Comma-separated  list of <TRES Type>=<Numeric Weight> pairs defining
	    the billing weights of one or more tracked TRES types (see	Account-
	    ingStorageTRES)  that will be used in calculating the usage of a job
	    in this partition. The resulting usage amount is used when calculat-
	    ing fairshare and when enforcing the TRES billing limit on jobs. See
	    also PriorityWeightTRES to adjust job  priority  directly  based  on
	    TRES usage.

	    By	default,  jobs	are billed against the total number of allocated
	    CPUs (TRESBillingWeights="CPU=1").

	    Refer     to     the     TRES     page     for     more	details:
	    <https://slurm.schedmd.com/tres.html>

POWERACTION CONFIGURATION
     The PowerAction configuration creates a named program to execute a node re-
     boot, power up (Resume), or power down (Suspend). A PowerAction name may be
     used  in place of a program path for ResumeProgram, ResumeFailProgram, Sus-
     pendProgram, or RebootProgram, and can be selected for individual	requests
     with the "action" option to "scontrol power" and "scontrol reboot".

     PowerAction=<name> Location=<slurmctld|slurmd> Program="<path> [arguments...]"

     It includes the following parameters:

     PowerAction
	    Unique  name  for the action. This is the name referenced by Resume-
	    Program, ResumeFailProgram, SuspendProgram,  RebootProgram,  or  the
	    "action" option to scontrol.

     Location
	    Specifies  where  to run the program, supporting values "slurmd" and
	    "slurmctld". A value of "slurmctld" runs the  program  on  the  con-
	    troller  as  SlurmUser. A value of "slurmd" runs the program on each
	    affected compute node as SlurmdUser.

	    NOTE: Power up actions must  use  "slurmctld",  since  powered  down
	    nodes cannot run a "slurmd" action.

     Program
	    Program to perform the task of power up, power down, or reboot.  Ar-
	    guments  to  be passed to the program can be included in this field.
	    Slurm passes the affected node name(s)  as	an  argument  after  any
	    user-specified  arguments.	With Location=slurmd, SLURM_NODE_NAME is
	    also set in the environment.

PROLOG AND EPILOG SCRIPTS
     There are a variety of prolog and epilog program options that execute  with
     various  permissions and at various times.  The four options most likely to
     be used are: Prolog and Epilog (executed once on each compute node for each
     job) plus PrologSlurmctld and EpilogSlurmctld (executed once on the  Slurm-
     ctldHost for each job).

     NOTE:  Standard  output and error messages are normally not preserved.  Ex-
     plicitly write output and error messages to an appropriate location if  you
     wish to preserve that information.

     NOTE:  By default the Prolog script is ONLY run on any individual node when
     it first sees a job step from a new allocation. It does not run the  Prolog
     immediately  when an allocation is granted. If no job steps from an alloca-
     tion are run on a node, it will never run the Prolog for  that  allocation.
     This  Prolog behavior can be changed by the PrologFlags parameter. The Epi-
     log, on the other hand, always runs on every node of an allocation when the
     allocation is released.

     If the Epilog fails (returns a non-zero exit code), this will result in the
     node being set to a DRAIN state.  If the EpilogSlurmctld fails  (returns  a
     non-zero  exit  code),  this will only be logged.	If the Prolog fails (re-
     turns a non-zero exit code), this will result in the node being  set  to  a
     DRAIN  state  and	the job being requeued. The job will be placed in a held
     state unless nohold_on_prolog_fail is  configured	in  SchedulerParameters.
     If  the PrologSlurmctld fails (returns a non-zero exit code), this will re-
     sult in the job being requeued to be executed on another node if  possible.
     Only  batch  jobs can be requeued.  Interactive jobs (salloc and srun) will
     be cancelled if the PrologSlurmctld fails.  If slurmctld is  stopped  while
     either  PrologSlurmctld  or  EpilogSlurmctld is running, the script will be
     killed with SIGKILL. The script will restart when slurmctld restarts.

     Information about the job is passed to the script using  environment  vari-
     ables.  For  a full list of environment variables please see the Prolog and
     Epilog Guide <https://slurm.schedmd.com/prolog_epilog.html>.

UNKILLABLE STEP PROGRAM SCRIPT
     This program can be used to take special actions to clean up the unkillable
     processes and/or notify system administrators.  The program will be run  as
     SlurmdUser (usually "root") on the compute node where UnkillableStepTimeout
     was triggered.

     Information about the unkillable job step is passed to the script using en-
     vironment variables.

     SLURM_JOB_ID
	    Job ID.

     SLURM_STEP_ID
	    Job Step ID. Note that the special steps "batch", "interactive", and
	    "extern"  are  reported  not  by  name  but  with  integer	Step IDs
	    4294967291, 4294967290, and 4294967292 respectively.

NETWORK TOPOLOGY
     Slurm is able to optimize job allocations to minimize  network  contention.
     Special  Slurm  logic  is	used  to  optimize allocations on systems with a
     three-dimensional interconnect.  and information  about  configuring  those
     systems	 are	 available     on     web    pages    available    here:
     <https://slurm.schedmd.com/>.  For a hierarchical network, Slurm  needs  to
     have  detailed  information  about  how nodes are configured on the network
     switches.

     The TopologyPlugin parameter controls which plugin is used to collect  net-
     work topology information.  The only values presently supported are "topol-
     ogy/flat"	(best-fit logic over one-dimensional topology), "topology/tree",
     and "topology/block" (both determine the network topology based upon infor-
     mation contained in a topology.conf or topology.yaml file, see "man  topol-
     ogy.conf"	and  "man  topology.yaml" for more information).  Future plugins
     may gather topology information directly from the	network.   The	topology
     information  is  optional.   If not provided, Slurm will perform a best-fit
     algorithm assuming the nodes are in a one-dimensional array  as  configured
     and the communications cost is related to the node distance in this array.

RELOCATING CONTROLLERS
     If  the  cluster's computers used for the primary or backup controller will
     be out of service for an extended period of time, it may  be  desirable  to
     relocate them.  In order to do so, follow this procedure:

     1. Stop the Slurm daemons on the old controller and nodes.
     2. Modify the slurm.conf file appropriately.
     3.  Copy  the files from the StateSaveLocation to the new controller or en-
     sure that they are accessible to the new controller via a shared drive.
     4. Distribute the updated slurm.conf file to all nodes.
     5. Restart the Slurm daemons on the new controller and nodes.

     There should be no loss of any pending jobs. Any running jobs will get  the
     updated  host info and finish normally.  Ensure that any nodes added to the
     cluster have the current slurm.conf file installed.

     CAUTION: If two nodes are simultaneously configured  as  the  primary  con-
     troller  (two  nodes  on which SlurmctldHost specify the local host and the
     slurmctld daemon is executing on each), system behavior  will  be	destruc-
     tive.   If  a  compute  node has an incorrect SlurmctldHost parameter, that
     node may be rendered unusable, but no other harm will result.

EXAMPLE
     #
     # Sample /etc/slurm.conf for dev[0-25].llnl.gov
     # Author: John Doe
     # Date: 11/06/2001
     #
     SlurmctldHost=dev0(12.34.56.78)  # Primary server
     SlurmctldHost=dev1(12.34.56.79)  # Backup server
     #
     AuthType=auth/munge
     Epilog=/usr/local/slurm/epilog
     Prolog=/usr/local/slurm/prolog
     FirstJobId=65536
     InactiveLimit=120
     JobCompType=jobcomp/filetxt
     JobCompLoc=/var/log/slurm/jobcomp
     KillWait=30
     MaxJobCount=10000
     MinJobAge=300
     PluginDir=/usr/local/lib:/usr/local/slurm/lib
     ReturnToService=0
     SchedulerType=sched/backfill
     SlurmctldLogFile=/var/log/slurm/slurmctld.log
     SlurmdLogFile=/var/log/slurm/slurmd.log
     SlurmctldPort=7002
     SlurmdPort=7003
     SlurmdSpoolDir=/var/spool/slurmd.spool
     StateSaveLocation=/var/spool/slurm.state
     TmpFS=/tmp
     WaitTime=30
     #
     # Node Configurations
     #
     NodeName=DEFAULT CPUs=2 RealMemory=2000 TmpDisk=64000
     NodeName=DEFAULT State=UNKNOWN
     NodeName=dev[0-25] NodeAddr=edev[0-25] Weight=16
     # Update records for specific DOWN nodes
     DownNodes=dev20 State=DOWN Reason="power,ETA=Dec25"
     #
     # Partition Configurations
     #
     PartitionName=DEFAULT MaxTime=30 MaxNodes=10 State=UP
     PartitionName=debug Nodes=dev[0-8,18-25] Default=YES
     PartitionName=batch Nodes=dev[9-17]  MinNodes=4
     PartitionName=long Nodes=dev[9-17] MaxTime=120 AllowGroups=admin

INCLUDE MODIFIERS
     The "include" key word can be used  with  modifiers  within  the  specified
     pathname.	These modifiers would be replaced with cluster name or other in-
     formation depending on which modifier is specified. If the included file is
     not an absolute pathname (i.e. it does not start with a slash), it must  be
     relative to the directory containing the slurm.conf file.

     %c     Cluster name specified in the slurm.conf will be used.

     EXAMPLE
     ClusterName=linux
     include /home/slurm/etc/%c_config
     # Above line interpreted as
     # "include /home/slurm/etc/linux_config"

FILE AND DIRECTORY PERMISSIONS
     There  are three classes of files: Files used by slurmctld must be accessi-
     ble by user SlurmUser and accessible by the primary and backup control  ma-
     chines.   Files used by slurmd must be accessible by user root and accessi-
     ble from every compute node.  A few files need to be accessible  by  normal
     users on all login and compute nodes.  While many files and directories are
     listed below, most of them will not be used with most configurations.

     Epilog
	    Must be executable by user root.  It is recommended that the file be
	    readable by all users.  The file must exist on every compute node.

     EpilogSlurmctld
	    Must  be  executable  by user SlurmUser.  It is recommended that the
	    file be readable by all users.  The file must be accessible  by  the
	    primary and backup control machines.

     HealthCheckProgram
	    Must be executable by user root.  It is recommended that the file be
	    readable by all users.  The file must exist on every compute node.

     JobCompLoc
	    If	this  specifies  a  file, it must be writable by user SlurmUser.
	    The file must be accessible by the primary and  backup  control  ma-
	    chines.

     MailProg
	    Must be executable by user SlurmUser.  Must not be writable by regu-
	    lar  users.   The  file must be accessible by the primary and backup
	    control machines.

     PowerAction
	    If Location=slurmd, then the Program  must	be  executable	by  user
	    SlurmdUser and be accessible on all compute nodes.

	    If	Location=slurmctld,  then the Program must be executable by user
	    SlurmUser and be accessible by the primary and  backup  control  ma-
	    chines.

     Prolog
	    Must be executable by user root.  It is recommended that the file be
	    readable by all users.  The file must exist on every compute node.

     PrologSlurmctld
	    Must  be  executable  by user SlurmUser.  It is recommended that the
	    file be readable by all users.  The file must be accessible  by  the
	    primary and backup control machines.

     ResumeProgram
	    Must  be  executable by user SlurmUser.  The file must be accessible
	    by the primary and backup control machines.

     slurm.conf
	    Readable to all users on all nodes.  Must not be writable by regular
	    users.

     SlurmctldLogFile
	    Must be writable by user SlurmUser.  The file must be accessible  by
	    the primary and backup control machines.

     SlurmctldPidFile
	    Must be writable by user root.  Preferably writable and removable by
	    SlurmUser.	 The  file  must be accessible by the primary and backup
	    control machines.

     SlurmdLogFile
	    Must be writable by user root.  A distinct file must exist	on  each
	    compute node.

     SlurmdPidFile
	    Must  be  writable by user root.  A distinct file must exist on each
	    compute node.

     SlurmdSpoolDir
	    Must be writable by user root. Permissions must be	set  to  755  so
	    that  job  scripts	can be executed from this directory.  A distinct
	    file must exist on each compute node.

     SrunEpilog
	    Must be executable by all users.  The file must exist on every login
	    and compute node.

     SrunProlog
	    Must be executable by all users.  The file must exist on every login
	    and compute node.

     StateSaveLocation
	    Must be writable by user SlurmUser.  The file must be accessible  by
	    the primary and backup control machines.

     SuspendProgram
	    Must  be  executable by user SlurmUser.  The file must be accessible
	    by the primary and backup control machines.

     TaskEpilog
	    Must be executable by all users.  The file must exist on every  com-
	    pute node.

     TaskProlog
	    Must  be executable by all users.  The file must exist on every com-
	    pute node.

     UnkillableStepProgram
	    Must be executable by user SlurmdUser.  The file must be  accessible
	    by the primary and backup control machines.

LOGGING
     Note  that  while Slurm daemons create log files and other files as needed,
     it treats the lack of parent directories as a fatal error.   This	prevents
     the  daemons from running if critical file systems are not mounted and will
     minimize the risk of cold-starting (starting without preserving jobs).

     Log files and job accounting files may need  to  be  created/owned  by  the
     "SlurmUser"  uid  to  be successfully accessed. Use the "chown" and "chmod"
     commands to set the ownership and permissions appropriately.  See the  sec-
     tion FILE AND DIRECTORY PERMISSIONS for information about the various files
     and directories used by Slurm.

     It is recommended that the logrotate utility be used to ensure that various
     log  files  do  not become too large.  This also applies to text files used
     for accounting, process tracking, and the slurmdbd log if they are used.

     Here is a sample logrotate configuration. Make appropriate  site  modifica-
     tions  and  save as /etc/logrotate.d/slurm on all nodes.  See the logrotate
     man page for more details.

     ##
     # Slurm Logrotate Configuration
     ##
     /var/log/slurm/*.log {
	  compress
	  missingok
	  nocopytruncate
	  nodelaycompress
	  nomail
	  notifempty
	  noolddir
	  rotate 5
	  sharedscripts
	  size=5M
	  create 640 slurm root
	  postrotate
	       pkill -x --signal SIGUSR2 slurmctld
	       pkill -x --signal SIGUSR2 slurmd
	       pkill -x --signal SIGUSR2 slurmdbd
	       exit 0
	  endscript
     }

COPYING
     Copyright (C) 2002-2007 The Regents of the University of California.   Pro-
     duced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
     Copyright (C) 2008-2010 Lawrence Livermore National Security.
     Copyright (C) 2010-2022 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.

FILES
     /etc/slurm.conf

SEE ALSO
     cgroup.conf(5), getaddrinfo(3), getrlimit(2), gres.conf(5), group(5), host-
     name(1),	scontrol(1),   slurmctld(8),   slurmd(8),   slurmdbd(8),   slur-
     mdbd.conf(5), srun(1), spank(8), syslog(3), topology.conf(5)

Slurm 26.05		    Slurm Configuration File		   slurm.conf(5)

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

home | help