Provided by: slurm-client_24.11.3-2_amd64 

NAME
scontrol - view or modify Slurm configuration and state.
SYNOPSIS
scontrol [OPTIONS...] [COMMAND...]
DESCRIPTION
scontrol is used to view or modify Slurm configuration including: job, job step, node, partition,
reservation, and overall system configuration. Most of the commands can only be executed by user root or
an Administrator. If an attempt to view or modify configuration information is made by an unauthorized
user, an error message will be printed and the requested action will not occur. If no command is entered
on the execute line, scontrol will operate in an interactive mode and prompt for input. It will continue
prompting for input and executing commands until explicitly terminated. If a command is entered on the
execute line, scontrol will execute that command and terminate. All commands and options are
case-insensitive, although node names, partition names, and reservation names are case-sensitive (node
names "LX" and "lx" are distinct). All commands and options can be abbreviated to the extent that the
specification is unique. A modified Slurm configuration can be written to a file using the scontrol write
config command. The resulting file will be named using the convention "slurm.conf.<datetime>" and located
in the same directory as the original "slurm.conf" file. The directory containing the original slurm.conf
must be writable for this to occur.
OPTIONS
-a, --all
When the show command is used, then display all partitions, their jobs and jobs steps. This causes
information to be displayed about partitions that are configured as hidden and partitions that are
unavailable to user's group.
-M, --clusters=<string>
The cluster to issue commands to. Only one cluster name may be specified. Note that the slurmdbd
must be up for this option to work properly, unless running in a federation with either
FederationParameters=fed_display configured or the --federation option set. This option
implicitly sets the --local option.
-d, --details
Causes the show command to provide additional details where available.
--federation
Report jobs from federation if a member of one.
-F, --future
Report nodes in FUTURE state.
-h, --help
Print a help message describing the usage of scontrol.
--hide Do not display information about hidden partitions, their jobs and job steps. By default, neither
partitions that are configured as hidden nor those partitions unavailable to user's group will be
displayed (i.e. this is the default behavior).
--json, --json=list, --json=<data_parser>
Dump information as JSON using the default data_parser plugin or explicit data_parser with
parameters. All information is dumped, even if it would normally not be. Sorting and formatting
arguments passed to other options are ignored; however, most filtering arguments are still used.
This option is not available for every command. This option implicitly sets the --details option.
--local
Show only information local to this cluster. Ignore other clusters in the federated if a member of
one. Overrides --federation.
-o, --oneliner
Print information one line per record.
-Q, --quiet
Print no warning or informational messages, only fatal error messages.
--sibling
Show all sibling jobs on a federated cluster. Implies --federation.
-u, --uid=<uid>
Attempt to update a job as user <uid> instead of the invoking user id.
-v, --verbose
Print detailed event logging. Multiple '-v's will further increase the verbosity of logging. By
default only errors will be displayed.
-V , --version
Print version information and exit.
--yaml, --yaml=list, --yaml=<data_parser>
Dump information as YAML using the default data_parser plugin or explicit data_parser with
parameters. All information is dumped, even if it would normally not be. Sorting and formatting
arguments passed to other options are ignored; however, most filtering arguments are still used.
This option is not available for every command. This option implicitly sets the --details option.
COMMANDS
cancel_reboot <NodeList>
Cancel pending reboots on nodes. The node will be undrain'ed and the reason cleared if the node
was drained by an ASAP reboot.
create <SPECIFICATION>
Create a new node, partition, or reservation. See the full list of parameters below.
completing
Display all jobs in a COMPLETING state along with associated nodes in either a COMPLETING or DOWN
state.
delete <SPECIFICATION>
Delete the entry with the specified SPECIFICATION. The three SPECIFICATION choices are
NodeName=<nodelist>, PartitionName=<name> and ReservationName=<name>. Only dynamic nodes that have
no running jobs and that are not part of a reservation can be deleted. Reservations and partitions
should have no associated jobs at the time of their deletion (modify the jobs first). If the
specified partition is in use, the request is denied.
errnumstr <ERRNO>
Given a Slurm error number, return a descriptive string.
fsdampeningfactor <FACTOR>
Set the FairShareDampeningFactor in slurmctld.
getaddrs <NODES>
Get IP addresses of <NODES> from slurmctld.
help Display a description of scontrol options and commands.
hold <job_list>
Prevent a pending job from being started (sets its priority to 0). Use the release command to
permit the job to be scheduled. The job_list argument is a comma separated list of job IDs OR
"jobname=" with the job's name, which will attempt to hold all jobs having that name. Note that
when a job is held by a system administrator using the hold command, only a system administrator
may release the job for execution (also see the uhold command). When the job is held by its owner,
it may also be released by the job's owner. Additionally, attempting to hold a running job will
have not suspend or cancel it. But, it will set the job priority to 0 and update the job reason
field, which would hold the job if it was requeued at a later time.
notify <job_id> <message>
Send a message to standard error of the salloc or srun command or batch job associated with the
specified job_id.
pidinfo <proc_id>
Print the Slurm job id and scheduled termination time corresponding to the supplied process id,
proc_id, on the current node. This will work only with processes on node on which scontrol is run,
and only for those processes spawned by Slurm and their descendants.
listjobs [<NodeName>]
Print jobs running on the host that runs this. This contacts any slurmstepd's running locally, and
does not contact slurmctld
Use <NodeName> if using --enable-multiple-slurmd.
listpids [<job_id>[.<step_id>]] [<NodeName>]
Print a listing of the process IDs in a job step (if JOBID.STEPID is provided), or all of the job
steps in a job (if job_id is provided), or all of the job steps in all of the jobs on the local
node (if job_id is not provided or job_id is "*"). This will work only with processes on the node
on which scontrol is run, and only for those processes spawned by Slurm and their descendants.
Note that some Slurm configurations (ProctrackType value of pgid) are unable to identify all
processes associated with a job or job step.
Note that the NodeName option is only really useful when you have multiple slurmd daemons running
on the same host machine. Multiple slurmd daemons on one host are, in general, only used by Slurm
developers.
liststeps [<NodeName>]
Print steps running on the host that runs this. This contacts any slurmstepd's running locally,
and does not contact slurmctld
Use <NodeName> if using --enable-multiple-slurmd.
ping Ping the primary and secondary slurmctld daemon and report if they are responding.
power {up|down} [asap|force] {ALL|<NodeList>|<NodeSet>}
Control power state of the provided node list/set. For 'power down', the optional ASAP/FORCE flag
will be added to the power down request, but will otherwise be rejected for power up requests. All
arguments will be processed insensitive of case except for the node list/set. This subcommand
obsoletes the prior usage of scontrol's update command:
scontrol update NodeName=<nodes>
State={POWER_UP|POWER_DOWN|POWER_DOWN_ASAP|POWER_DOWN_FORCE}
Commands:
down Will use the configured SuspendProgram program to explicitly place node(s) into power
saving mode. If a node is already in the process of being powered down, the command will
only change the state of the node but won't have any effect until the configured
SuspendTimeout is reached. Use of this command can be useful in situations where a
ResumeProgram, like capmc in Cray machines, is stalled and one wants to restore the node to
"IDLE" manually. In this case rebooting the node and setting the state to "power down" will
cancel the previous "power up" state and the node will become "IDLE".
down asap
Will drain the node(s) and mark them for power down. Currently running jobs will complete
first and no additional jobs will be allocated to the node(s).
down force
Will cancel all jobs on the node(s), power them down, and reset their state to "IDLE".
up Will use the configured ResumeProgram program to explicitly move node(s) out of power
saving mode. If a node is already in the process of being powered up, the command will only
change the state of the node but won't have any effect until the configured ResumeTimeout
is reached.
reboot [ASAP] [nextstate={RESUME|DOWN}] [reason=<reason>] {ALL|<NodeList>|<NodeSet>}
Reboot the nodes in the system when they become idle using the RebootProgram as configured in
Slurm's slurm.conf file. Each node will have the "REBOOT" flag added to its node state. After a
node reboots and the slurmd daemon starts up again, the HealthCheckProgram will run once. Then,
the slurmd daemon will register itself with the slurmctld daemon and the "REBOOT" flag will be
cleared. The "ASAP" option adds the "DRAIN" flag to each node's state, preventing additional jobs
from running on the node so it can be rebooted and returned to service "As Soon As Possible" (i.e.
ASAP). "ASAP" will also set the node reason to "Reboot ASAP" if the "reason" option isn't
specified and will set nextstate=UNDRAIN if nextstate isn't specified. If the "nextstate" option
is specified as "DOWN", then the node will remain in a down state after rebooting. If "nextstate"
is specified as "RESUME", then the nodes will resume as normal and the node's reason and "DRAIN"
state will be cleared. Resuming nodes will be considered as available in backfill future
scheduling and won't be replaced by idle nodes in a reservation. The "reason" option sets each
node's reason to a user-defined message. A default reason of "reboot requested" is set if no
other reason is set on the node. The reason will be appended with: "reboot issued" when the
reboot is issued; "reboot complete" when the node registers and has a "nextstate" of "DOWN"; or
"reboot timed out" when the node fails to register within ResumeTimeout. You must specify either
a list of nodes or that ALL nodes are to be rebooted.
NOTE: The reboot request will be ignored for hosts in the following states: FUTURE, POWER_DOWN,
POWERED_DOWN, POWERING_DOWN, REBOOT_ISSUED, REBOOT_REQUESTED
NOTE: By default, this command does not prevent additional jobs from being scheduled on any nodes
before reboot. To do this, you can either use the "ASAP" option or explicitly drain the nodes
beforehand. You can alternately create an advanced reservation to prevent additional jobs from
being initiated on nodes to be rebooted. Pending reboots can be cancelled by using "scontrol
cancel_reboot <node>" or setting the node state to "CANCEL_REBOOT". A node will be marked "DOWN"
if it doesn't reboot within ResumeTimeout.
reconfigure
Instruct all slurmctld and slurmd daemons to re-read the configuration file. This mechanism can
be used to modify configuration parameters set in slurm.conf(5) without interrupting running jobs.
Starting in 23.11, this command operates by creating new processes for the daemons, then passing
control to the new processes when or if they start up successfully. This allows it to gracefully
catch configuration problems and keep running with the previous configuration if there is a
problem. This will not be able to change the daemons' listening TCP port settings or
authentication mechanism.
release <job_list>
Release a previously held job to begin execution. The job_list argument is a comma separated list
of job IDs OR "jobname=" with the job's name, which will attempt to release all jobs having that
name. Also see hold.
requeue [<option>] <job_list>
Requeue a running, suspended or finished Slurm batch job into pending state. The job_list
argument is a comma separated list of job IDs. The command accepts the following option:
Incomplete
Operate only on jobs (or tasks of a job array) which have not completed. Specifically only
jobs in the following states will be requeued: CONFIGURING, RUNNING, STOPPED or SUSPENDED.
requeuehold [<option>] <job_list>
Requeue a running, suspended or finished Slurm batch job into pending state, moreover the job is
put in held state (priority zero). The job_list argument is a comma separated list of job IDs. A
held job can be released using scontrol to reset its priority (e.g. "scontrol release <job_id>").
The command accepts the following options:
Incomplete
Operate only on jobs (or tasks of a job array) which have not completed. Specifically only
jobs in the following states will be requeued: CONFIGURING, RUNNING, STOPPED or SUSPENDED.
State=SpecialExit
The "SpecialExit" keyword specifies that the job has to be put in a special state
JOB_SPECIAL_EXIT. The "scontrol show job" command will display the JobState as
SPECIAL_EXIT, while the "squeue" command as SE.
resume <job_list>
Resume a previously suspended job. The job_list argument is a comma separated list of job IDs.
Also see suspend.
NOTE: A suspended job releases its CPUs for allocation to other jobs. Resuming a previously
suspended job may result in multiple jobs being allocated the same CPUs, which could trigger gang
scheduling with some configurations or severe degradation in performance with other
configurations. Use of the scancel command to send SIGSTOP and SIGCONT signals would stop a job
without releasing its CPUs for allocation to other jobs and would be a preferable mechanism in
many cases. If performing system maintenance you may want to use suspend/resume in the following
way. Before suspending set all nodes to draining or set all partitions to down so that no new jobs
can be scheduled. Then suspend jobs. Once maintenance is done resume jobs then resume nodes and/or
set all partitions back to up. Use with caution. Only an account coordinator, operator,
administrator, SlurmUser, or root can resume jobs.
schedloglevel <LEVEL>
Enable or disable scheduler logging. LEVEL may be "0", "1", "disable" or "enable". "0" has the
same effect as "disable". "1" has the same effect as "enable". This value is temporary and will
be overwritten when the slurmctld daemon reads the slurm.conf configuration file (e.g. when the
daemon is restarted or scontrol reconfigure is executed) if the SlurmSchedLogLevel parameter is
present.
setdebug <LEVEL> [nodes=<NODES>]
Change the debug level of the slurmctld daemon for all active logging channels not originally
configured off (quiet). LEVEL may be an integer value between zero and nine (using the same
values as SlurmctldDebug in the slurm.conf file) or the name of the most detailed message type to
be printed: "quiet", "fatal", "error", "info", "verbose", "debug", "debug2", "debug3", "debug4",
or "debug5". This value is temporary, and will be overwritten whenever the daemon reads the
slurm.conf configuration file. (Such as when the daemon is restarted or scontrol reconfigure is
executed).
nodes=<NodeName>
If set, the request to change debug level is sent to the slurmd processes on the nodes
instead of to the slurmctld. A node range expression may be used for NodeName.
setdebugflags {+|-}<FLAG> [{+|-}<FLAG>] [nodes=<NODES>]
Add or remove DebugFlags of the slurmctld daemon. See "man slurm.conf" for a list of supported
DebugFlags.
NOTE: Changing the value of some DebugFlags will have no effect without restarting the slurmctld
daemon, which would set DebugFlags based upon the contents of the slurm.conf configuration file or
the SLURM_DEBUG_FLAGS environment variable. The environment variable takes precedence over the
setting in the slurm.conf.
nodes=<NodeName>
The argument is optional and if used the request to change debug level is sent to slurmd
instead of slurmctld. A node range expression may be used for NodeName.
show <ENTITY>[=<ID>] or <ENTITY> [<ID>]
Display the state of the specified entity with the specified identification.
aliases
Returns all NodeName values associated with a given NodeHostname (useful to get the list of
virtual nodes associated with a real node in a configuration where multiple slurmd daemons
execute on a single compute node).
assoc_mgr
Displays the current contents of the slurmctld's internal cache for users, associations
and/or qos. The output can be filtered by different record types:
users=<user1>[...,<userN>]
Limit the User Records displayed to those with the specified user name(s).
accounts=<acct1>[...,<acctN>]
Limit the Association Records displayed to those with the specified account name(s).
qos=<qos1>[...,<qosN>]
Limit the QOS Records displayed to those with the specified QOS name(s).
flags={users|assoc|qos}
Specify the desired record type to be displayed. If no flags are specified, all
record types are displayed.
bbstat Displays output from the current burst buffer plugin's status tool (slurm_bb_get_status for
lua or dwstat for datawarp). Options following bbstat are passed directly to the status
tool by the slurmctld daemon and the response returned to the user. Equivalent to dwstat.
burstbuffer
Displays the current status of the BurstBuffer plugin.
config Displays parameter names from the configuration files in mixed case (e.g. SlurmdPort=7003)
while derived parameters names are in upper case only (e.g. SLURM_VERSION).
daemons
Reports which daemons should be running on this node.
dwstat Displays output from the current burst buffer plugin's status tool (slurm_bb_get_status for
lua or dwstat for datawarp). Options following dwstat are passed directly to the status
tool by the slurmctld daemon and the response returned to the user. Equivalent to bbstat.
federation
The federation name that the controller is part of and the sibling clusters part of the
federation will be listed.
frontend
Shows configured frontend nodes.
hostlist
Takes a list of host names and prints the hostlist expression for them (the inverse of
hostnames). hostlist can also take the absolute pathname of a file (beginning with the
character '/') containing a list of hostnames, or a single '-' to have it read from stdin
directly. Multiple node names may be specified using simple node range expressions (e.g.
"lx[10-20]"). By default hostlist does not sort the node list or make it unique (e.g.
tux2,tux1,tux2 = tux[2,1-2]). If you wanted a sorted list use hostlistsorted (e.g.
tux2,tux1,tux2 = tux[1-2,2]).
hostlistsorted
Takes a list of host names and prints a sorted (but not unique) hostlist expression for
them. See hostlist.
hostnames
Takes an optional hostlist expression as input and writes a list of individual host names
to standard output (one per line). If no hostlist expression is supplied, the contents of
the SLURM_JOB_NODELIST environment variable is used. For example "tux[1-3]" is mapped to
"tux1","tux2" and "tux3" (one hostname per line).
job Displays statistics about all jobs by default. If an optional jobid is specified, details
for just that job will be displayed. If the job does not specify socket-per-node,
cores-per-socket or threads-per-core then it will display '*' in the ReqS:C:T=*:*:* field.
licenses
Displays statistics about all configured licenses (local and remote) by default. If an
optional license name is specified, details for just that license will be displayed.
node Displays statistics about all nodes by default. If an optional nodename is specified,
details for just that node will be displayed.
partition
Displays statistics about all partitions by default. If an optional partition name is
specified, details for just that partition will be displayed.
reservation
Displays statistics about all reservations by default. If an optional reservation name is
specified, details for just that reservation will be displayed.
slurmd Displays statistics for the slurmd running on the current node.
step Displays statistics about all job steps by default. If an optional jobid is specified,
details about steps for just that job will be displayed. If a jobid.stepid is specified,
details for just that step will be displayed. If a container-id=<id> is specified, then
the first matching step with the given container-id will be displayed.
topology
Displays information about the defined topology layout. If a switch is specified,
information about that switch will be shown. If one node name is specified, all switches
connected to that node (and their parent switches) will be shown. If more than one node
name is specified, only switches that connect to all named nodes will be shown.
shutdown <OPTION>
Instruct Slurm daemons to save current state and terminate. By default, the Slurm controller
(slurmctld) forwards the request all other daemons (slurmd daemon on each compute node). An
OPTION of slurmctld or controller results in only the slurmctld daemon being shutdown and the
slurmd daemons remaining active.
suspend <job_list>
Suspend a running job. The job_list argument is a comma separated list of job IDs. Use the
resume command to resume its execution. User processes must stop on receipt of SIGSTOP signal and
resume upon receipt of SIGCONT for this operation to be effective. Not all architectures and
configurations support job suspension. If a suspended job is requeued, it will be placed in a
held state. The time a job is suspended will not count against a job's time limit. Only an
account coordinator, operator, administrator, SlurmUser, or root can suspend jobs.
takeover [<INDEX>]
Instruct one of Slurm's backup controllers (slurmctld) to take over system control. By default the
first backup controller (INDEX=1) requests control from the primary and waits for its termination.
After that, it switches from backup mode to controller mode. If primary controller can not be
contacted, it directly switches to controller mode. This can be used to speed up the Slurm
controller fail-over mechanism when the primary node is down. This can be used to minimize
disruption if the computer executing the primary Slurm controller is scheduled down. (Note:
Slurm's primary controller will take the control back at startup.)
top <job_list>
Move the specified job IDs to the top of the queue of jobs belonging to the identical user ID,
partition name, account, and QOS. The job_list argument is a comma separated ordered list of job
IDs. Any job not matching all of those fields will not be effected. Only jobs submitted to a
single partition will be effected. This operation changes the order of jobs by adjusting job nice
values. The net effect on that user's throughput will be negligible to slightly negative. This
operation is disabled by default for non-privileged (non-operator, admin, SlurmUser, or root)
users. This operation may be enabled for non-privileged users by the system administrator by
including the option "enable_user_top" in the SchedulerParameters configuration parameter.
token [lifespan=<lifespan>] [username=<username>]
Return an auth token which can be used to support JWT authentication if AuthAltTypes=auth/jwt has
been enabled on the system. Supports two optional arguments. lifespan= may be used to specify the
token's lifespan in seconds. username (only available to SlurmUser/root) may be used to request a
token for a different username. Lifespan can be set to "infinite" to have a token that will not
expire. Sites are suggested to use the smallest lifespan required and generate tokens more often
instead of using longer lived tokens.
uhold <job_list>
Prevent a pending job from being started (sets its priority to 0). The job_list argument is a
space separated list of job IDs or job names. Use the release command to permit the job to be
scheduled. This command is designed for a system administrator to hold a job so that the job
owner may release it rather than requiring the intervention of a system administrator (also see
the hold command).
update <SPECIFICATION>
Update job, step, node, partition, or reservation configuration per the supplied specification.
SPECIFICATION is in the same format as the Slurm configuration file and the output of the show
command described above. It may be desirable to execute the show command (described above) on the
specific entity you want to update, then use cut-and-paste tools to enter updated configuration
values to the update. Note that while most configuration values can be changed using this command,
not all can be changed using this mechanism. In particular, the hardware configuration of a node
or the physical addition or removal of nodes from the cluster may only be accomplished through
editing the Slurm configuration file and executing the reconfigure command (described above).
update <SuspendExc*>[=|+=|-=]<LIST>
Update SuspendExcNodes, SuspendExcParts, or SuspendExcStates. <LIST> is either a NodeList, list
of partitions, or list of node states respectively. Use +=/-= to add/remove nodes, partitions, or
states to/from the currently configured list. Use = to replace the current list. SuspendExcNodes
does not support "+="/"-=" when the ":" option is used, however, direct assignment "=" is always
supported. Consider using "scontrol show config | grep SuspendExc" to see current state of these
settings.
version
Display the version number of scontrol being executed.
wait_job <job_id>
Wait until a job and all of its nodes are ready for use or the job has entered some termination
state. This option is particularly useful in the Slurm Prolog or in the batch script itself if
nodes are powered down and restarted automatically as needed.
NOTE: Don't use scontrol wait_job in PrologSlurmctld or Prolog with PrologFlags=Alloc as this will
result in a deadlock.
NOTE: When using wait_job for an array job, use the SLURM_JOB_ID environment variable to reference
the job rather than the SLURM_ARRAY_JOB_ID variable.
write batch_script <job_id> [<optional_filename>]
Write the batch script for a given job_id to a file or to stdout. The file will default to
slurm-<job_id>.sh if the optional filename argument is not given. The script will be written to
stdout if - is given instead of a filename. The batch script can only be retrieved by an admin or
operator, or by the owner of the job.
write config <optional_filename>
Write the current configuration to a file with the naming convention of "slurm.conf.<datetime>" in
the same directory as the original slurm.conf file. If a filename is given that file location with
a .<datetime> suffix is created.
INTERACTIVE COMMANDS
NOTE: All commands listed below can be used in the interactive mode, but NOT on the initial command line.
all Show all partitions, their jobs and jobs steps. This causes information to be displayed about
partitions that are configured as hidden and partitions that are unavailable to user's group.
cluster <CLUSTER_NAME>
The cluster to issue commands to. Only one cluster name may be specified.
details
Causes the show command to provide additional details where available. Job information will
include CPUs and NUMA memory allocated on each node. Note that on computers with hyperthreading
enabled and Slurm configured to allocate cores, each listed CPU represents one physical core.
Each hyperthread on that core can be allocated a separate task, so a job's CPU count and task
count may differ. See the --cpu-bind and --mem-bind option descriptions in srun man pages for
more information. The details option is currently only supported for the show job command.
exit Terminate scontrol interactive session.
hide Do not display partition, job or jobs step information for partitions that are configured as
hidden or partitions that are unavailable to the user's group. This is the default behavior.
oneliner
Print information one line per record.
quiet Print no warning or informational messages, only fatal error messages.
quit Terminate the execution of scontrol.
verbose
Print detailed event logging. This includes time-stamps on data structures, record counts, etc.
!! Repeat the last command executed.
JOBS - SPECIFICATIONS FOR UPDATE COMMAND
Note that update requests done by either root, SlurmUser or Administrators are not subject to certain
restrictions. For instance, if an Administrator changes the QOS on a pending job, certain limits such as
the TimeLimit will not be changed automatically as changes made by the Administrators are allowed to
violate these restrictions.
Account=<account>
Account name to be changed for this job's resource use. Value may be cleared with blank data
value, "Account=".
AdminComment=<spec>
Arbitrary descriptive string. Can only be set by a Slurm administrator.
ArrayTaskThrottle=<count>
Specify the maximum number of tasks in a job array that can execute at the same time. Set the
count to zero in order to eliminate any limit. The task throttle count for a job array is
reported as part of its ArrayTaskId field, preceded with a percent sign. For example
"ArrayTaskId=1-10%2" indicates the maximum number of running tasks is limited to 2.
BurstBuffer=<spec>
Burst buffer specification to be changed for this job's resource use. Value may be cleared with
blank data value, "BurstBuffer=". Format is burst buffer plugin specific.
Clusters=<spec>
Specifies the clusters that the federated job can run on.
ClusterFeatures=<spec>
Specifies features that a federated cluster must have to have a sibling job submitted to it. Slurm
will attempt to submit a sibling job to a cluster if it has at least one of the specified
features.
Comment=<spec>
Arbitrary descriptive string.
Contiguous={yes|no}
Set the job's requirement for contiguous (consecutive) nodes to be allocated. Possible values are
"YES" and "NO". Only the Slurm administrator or root can change this parameter.
CoreSpec=<count>
Number of cores to reserve per node for system use. The job will be charged for these cores, but
be unable to use them. Will be reported as "*" if not constrained.
CPUsPerTask=<count>
Change the CPUsPerTask job's value.
Deadline=<time_spec>
It accepts times of the form HH:MM:SS to specify a deadline to a job at a specific time of day
(seconds are optional). You may also specify midnight, noon, elevenses (11 AM), fika (3 PM) or
teatime (4 PM) and you can have a time-of-day suffixed with AM or PM for a deadline in the morning
or the evening. You can specify a deadline for the job with a date of the form MMDDYY or MM/DD/YY
or MM.DD.YY, or a date and time as YYYY-MM-DD[THH:MM[:SS]]. You can also give times like now +
count time-units, where the time-units can be seconds (default), minutes, hours, days, or weeks
and you can tell Slurm to put a deadline for tomorrow with the keyword tomorrow. The specified
deadline must be later than the current time. Only pending jobs can have the deadline updated.
Only the Slurm administrator or root can change this parameter.
DelayBoot=<time_spec>
Change the time to decide whether to reboot nodes in order to satisfy job's feature specification
if the job has been eligible to run for less than this time period. See salloc/sbatch man pages
option --delay-boot.
Dependency=<dependency_list>
Defer job's initiation until specified job dependency specification is satisfied. Once a
dependency is satisfied, it is removed from the job. Cancel dependency with an empty
dependency_list (e.g. "Dependency="). <dependency_list> is of the form
<type:job_id[:job_id][,type:job_id[:job_id]]>. Many jobs can share the same dependency and these
jobs may even belong to different users.
after:job_id[:jobid...]
This job can begin execution after the specified jobs have begun execution or been
canceled.
afterany:job_id[:jobid...]
This job can begin execution after the specified jobs have terminated.
afternotok:job_id[:jobid...]
This job can begin execution after the specified jobs have terminated in some failed state
(non-zero exit code, node failure, timed out, etc). This dependency must be added while
the specified job is still active or within MinJobAge seconds after the specified job has
ended.
afterok:job_id[:jobid...]
This job can begin execution after the specified jobs have successfully executed (ran to
completion with an exit code of zero). This dependency must be added while the specified
job is still active or within MinJobAge seconds after the specified job has ended.
singleton
This job can begin execution after any previously launched jobs sharing the same job name
and user have terminated. In other words, only one job by that name and owned by that user
can be running or suspended at any point in time.
EligibleTime=<time_spec>
See StartTime.
EndTime
The time the job is expected to terminate based on the job's time limit. When the job ends sooner,
this field will be updated with the actual end time.
ExcNodeList=<nodes>
Set the job's list of excluded node. Multiple node names may be specified using simple node range
expressions (e.g. "lx[10-20]"). Value may be cleared with blank data value, "ExcNodeList=".
Extra=<spec>
An arbitrary string enclosed in single or double quotes if using spaces or some special
characters. See <https://slurm.schedmd.com/extra_constraints.html> for more details.
Features=<features>
Set the job's required node features. The list of features may include multiple feature names
separated by ampersand (AND) and/or vertical bar (OR) operators. For example:
Features="opteron&video" or Features="fast|faster". In the first example, only nodes having both
the feature "opteron" AND the feature "video" will be used. There is no mechanism to specify that
you want one node with feature "opteron" and another node with feature "video" in case no node has
both features. If only one of a set of possible options should be used for all allocated nodes,
then use the OR operator and enclose the options within square brackets. For example:
"Features=[rack1|rack2|rack3|rack4]" might be used to specify that all nodes must be allocated on
a single rack of the cluster, but any of those four racks can be used. A request can also specify
the number of nodes needed with some feature by appending an asterisk and count after the feature
name. For example "Features=graphics*4" indicates that at least four allocated nodes must have
the feature "graphics." Parenthesis are also supported for features to be ANDed together. For
example "Features=[(knl&a2a&flat)*4&haswell*2]" indicates the resource allocation should include 4
nodes with ALL of the features "knl", "a2a", and "flat" plus 2 nodes with the feature "haswell".
Constraints with node counts may only be combined with AND operators. Value may be cleared with
blank data value, for example "Features=".
Gres=<list>
Specifies a comma-delimited list of generic consumable resources. The format of each entry on the
list is "name[:count[*cpu]]". The name is that of the consumable resource. The count is the
number of those resources with a default value of 1. The specified resources will be allocated to
the job on each node allocated unless "*cpu" is appended, in which case the resources will be
allocated on a per cpu basis. The available generic consumable resources is configurable by the
system administrator. A list of available generic consumable resources will be printed and the
command will exit if the option argument is "help". Examples of use include
"Gres=gpus:2*cpu,disk=40G" and "Gres=help".
JobId=<job_list>
Identify the job(s) to be updated. The job_list may be a comma separated list of job IDs. Either
JobId or JobName is required. If the JobId is equal to the ArrayJobID then the update will affect
all of the individual jobs of the array. In that case, to update the specific individual job, the
form <ArrayJobID>_<ArrayTaskId> must be used.
Licenses=<name>
Specification of licenses (or other resources available on all nodes of the cluster) as described
in salloc/sbatch/srun man pages.
MailType=<types>
Set the mail event types. Valid type values are NONE, BEGIN, END, FAIL, REQUEUE, ALL (equivalent
to BEGIN, END, FAIL, REQUEUE, and STAGE_OUT), STAGE_OUT (burst buffer stage out and teardown
completed), TIME_LIMIT, TIME_LIMIT_90 (reached 90 percent of time limit), TIME_LIMIT_80 (reached
80 percent of time limit), TIME_LIMIT_50 (reached 50 percent of time limit) and ARRAY_TASKS (send
emails for each array task). Multiple type values may be specified in a comma separated list.
Unless the ARRAY_TASKS option is specified, mail notifications on job BEGIN, END and FAIL apply to
a job array as a whole rather than generating individual email messages for each task in the job
array.
MailUser=<name>
Set the user to receive email notification of state changes. A blank string will set the mail user
to the default which is the submitting user.
MinCPUsNode=<count>
Set the job's minimum number of CPUs per node to the specified value.
MinMemoryCPU=<megabytes>
Set the job's minimum real memory required per allocated CPU to the specified value. Either
MinMemoryCPU or MinMemoryNode may be set, but not both.
MinMemoryNode=<megabytes>
Set the job's minimum real memory required per node to the specified value. Either MinMemoryCPU
or MinMemoryNode may be set, but not both.
MinTmpDiskNode=<megabytes>
Set the job's minimum temporary disk space required per node to the specified value. Only the
Slurm administrator or root can change this parameter.
TimeMin=<timespec>
Change TimeMin value which specifies the minimum time limit minutes of the job.
JobName=<name>
Identify the name of jobs to be modified or set the job's name to the specified value. When used
to identify jobs to be modified, all jobs belonging to all users are modified unless the UserID
option is used to identify a specific user. Either JobId or JobName is required.
Name[=<name>]
See JobName.
Nice[=<adjustment>]
Update the job with an adjusted scheduling priority within Slurm. With no adjustment value the
scheduling priority is decreased by 100. A negative nice value increases the priority, otherwise
decreases it. The adjustment range is +/- 2147483645. Only privileged users can specify a negative
adjustment.
NodeList=<nodes>
Change the nodes allocated to a running job to shrink its size. The specified list of nodes must
be a subset of the nodes currently allocated to the job. Multiple node names may be specified
using simple node range expressions (e.g. "lx[10-20]"). After a job's allocation is reduced,
subsequent srun commands must explicitly specify node and task counts which are valid for the new
allocation.
NOTE: The allocated nodes of jobs with arbitrary distribution can not be updated.
NumCPUs=<min_count>[-<max_count>]
Set the job's minimum and optionally maximum count of CPUs to be allocated.
NumNodes=<min_count>[-<max_count>]
Set the job's minimum and optionally maximum count of nodes to be allocated. If the job is
already running, use this to specify a node count less than currently allocated and resources
previously allocated to the job will be relinquished. After a job's allocation is reduced,
subsequent srun commands must explicitly specify node and task counts which are valid for the new
allocation. Also see the NodeList parameter above. This is the same as ReqNodes.
NOTE: The node count of jobs with arbitrary distribution can not be updated.
NumTasks=<count>
Set the job's count of requested tasks to the specified value. The number of tasks started in a
specific step inside the allocation may differ from this value, for instance when a different
number of tasks is requested on step creation. This is the same as ReqProcs.
OverSubscribe={yes|no}
Set the job's ability to share compute resources (i.e. individual CPUs) with other jobs. Possible
values are "YES" and "NO". This option can only be changed for pending jobs.
Partition=<name>
Set the job's partition to the specified value.
Prefer=<features>
Set the job's preferred node features. This list is only preferred, not required like Features is.
This list will override what is requested in Features. See Features option above.
Priority=<number>
Set the job's priority to the specified value. Note that a job priority of zero prevents the job
from ever being scheduled. By setting a job's priority to zero it is held. Set the priority to a
non-zero value to permit it to run. Explicitly setting a job's priority clears any previously set
nice value and removes the priority/multifactor plugin's ability to manage a job's priority. In
order to restore the priority/multifactor plugin's ability to manage a job's priority, hold and
then release the job. Only the Slurm administrator or root can increase job's priority.
QOS=<name>
Set the job's QOS (Quality Of Service) to the specified value, or comma separated list of QOS. If
requesting a list it will be ordered based on the priority of the QOS given with the first being
the highest priority. Value may be cleared with blank data value, "QOS=".
Reboot={yes|no}
Set the job's flag that specifies whether to force the allocated nodes to reboot before starting
the job. This is only supported with some system configurations and therefore it could be silently
ignored.
ReqCores=<count>
Change the job's requested Cores count.
ReqNodeList=<nodes>
Set the job's list of required node. Multiple node names may be specified using simple node range
expressions (e.g. "lx[10-20]"). Value may be cleared with blank data value, "ReqNodeList=".
ReqNodes=<min_count>[-<max_count>]
See NumNodes.
ReqProcs=<count>
See NumTasks.
ReqSockets=<count>
Change the job's requested socket count.
ReqThreads=<count>
Change the job's requested threads count.
Requeue={0|1}
Stipulates whether a job should be requeued after a node failure: 0 for no, 1 for yes.
ReservationName=<name>
Set the job's reservation to the specified value. Value may be cleared with blank data value,
"ReservationName=".
ResetAccrueTime
Set the job's accrue time value to 'now' meaning it will lose any time previously accrued for
priority. Helpful if you have a large queue of jobs already in the queue and want to start
limiting how many jobs can accrue time without waiting for the queue to flush out.
SiteFactor=<account>
Specify the job's admin priority factor in the range of +/-2147483645. Only privileged users can
modify the value.
StdErr=<filepath>
Set the batch job's stderr file path. Value may be reset to job default with blank data value,
"StdErr=".
NOTE: By default, StdErr will be merged into StdOut.
StdIn=<filepath>
Set the batch job's stdin file path. Value may be reset to job default with blank data value,
"StdIn=".
NOTE: By default, StdIn will be '/dev/null'.
StdOut=<filepath>
Set the batch job's stdout file path. Value may be reset to job default with blank data value,
"StdOut=".
NOTE: By default, StdOut will be based on the JobId.
Shared={yes|no}
See OverSubscribe option above.
StartTime=<time_spec>
Set the job's earliest initiation time. It accepts times of the form HH:MM:SS to run a job at a
specific time of day (seconds are optional). (If that time is already past, the next day is
assumed.) You may also specify midnight, noon, elevenses (11 AM), fika (3 PM) or teatime (4 PM)
and you can have a time-of-day suffixed with AM or PM for running in the morning or the evening.
You can also say what day the job will be run, by specifying a date of the form MMDDYY or MM/DD/YY
or MM.DD.YY, or a date and time as YYYY-MM-DD[THH:MM[:SS]]. You can also give times like now +
count time-units, where the time-units can be seconds (default), minutes, hours, days, or weeks
and you can tell Slurm to run the job today with the keyword today and to run the job tomorrow
with the keyword tomorrow.
Notes on date/time specifications:
- although the 'seconds' field of the HH:MM:SS time specification is allowed by the code, note
that the poll time of the Slurm scheduler is not precise enough to guarantee dispatch of the job
on the exact second. The job will be eligible to start on the next poll following the specified
time. The exact poll interval depends on the Slurm scheduler (e.g., 60 seconds with the default
sched/builtin).
- if no time (HH:MM:SS) is specified, the default is (00:00:00).
- if a date is specified without a year (e.g., MM/DD) then the current year is assumed, unless
the combination of MM/DD and HH:MM:SS has already passed for that year, in which case the next
year is used.
Switches=<count>[@<max-time-to-wait>]
When a tree topology is used, this defines the maximum count of switches desired for the job
allocation. If Slurm finds an allocation containing more switches than the count specified, the
job remain pending until it either finds an allocation with desired switch count or the time limit
expires. By default there is no switch count limit and no time limit delay. Set the count to zero
in order to clean any previously set count (disabling the limit). The job's maximum time delay
may be limited by the system administrator using the SchedulerParameters configuration parameter
with the max_switch_wait parameter option. Also see wait-for-switch.
wait-for-switch=<seconds>
Change max time to wait for a switch <seconds> secs.
TasksPerNode=<count>
Change the job's requested TasksPerNode.
ThreadSpec=<count>
Number of threads to reserve per node for system use. The job will be charged for these threads,
but be unable to use them. Will be reported as "*" if not constrained.
TimeLimit=<time>
The job's time limit. Output format is [days-]hours:minutes:seconds or "UNLIMITED". Input format
(for update command) set is minutes, minutes:seconds, hours:minutes:seconds, days-hours,
days-hours:minutes or days-hours:minutes:seconds. Time resolution is one minute and second values
are rounded up to the next minute. If changing the time limit of a job, either specify a new time
limit value or precede the time and equal sign with a "+" or "-" to increment or decrement the
current time limit (e.g. "TimeLimit+=30"). In order to increment or decrement the current time
limit, the JobId specification must precede the TimeLimit specification. Note that incrementing
or decrementing the time limit for a job array is only allowed before the job array has been split
into more than one job record. Only the Slurm administrator or root can increase job's TimeLimit.
UserID=<UID or name>
Used with the JobName option to identify jobs to be modified. Either a user name or numeric ID
(UID), may be specified.
WCKey=<key>
Set the job's workload characterization key to the specified value.
WorkDir=<directory_name>
Set the job's working directory to the specified value. Note that this may only be set for jobs in
the PENDING state, and that jobs may fail to launch if they rely on relative paths to the
originally submitted WorkDir.
JOBS - SPECIFICATIONS FOR SHOW COMMAND
The "show" command, when used with the "job" or "job <jobid>" entity displays detailed information about
a job or jobs. Much of this information may be modified using the "update job" command as described
above. However, the following fields displayed by the show job command are read-only and cannot be
modified:
AllocNode:Sid
Local node and system id making the resource allocation.
BatchFlag
Jobs submitted using the sbatch command have BatchFlag set to 1. The BatchFlag will be incremented
past 1 if the job is requeued due to a failure. Jobs submitted using other commands have BatchFlag
set to 0 and will not be incremented.
ExitCode=<exit>:<sig>
Exit status reported for the job by the wait() function. The first number is the exit code,
typically as set by the exit() function. The second number of the signal that caused the process
to terminate if it was terminated by a signal.
GroupId
The group under which the job was submitted.
JobState
The current state of the job.
NodeListIndices
The NodeIndices expose the internal indices into the node table associated with the node(s)
allocated to the job.
NtasksPerN:B:S:C=<tasks_per_node>:<tasks_per_baseboard>:<tasks_per_socket>:<tasks_per_core>
Specifies the number of tasks to be started per hardware component (node, baseboard, socket and
core). Unconstrained values may be shown as "0" or "*".
PreemptEligibleTime
Time the job becomes eligible for preemption. Modified by PreemptExemptTime, either from the
global option in slurm.conf or the job QOS. This is hidden if the job has not started or if
PreemptMode=OFF.
PreemptTime
Time at which job was signaled that it was selected for preemption. This value is only meaningful
for PreemptMode=CANCEL and PreemptMode=REQUEUE and for jobs in a partition or QOS that has a
GraceTime value designated. This is hidden if the job has not started or if PreemptMode=OFF.
PreSusTime
Time the job ran prior to last suspend.
Reason The reason a job has not been started by the scheduler: e.g., waiting for "Resources". Details of
job reason codes are found on this page: <https://slurm.schedmd.com/job_reason_codes.html>
ReqB:S:C:T=<baseboard_count>:<socket_per_baseboard_count>:<core_per_socket_count>:<thread_per_core_count>
Specifies the count of various hardware components requested by the job. Unconstrained values may
be shown as "0" or "*".
SecsPreSuspend=<seconds>
If the job is suspended, this is the run time accumulated by the job (in seconds) prior to being
suspended.
Socks/Node=<count>
Count of desired sockets per node
SubmitTime
The time and date stamp (in localtime) the job was submitted. The format of the output is
identical to that of the EndTime field.
NOTE: If a job is requeued, the submit time is reset. To obtain the original submit time it is
necessary to use the "sacct -j <job_id[.<step_id>]" command also designating the -D or --duplicate
option to display all duplicate entries for a job.
SuspendTime
Time the job was last suspended or resumed.
NOTE on information displayed for various job states: When you submit a request for the "show job"
function the scontrol process makes an RPC request call to slurmctld with a REQUEST_JOB_INFO
message type. If the state of the job is PENDING, then it returns some detail information such as:
min_nodes, min_procs, cpus_per_task, etc. If the state is other than PENDING the code assumes that
it is in a further state such as RUNNING, COMPLETE, etc. In these cases the code explicitly
returns zero for these values. These values are meaningless once the job resources have been
allocated and the job has started.
STEPS - SPECIFICATIONS FOR UPDATE COMMAND
StepId=<job_id>[.<step_id>]
Identify the step to be updated. If the job_id is given, but no step_id is specified then all
steps of the identified job will be modified. This specification is required.
TimeLimit=<time>
The job's time limit. Output format is [days-]hours:minutes:seconds or "UNLIMITED". Input format
(for update command) set is minutes, minutes:seconds, hours:minutes:seconds, days-hours,
days-hours:minutes or days-hours:minutes:seconds. Time resolution is one minute and second values
are rounded up to the next minute. If changing the time limit of a step, either specify a new
time limit value or precede the time with a "+" or "-" to increment or decrement the current time
limit (e.g. "TimeLimit=+30"). In order to increment or decrement the current time limit, the
StepId specification must precede the TimeLimit specification.
NODES - SPECIFICATIONS FOR CREATE COMMAND
Provide the same NodeName configuration as found in the slurm.conf. See slurm.conf man page for details.
Only State=CLOUD and State=FUTURE nodes are allowed.
NODES - SPECIFICATIONS FOR UPDATE COMMAND
NodeName=<name>
Identify the node(s) to be updated. Multiple node names may be specified using simple node range
expressions (e.g. "lx[10-20]"). Nodesets can also be specified by themselves or mixed with node
range expressions, using a comma as a list separator. If the keyword "ALL" is specified alone,
then the update will be attempted against all the nodes in the local cluster. This specification
is required.
ActiveFeatures=<features>
Identify the feature(s) currently active on the specified node. Any previously active feature
specification will be overwritten with the new value. Also see AvailableFeatures. Typically
ActiveFeatures will be identical to AvailableFeatures; however ActiveFeatures may be configured as
a subset of the AvailableFeatures. For example, a node may be booted in multiple configurations.
In that case, all possible configurations may be identified as AvailableFeatures, while
ActiveFeatures would identify the current node configuration. When updating the ActiveFeatures
with scontrol, the change is only made in slurmctld. When using a node_features plugin the
state/features of the node must be updated on the node such that a new node start will report the
updated state/features.
AvailableFeatures=<features>
Identify the feature(s) available on the specified node. Any previously defined available feature
specification will be overwritten with the new value. AvailableFeatures assigned via scontrol
will only persist across the restart of the slurmctld daemon with the -R option and state files
preserved or slurmctld's receipt of a SIGHUP. Update slurm.conf with any changes meant to be
persistent across normal restarts of slurmctld or the execution of scontrol reconfig.
NOTE: Available features being removed via scontrol must not be active (i.e. remove them from
ActiveFeatures first).
Comment=<comment>
Arbitrary descriptive string. Use quotes to enclose a comment having more than one word
CpuBind=<node>
Specify the task binding mode to be used by default for this node. Supported options include:
"none", "socket", "ldom" (NUMA), "core", "thread" and "off" (remove previous binding mode).
Extra=<comment>
Arbitrary string on the node. Use quotes to enclose a string having more than one word. See
<https://slurm.schedmd.com/extra_constraints.html> for more details.
Gres=<gres>
Identify generic resources to be associated with the specified node. Any previously defined
generic resources will be overwritten with the new value. Specifications for multiple generic
resources should be comma separated. Each resource specification consists of a name followed by
an optional colon with a numeric value (default value is one) (e.g. "Gres=bandwidth:10000").
Modification of GRES count associated with specific files (e.g. GPUs) is not allowed other than to
set their count on a node to zero. In order to change the GRES count to another value, modify
your slurm.conf and gres.conf files and restart daemons. If GRES are associated with specific
sockets, that information will be reported For example if all 4 GPUs on a node are all associated
with socket zero, then "Gres=gpu:4(S:0)". If associated with sockets 0 and 1 then
"Gres=gpu:4(S:0-1)". The information of which specific GPUs are associated with specific GPUs is
not reported, but only available by parsing the gres.conf file. Generic resources assigned via
scontrol will only persist across the restart of the slurmctld daemon with the -R option and state
files preserved or slurmctld's receipt of a SIGHUP. Update slurm.conf with any changes meant to
be persistent across normal restarts of slurmctld or the execution of scontrol reconfig.
InstanceId=<instance_id>
Cloud instance ID.
InstanceType=<instance_type>
Cloud instance type.
NodeAddr=<node address>
Name that a node should be referred to in establishing a communications path. This name will be
used as an argument to the getaddrinfo() function for identification. 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] NodeAddr=elx[0-7]"). NodeAddr may also contain IP addresses.
NodeHostname=<node hostname>
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 expressions (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 must be identical to the number of nodes identified by NodeName.
Reason=<reason>
Identify the reason the node is in a "DOWN", "DRAINED", "DRAINING", "FAILING" or "FAIL" state.
Use quotes to enclose a reason having more than one word.
ResumeAfter=<seconds>
Schedule a node state resume after this amount of seconds, when its state is updated to "DOWN" or
"DRAIN". Upon state resume, the node's state will be changed from DRAIN, DRAINING, DOWN or REBOOT
to IDLE and NoResp. slurmctld will then attempt to contact slurmd to request that the node
register itself.
NOTE: A value of -1 will unschedule the node state resume.
State=<state>
Assign one of the following states/actions to the node(s) specified by the update command.
CANCEL_REBOOT
Cancels a pending reboot on the node (same as scontrol cancel_reboot <node>).
DOWN Stop all running and suspended jobs and make the node unavailable for new jobs.
DRAIN Indicates that no new jobs may be started on this node. Existing jobs are allowed to run to
completion, leaving the node in a DRAINED state once all the jobs have completed.
FAIL Similar to DRAIN except that some applications will seek to relinquish those nodes before
the job completes.
FUTURE Indicates the node is not fully configured, but is expected to be available at some point
in the future.
IDLE Will clear DOWN, DRAIN and FAIL states. Will set the state to IDLE and NoResp. slurmctld
will then attempt to contact slurmd to request that the node register itself. Once
registered, the node state will then remove the NoResp flag and will resume normal
operations.
NoResp This will set the "Not Responding" flag for a node without changing its underlying state.
RESUME Not an actual node state, but will change a node state from DRAIN, DRAINING, DOWN or REBOOT
to IDLE and NoResp. slurmctld will then attempt to contact slurmd to request that the node
register itself. Once registered, the node state will then remove the NoResp flag and will
resume normal operations. It will also clear the POWERING_DOWN state of a node and make it
eligible to be allocated.
UNDRAIN
Clears the node from being drained (like RESUME), but will not change the node's base state
(e.g. DOWN). UNDRAIN requires a valid node registration before new jobs can be scheduled on
the node. Setting a node DOWN will cause all running and suspended jobs on that node to be
terminated.
While all of the above states are valid, some of them are not valid new node states given their
prior state.
NOTE: The scontrol command should not be used to change node state on Cray systems. Use Cray tools
such as xtprocadmin instead.
Weight=<weight>
Identify weight to be associated with specified nodes. This allows dynamic changes to weight
associated with nodes, which will be used for the subsequent node allocation decisions. Weight
assigned via scontrol will only persist across the restart of the slurmctld daemon with the -R
option and state files preserved or slurmctld's receipt of a SIGHUP. Update slurm.conf with any
changes meant to be persistent across normal restarts of slurmctld or the execution of scontrol
reconfig.
NODES - SPECIFICATIONS FOR DELETE COMMAND
NodeName=<nodes>
Identify the node(s) to be deleted. Multiple node names may be specified using simple node range
expressions (e.g. "lx[10-20]"). Nodesets can also be specified by themselves or mixed with node
range expressions, using a comma as a list separator. If the keyword "ALL" is specified alone,
then the update will be attempted against all the nodes in the local cluster. This specification
is required.
NODES - SPECIFICATIONS FOR SHOW COMMAND
AllocMem
The total memory, in MB, currently allocated by jobs on the node.
CPULoad
CPU load of a node as reported by the OS.
CPUSpecList
The list of Slurm abstract CPU IDs on this node reserved for exclusive use by the Slurm compute
node daemons (slurmd, slurmstepd).
FreeMem
The total memory, in MB, currently free on the node as reported by the OS.
LastBusyTime
The last time the node was busy (i.e. last time the node had jobs on it). This time is used in
PowerSave to determine when to suspend nodes (e.g. now - LastBusy > SuspendTime).
MemSpecLimit
The combined memory limit, in megabytes, on this node for the Slurm compute node daemons (slurmd,
slurmstepd).
RealMemory
The total memory, in MB, on the node.
State Identify the state(s) assigned to the node with '+' delimited state flags.
States:
ALLOCATED
Indicates that the node has all CPUs allocated to job(s) running on the node.
DOWN The node does not have any running jobs and is unavailable for new work.
ERROR The node is in an error state. Consult the logs for more information about what caused this
state.
FUTURE The node is currently not fully configured, but expected to be available at some point in
the indefinite future for use.
IDLE Indicates that the node is available for work but does not currently have any jobs assigned
to it.
MIXED Indicates that the node is in multiple states. For instance if only part of the node is
ALLOCATED and the rest of the node is IDLE the state will be MIXED.
UNKNOWN
The node has not yet registered with the controller and its state is not known.
Flags:
CLOUD Indicates that the node is configured as a cloud node, to be brought up on demand, but not
currently running.
COMPLETING
Indicates that the only job on the node or that all jobs on the node are in the process of
completing.
DRAIN The node is not accepting any new jobs and any currently running jobs will complete.
DYNAMIC
Slurm allows you to define multiple types of nodes in a FUTURE state. When starting slurmd
on a node you can specify the -F flag to have the node match and use an existing definition
in your slurm.conf file. The DYNAMIC state indicates that the node was started as a Dynamic
Future node.
INVALID_REG
The node did not register correctly with the controller. This happens when a node registers
with less resources than configured in the slurm.conf file. The node will clear from this
state with a valid registration (i.e. a slurmd restart is required).
MAINTENANCE
The node is currently in a reservation that includes the maintenance flag.
NOT_RESPONDING
Node is not responding.
PERFCTRS
Indicates that Network Performance Counters associated with this node are in use, rendering
this node as not usable for any other jobs.
POWER_DOWN
Node is pending power down.
POWERED_DOWN
Node is currently powered down and not capable of running any jobs.
POWERING_DOWN
Node is in the process of powering down.
POWERING_UP
Node is in the process of powering up.
PLANNED
The node is earmarked for a job that will start in the future.
REBOOT_ISSUED
A reboot request has been sent to the agent configured to handle this request.
REBOOT_REQUESTED
A request to reboot this node has been made, but hasn't been handled yet.
RESERVED
Indicates the node is in an advanced reservation and not generally available.
The meaning of the energy information is as follows:
CurrentWatts
The instantaneous power consumption of the node at the time of the last node energy
accounting sample, in watts.
LowestJoules
The energy consumed by the node between the last time it was powered on and the last time
it was registered by slurmd, in joules.
ConsumedJoules
The energy consumed by the node between the last time it was registered by the slurmd
daemon and the last node energy accounting sample, in joules.
If the reported value is "n/s" (not supported), the node does not support the configured
AcctGatherEnergyType plugin. If the reported value is zero, energy accounting for nodes is
disabled.
FRONTEND - SPECIFICATIONS FOR UPDATE COMMAND
FrontendName=<name>
Identify the front end node to be updated. This specification is required.
Reason=<reason>
Identify the reason the node is in a "DOWN" or "DRAIN" state. Use quotes to enclose a reason
having more than one word.
State=<state>
Identify the state to be assigned to the front end node. Possible values are "DOWN", "DRAIN" or
"RESUME". If you want to remove a front end node from service, you typically want to set its
state to "DRAIN". "RESUME" is not an actual node state, but will return a "DRAINED", "DRAINING",
or "DOWN" front end node to service, either "IDLE" or "ALLOCATED" state as appropriate. Setting a
front end node "DOWN" will cause all running and suspended jobs on that node to be terminated.
PARTITIONS - SPECIFICATIONS FOR CREATE, UPDATE, AND DELETE COMMANDS
AllocNodes=<name>
Comma separated list of nodes from which users can execute jobs in the partition. Node names may
be specified using the node range expression syntax described above. The default value is "ALL".
AllowAccounts=<name>
Comma-separated list of accounts which may execute jobs in the partition. The default value is
"ALL". This list is hierarchical, meaning subaccounts are included automatically. NOTE: If
AllowAccounts is used then DenyAccounts will not be enforced. Also refer to DenyAccounts.
AllowGroups=<name>
Identify the user groups which may use this partition. Multiple groups may be specified in a
comma separated list. To permit all groups to use the partition specify "AllowGroups=ALL".
AllowQOS=<name>
Identify the QOSs which may use this partition. Multiple QOSs may be specified in a comma
separated list. To permit all QOSs to use the partition specify "AllowQOS=ALL".
Alternate=<partition name>
Alternate partition to be used if the state of this partition is "DRAIN" or "INACTIVE." The value
"NONE" will clear a previously set alternate partition.
CpuBind=<node>
Specify the task binding mode to be used by default for this partition. Supported options
include: "none", "socket", "ldom" (NUMA), "core", "thread" and "off" (remove previous binding
mode).
Default={yes|no}
Specify if this partition is to be used by jobs which do not explicitly identify a partition to
use. Possible output values are "YES" and "NO". In order to change the default partition of a
running system, use the scontrol update command and set Default=yes for the partition that you
want to become the new default.
DefaultTime=<time>
Run time limit used for jobs that don't specify a value. If not set then MaxTime will be used.
Format is the same as for MaxTime.
DefMemPerCPU=<MB>
Set the default memory to be allocated per CPU for jobs in this partition. The memory size is
specified in megabytes.
DefMemPerNode=<MB>
Set the default memory to be allocated per node for jobs in this partition. The memory size is
specified in megabytes.
DenyAccounts=<name>
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=<name>
Identify the QOSs which should be denied access to this partition. Multiple QOSs may be specified
in a comma separated list.
DisableRootJobs={yes|no}
Specify if jobs can be executed as user root. Possible values are "YES" and "NO".
ExclusiveUser={yes|no}
When enabled nodes will be exclusively allocated to users. Multiple jobs can be run
simultaneously, but those jobs must be from a single user.
GraceTime=<seconds>
Specifies, in units of seconds, the preemption grace time to be extended to a job which has been
selected for preemption. The default value is zero, no preemption grace time is allowed on this
partition or qos. (Meaningful only for PreemptMode=CANCEL and PreemptMode=REQUEUE)
Hidden={yes|no}
Specify if the partition and its jobs should be hidden from view. Hidden partitions will by
default not be reported by Slurm APIs or commands. Possible values are "YES" and "NO".
JobDefaults=<specs>
Specify job default values using a comma-delimited list of "key=value" pairs. Supported keys
include
DefCpuPerGPU Default number of CPUs per allocated GPU.
DefMemPerGPU Default memory limit (in megabytes) per allocated GPU.
MaxCPUsPerNode=<count>
Set the maximum number of CPUs that can be allocated per node to all jobs in this partition.
LLN={yes|no}
Schedule jobs on the least loaded nodes (based on the number of idle CPUs).
MaxMemPerCPU=<MB>
Set the maximum memory to be allocated per CPU for jobs in this partition. The memory size is
specified in megabytes.
MaxMemPerNode=<MB>
Set the maximum memory to be allocated per node for jobs in this partition. The memory size is
specified in megabytes.
MaxNodes=<count>
Set the maximum number of nodes which will be allocated to any single job in the partition.
Specify a number, "INFINITE" or "UNLIMITED". Changing the MaxNodes of a partition has no effect
upon jobs that have already begun execution.
MaxTime=<time>
The maximum run time for jobs. Output format is [days-]hours:minutes:seconds or "UNLIMITED".
Input format (for update command) is minutes, minutes:seconds, hours:minutes:seconds, days-hours,
days-hours:minutes or days-hours:minutes:seconds. Time resolution is one minute and second values
are rounded up to the next minute. Changing the MaxTime of a partition has no effect upon jobs
that have already begun execution.
MinNodes=<count>
Set the minimum number of nodes which will be allocated to any single job in the partition.
Changing the MinNodes of a partition has no effect upon jobs that have already begun execution.
Increasing this value may prevent pending jobs from starting, even if they were submitted without
-N/--nodes specification. If you do get in that situation, updating the MinNodes value of a
pending job using the scontrol command will allow that job to be scheduled.
MaxCPUsPerSocket=<count>
Set the maximum number of CPUs that can be allocated per socket to all jobs in this partition.
Nodes=<name>
Identify the node(s) to be associated with this partition. Multiple node names may be specified
using simple node range expressions (e.g. "lx[10-20]"). A specification of "ALL" will associate
all nodes. You can add or remove nodes by adding a '+' or '-' sign before the '=' sign. It also
works to do nodes=+lx0,-lx[2-4] if you want to remove lx[2-4] and add lx0 at the same time. Note
that jobs may only be associated with one partition at any time. Specify a blank data value to
remove all nodes from a partition: "Nodes=". Changing the Nodes in a partition has no effect upon
jobs that have already begun execution.
OverSubscribe={yes|no|exclusive|force}[:<job_count>]
Specify if compute resources (i.e. individual CPUs) in this partition can be shared by multiple
jobs. Possible values are "YES", "NO", "EXCLUSIVE" and "FORCE". An optional job count specifies
how many jobs can be allocated to use each resource.
OverTimeLimit=<count>
Number of minutes by which a job can exceed its time limit before being canceled. The configured
job time limit is treated as a soft limit. Adding OverTimeLimit to the soft limit provides a hard
limit, at which point the job is canceled. This is particularly useful for backfill scheduling,
which bases upon each job's soft time limit. A partition-specific OverTimeLimit will override any
global OverTimeLimit value. If not specified, the global OverTimeLimit value will take
precedence. May not exceed 65533 minutes. An input value of "UNLIMITED" will clear any
previously configured partition-specific OverTimeLimit value.
PartitionName=<name>
Identify the partition to be updated. This specification is required.
PowerDownOnIdle
If set to "YES", then nodes allocated from this partition will immediately be requested to power
down upon becoming IDLE. A power down request prevents further scheduling to the node until it has
been put into power save mode by SuspendProgram.
Also see SuspendTime.
PreemptMode=<mode>
Reset the mechanism used to preempt jobs in this partition if PreemptType is configured to
preempt/partition_prio. The default preemption mechanism is specified by the cluster-wide
PreemptMode configuration parameter. Possible values are "OFF", "CANCEL", "REQUEUE" and
"SUSPEND".
PriorityJobFactor=<count>
Partition factor used by priority/multifactor plugin in calculating job priority. The value may
not exceed 65533. Also see PriorityTier.
PriorityTier=<count>
Jobs submitted to a partition with a higher priority tier value will be dispatched before pending
jobs in partition with lower priority tier value and, if possible, they will preempt running
jobs from partitions with lower priority tier values. Note that a partition's priority tier takes
precedence over a job's priority. The value may not exceed 65533. Also see PriorityJobFactor.
QOS=<QOSname|blank to remove>
Set the partition QOS with a QOS name or to remove the Partition QOS leave the option blank.
ReqResv={yes|no}
Specify if only allocation requests designating a reservation will be satisfied. This is used to
restrict partition usage to be allowed only within a reservation. Possible values are "YES" and
"NO".
RootOnly={yes|no}
Specify if only allocation requests initiated by user root will be satisfied. This can be used to
restrict control of the partition to some meta-scheduler. Possible values are "YES" and "NO".
Shared={yes|no|exclusive|force}[:<job_count>]
Renamed to OverSubscribe, see option descriptions above.
State={up|down|drain|inactive}
Specify if jobs can be allocated nodes or queued in this partition. Possible values are "UP",
"DOWN", "DRAIN" and "INACTIVE".
UP Designates that new jobs may queued on the partition, and that jobs may be allocated
nodes and run from the partition.
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
continue 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 message), but jobs already queued on the partition may be
allocated nodes and run. See also the "Alternate" partition specification.
INACTIVE Designates that no new jobs may be queued on the partition, and jobs already queued may
not be allocated nodes and run. See also the "Alternate" partition specification.
TRESBillingWeights=<TRES Billing Weights>
TRESBillingWeights is used to define the billing weights of each TRES type that will be used in
calculating the usage of a job. The calculated usage is used when calculating fairshare and when
enforcing the TRES billing limit on jobs. Updates affect new jobs and not existing jobs. See the
slurm.conf man page for more information.
RESERVATIONS - SPECIFICATIONS FOR CREATE, UPDATE, AND DELETE COMMANDS
ReservationName=<name>
Identify the name of the reservation to be created, updated, or deleted. This parameter is
required for update and is the only parameter for delete. For create, if you do not want to give
a reservation name, use "scontrol create reservation ..." and a name will be created
automatically.
Accounts=<account list>
List of accounts permitted to use the reserved nodes, for example "Accounts=physcode1,physcode2".
A user in any of the specified accounts or subaccounts may use the reserved nodes. A new
reservation must specify Users or Groups and/or Accounts. If both Users/Groups and Accounts are
specified, a job must match both in order to use the reservation. Accounts can also be denied
access to reservations by preceding all of the account names with '-'. Alternately precede the
equal sign with '-'. For example, "Accounts=-physcode1,-physcode2" or
"Accounts-=physcode1,physcode2" will permit any account except physcode1 and physcode2 to use the
reservation. You can add or remove individual accounts from an existing reservation by using the
update command and adding a '+' or '-' sign before the '=' sign. If accounts are denied access to
a reservation (account name preceded by a '-'), then all other accounts are implicitly allowed to
use the reservation and it is not possible to also explicitly specify allowed accounts. Root and
the SlurmUser are given access to all reservations, regardless of the accounts set here.
BurstBuffer=<buffer_spec>[,<buffer_spec>,...]
Specification of burst buffer resources which are to be reserved. "buffer_spec" consists of four
elements: [plugin:][type:]#[units] "plugin" is the burst buffer plugin name, currently either
"datawarp" or "generic". If no plugin is specified, the reservation applies to all configured
burst buffer plugins. "type" specifies a Cray generic burst buffer resource, for example "nodes".
if "type" is not specified, the number is a measure of storage space. The "units" may be "N"
(nodes), "K|KiB", "M|MiB", "G|GiB", "T|TiB", "P|PiB" (for powers of 1024) and "KB", "MB", "GB",
"TB", "PB" (for powers of 1000). The default units are bytes for reservations of storage space.
For example "BurstBuffer=datawarp:2TB" (reserve 2TB of storage plus 3 nodes from the Cray plugin)
or "BurstBuffer=100GB" (reserve 100 GB of storage from all configured burst buffer plugins). Jobs
using this reservation are not restricted to these burst buffer resources, but may use these
reserved resources plus any which are generally available. NOTE: Usually Slurm interprets KB, MB,
GB, TB, PB units as powers of 1024, but for Burst Buffers size specifications Slurm supports both
IEC/SI formats. This is because the CRAY API for managing DataWarps supports both formats.
CoreCnt=<num>
This option is only supported when select/cons_tres is used. Identify number of cores to be
reserved. If NodeCnt or Nodelist is used this is the total number of cores to reserve where cores
per node is CoreCnt/NodeCnt.
Licenses=<license>
Specification of licenses (or other resources available on all nodes of the cluster) which are to
be reserved. License names can be followed by a colon and count (the default count is one).
Multiple license names should be comma separated (e.g. "Licenses=foo:4,bar"). A new reservation
must specify one or more resource to be included: NodeCnt, Nodes and/or Licenses. If a
reservation includes Licenses, but no NodeCnt or Nodes, then the option Flags=LICENSE_ONLY must
also be specified. Jobs using this reservation are not restricted to these licenses, but may use
these reserved licenses plus any which are generally available.
MaxStartDelay[=<timespec>]
Change MaxStartDelay value which specifies the maximum time an eligible job not requesting this
reservation can delay a job requesting it. Default is none. Valid formats are minutes,
minutes:seconds, hours:minutes:seconds, days-hours, days-hours:minutes,
days-hours:minutes:seconds. Time resolution is one minute and second values are rounded up to the
next minute. Output format is always [days-]hours:minutes:seconds.
NodeCnt=<num>[,<num>,...]
Identify number of nodes to be reserved. The number can include a suffix of "k" or "K", in which
case the number specified is multiplied by 1024. A new reservation must specify one or more
resource to be included: NodeCnt, Nodes and/or Licenses.
Nodes=<name>
Identify the node(s) to be reserved. Multiple node names may be specified using simple node range
expressions (e.g. "Nodes=lx[10-20]"). When using Nodes to specify more or fewer nodes, NodeCnt
will be updated to honor the new number of nodes. However, when setting an empty list ("Nodes="),
the nodelist will be filled with random nodes to fulfill the previous nodecnt and the SPEC_NODES
flag will be removed. A new reservation must specify one or more resource to be included:
NodeCnt, Nodes and/or Licenses. A specification of "ALL" will reserve all nodes. Set
Flags=PART_NODES and PartitionName= in order for changes in the nodes associated with a partition
to also be reflected in the nodes associated with a reservation. You can add or remove nodes from
an existing reservation by adding a '+' or '-' sign before the '=' sign. It also works to do
nodes=+lx0,-lx[2-4] if you want to remove lx[2-4] and add lx0 at the same time.
NOTE: When updating a reservation, if Nodes and Nodecnt are set simultaneously, nodecnt will
always be honored. The reservation will get a subset of nodes if nodes > nodecnt, or it will add
extra nodes to the list when nodes < nodecnt.
StartTime=<time_spec>
The start time for the reservation. A new reservation must specify a start time. It accepts times
of the form HH:MM:SS for a specific time of day (seconds are optional). (If that time is already
past, the next day is assumed.) You may also specify midnight, noon, elevenses (11 AM), fika (3
PM) or teatime (4 PM) and you can have a time-of-day suffixed with AM or PM for running in the
morning or the evening. You can also say what day the job will be run, by specifying a date of
the form MMDDYY or MM/DD/YY or MM.DD.YY, or a date and time as YYYY-MM-DD[THH:MM[:SS]]. You can
also give times like now + count time-units, where the time-units can be seconds (default),
minutes, hours, days, or weeks and you can tell Slurm to run the job today with the keyword today
and to run the job tomorrow with the keyword tomorrow. You cannot update the StartTime of a
reservation in ACTIVE state.
EndTime=<time_spec>
The end time for the reservation. A new reservation must specify an end time or a duration. Valid
formats are the same as for StartTime.
Duration=<time>
The length of a reservation. A new reservation must specify an end time or a duration. Valid
formats are minutes, minutes:seconds, 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. Output format is always [days-]hours:minutes:seconds.
PartitionName=<name>
Partition used to reserve nodes from. This will attempt to allocate all nodes in the specified
partition unless you request fewer resources than are available with CoreCnt, NodeCnt or TRES. If
no partition is specified at submit time, this partition will override the job's default
partition. Jobs explicitly requesting a different partition will still be allowed to use this
reservation as long as there are enough overlapping nodes between both partitions to allocate the
job.
Flags=<flags>
Flags associated with the reservation. You can add or remove individual flags from an existing
reservation by adding a '+' or '-' sign before the '=' sign. For example: Flags-=DAILY (NOTE: This
shortcut is not supported for all flags). Currently supported flags include:
ANY_NODES This is a reservation for burst buffers and/or licenses only and not compute nodes.
If this flag is set, a job using this reservation may use the associated burst
buffers and/or licenses plus any compute nodes. If this flag is not set, a job
using this reservation may use only the nodes and licenses associated with the
reservation.
DAILY Repeat the reservation at the same time every day.
FLEX Permit jobs requesting the reservation to begin prior to the reservation's start
time, end after the reservation's end time, and use any resources inside and/or
outside of the reservation regardless of any constraints possibly set in the
reservation. A typical use case is to prevent jobs not explicitly requesting the
reservation from using those reserved resources rather than forcing jobs requesting
the reservation to use those resources in the time frame reserved. Another use case
could be to always have a particular number of nodes with a specific feature
reserved for a specific account so users in this account may use this nodes plus
possibly other nodes without this feature.
IGNORE_JOBS Ignore currently running jobs when creating the reservation. This can be especially
useful when reserving all nodes in the system for maintenance.
HOURLY Repeat the reservation at the same time every hour.
LICENSE_ONLY See ANY_NODES.
MAINT Maintenance mode, receives special accounting treatment. This reservation is
permitted to use resources that are already in another reservation. The MAINT flag
behaves similar to STATIC_ALLOC (see below) in that it will not replace nodes once
they are set.
MAGNETIC This flag allows jobs to be considered for this reservation even if they didn't
request it.
NO_HOLD_JOBS_AFTER
By default, when a reservation ends the reservation request will be removed from any
pending jobs submitted to the reservation and will be put into a held state. Use
this flag to let jobs run outside of the reservation after the reservation is gone.
Flag removal with '-=' is not supported.
OVERLAP This reservation can be allocated resources that are already in another reservation.
Flag removal with '-=' is not supported.
PART_NODES This flag can be used to reserve all nodes within the specified partition.
PartitionName and Nodes=ALL must be specified with this flag.
PURGE_COMP[=<timespec>]
Purge the reservation if it is ever idle for timespec (no jobs associated with it).
If timespec isn't given then 5 minutes is the default. Valid timespec formats are
minutes, minutes:seconds, hours:minutes:seconds, days-hours, days-hours:minutes,
days-hours:minutes:seconds. Time resolution is one minute and second values are
rounded up to the next minute. Output format is always [days-]hours:minutes:seconds.
REPLACE Nodes which are DOWN, DRAINED, or allocated to jobs are automatically replenished
using idle resources. This option can be used to maintain a constant number of idle
resources available for pending jobs (subject to availability of idle resources).
This should be used with the NodeCnt reservation option; do not identify specific
nodes to be included in the reservation. Flag removal with '-=' is not supported.
NOTE: Removing a node from the cluster while in a reservation with the REPLACE flag
will not cause it to be replaced.
REPLACE_DOWN Nodes which are DOWN or DRAINED are automatically replenished using idle resources.
This is the default behavior. This option can be used to maintain a constant sized
pool of resources available for pending jobs (subject to availability of idle
resources). This should be used with the NodeCnt reservation option; do not
identify specific nodes to be included in the reservation. Flag removal with '-=' is
not supported.
NOTE: Removing a node from the cluster while in a reservation with the REPLACE_DOWN
flag will not cause it to be replaced.
SPEC_NODES Reservation is for specific nodes (output only).
STATIC_ALLOC Make it so after the nodes are selected for a reservation they don't change. Without
this option when nodes are selected for a reservation and one goes down the
reservation will select a new node to fill the spot.
TIME_FLOAT The reservation start time is relative to the current time and moves forward through
time (e.g. a StartTime=now+10minutes will always be 10 minutes in the future).
Repeating (e.g. DAILY) floating reservations are not supported. Flag cannot be added
to or removed from an existing reservation.
USER_DELETE Allow any user able to run in the reservation to delete it.
WEEKDAY Repeat the reservation at the same time on every weekday (Monday, Tuesday,
Wednesday, Thursday and Friday).
WEEKEND Repeat the reservation at the same time on every weekend day (Saturday and Sunday).
WEEKLY Repeat the reservation at the same time every week.
Features=<features>
Set the reservation's required node features. Multiple values may be "&" separated if all features
are required (AND operation) or separated by "|" if any of the specified features are required (OR
operation). Parenthesis are also supported for features to be ANDed together with counts of nodes
having the specified features. For example "Features=[(knl&a2a&flat)*4&haswell*2]" indicates the
advanced reservation should include 4 nodes with ALL of the features "knl", "a2a", and "flat" plus
2 nodes with the feature "haswell".
Value may be cleared with blank data value, "Features=".
Groups=<group list>
List of groups permitted to use the reserved nodes, for example "Group=bio,chem". A new
reservation must specify Users or Groups and/or Accounts. If both Users/Groups and Accounts are
specified, a job must match both in order to use the reservation. Unlike users groups do not
allow denied access to reservations. You can add or remove individual groups from an existing
reservation by using the update command and adding a '+' or '-' sign before the '=' sign. Root
and the SlurmUser are given access to all reservations, regardless of the groups set here. NOTE:
Groups and Users are mutually exclusive in reservations, if you want to switch between the 2 you
must update the reservation with a group='' or user='' and fill in the opposite with the
appropriate setting.
Skip Used on a reoccurring reservation, skip to the next reservation iteration. NOTE: Only available
for update.
Users=<user list>
List of users permitted to use the reserved nodes, for example "User=jones1,smith2". A new
reservation must specify Users or Groups and/or Accounts. If both Users/Groups and Accounts are
specified, a job must match both in order to use the reservation. Users can also be denied access
to reservations by preceding all of the user names with '-'. Alternately precede the equal sign
with '-'. For example, "User=-jones1,-smith2" or "User-=jones1,smith2" will permit any user
except jones1 and smith2 to use the reservation. You can add or remove individual users from an
existing reservation by using the update command and adding a '+' or '-' sign before the '=' sign.
If users are denied access to a reservation (user name preceded by a '-'), then all other users
are implicitly allowed to use the reservation and it is not possible to also explicitly specify
allowed users. Root and the SlurmUser are given access to all reservations, regardless of the
users set here. NOTE: Groups and Users are mutually exclusive in reservations, if you want to
switch between the 2 you must update the reservation with a group='' or user='' and fill in the
opposite with the appropriate setting.
TRES=<tres_spec>
Comma-separated list of TRES required for the reservation. Current supported TRES types with
reservations are: CPU, GRES, Node, License and BB. CPU and Node follow the same format as CoreCnt
and NodeCnt parameters respectively. License names can be followed by an equal '=' and a count:
License/<name1>=<count1>[,License/<name2>=<count2>,...]
BurstBuffer can be specified in a similar way as BurstBuffer parameter. The only difference is
that colon symbol ':' should be replaced by an equal '=' in order to follow the TRES format.
Some examples of TRES valid specifications:
TRES=cpu=5,bb/cray=4,license/iop1=1,license/iop2=3
TRES=node=5k,license/iop1=2
TRES=gres/gpu:a100=2
Please note that CPU, Node, License and BB can override CoreCnt, NodeCnt, Licenses and BurstBuffer
parameters respectively. Also CPU represents CoreCnt, in a reservation and will be adjusted if you
have threads per core on your nodes.
Note that a reservation that contains nodes or cores is associated with one partition, and can't
span resources over multiple partitions. The only exception from this is when the reservation is
created with explicitly requested nodes.
Note that if GRES is requested those GRES must be TRES listed in AccountingStorageTRES to be
valid.
TRESPerNode=<tres_spec>
Comma-separated list of TRES required per node for the reservation. See TRES above for supported
types.
TRESPerNode=gres/gpu:a100=2
Above will allocate 2 gpu:a100 per node as specified in nodecnt.
PERFORMANCE
Executing scontrol sends a remote procedure call to slurmctld. If enough calls from scontrol or other
Slurm client commands that send remote procedure calls to the slurmctld daemon come in at once, it can
result in a degradation of performance of the slurmctld daemon, possibly resulting in a denial of
service.
Do not run scontrol or other Slurm client commands that send remote procedure calls to slurmctld from
loops in shell scripts or other programs. Ensure that programs limit calls to scontrol to the minimum
necessary for the information you are trying to gather.
ENVIRONMENT VARIABLES
Some scontrol options may be set via environment variables. These environment variables, along with their
corresponding options, are listed below. (Note: Command line options will always override these
settings.)
SCONTROL_ALL -a, --all
SCONTROL_FEDERATION --federation
SCONTROL_FUTURE -F, --future
SCONTROL_LOCAL --local
SCONTROL_SIBLING --sibling
SLURM_BITSTR_LEN Specifies the string length to be used for holding a job array's task ID expression.
The default value is 64 bytes. A value of 0 will print the full expression with any
length required. Larger values may adversely impact the application performance.
SLURM_CLUSTERS Same as --clusters
SLURM_CONF The location of the Slurm configuration file.
SLURM_CONF_OUT When running 'write config', the location of the Slurm configuration file to be
written.
SLURM_DEBUG_FLAGS Specify debug flags for scontrol to use. See DebugFlags in the slurm.conf(5) man page
for a full list of flags. The environment variable takes precedence over the setting
in the slurm.conf.
SLURM_TIME_FORMAT Specify the format used to report time stamps. A value of standard, the default
value, generates output in the form "year-month-dateThour:minute:second". A value of
relative returns only "hour:minute:second" if the current day. For other dates in
the current year it prints the "hour:minute" preceded by "Tomorr" (tomorrow),
"Ystday" (yesterday), the name of the day for the coming week (e.g. "Mon", "Tue",
etc.), otherwise the date (e.g. "25 Apr"). For other years it returns a date month
and year without a time (e.g. "6 Jun 2012"). All of the time stamps use a 24 hour
format.
A valid strftime() format can also be specified. For example, a value of "%a %T" will
report the day of the week and a time stamp (e.g. "Mon 12:34:56").
SLURM_TOPO_LEN Specify the maximum size of the line when printing Topology. If not set, the default
value is unlimited.
AUTHORIZATION
When using SlurmDBD, users who have an AdminLevel defined (Operator or Admin) and users who are account
coordinators are given the authority to view and modify jobs, reservations, nodes, etc., as defined in
the following table - regardless of whether a PrivateData restriction has been defined in the slurm.conf
file.
scontrol show job(s): Admin, Operator, Coordinator
scontrol update job: Admin, Operator, Coordinator
scontrol requeue: Admin, Operator, Coordinator
scontrol show step(s): Admin, Operator, Coordinator
scontrol update step: Admin, Operator, Coordinator
scontrol show node: Admin, Operator
scontrol update node: Admin
scontrol create partition: Admin
scontrol show partition: Admin, Operator
scontrol update partition: Admin
scontrol delete partition: Admin
scontrol create reservation: Admin, Operator
scontrol show reservation: Admin, Operator
scontrol update reservation: Admin, Operator
scontrol delete reservation: Admin, Operator
scontrol reconfig: Admin
scontrol shutdown: Admin
scontrol takeover: Admin
EXAMPLES
$ scontrol
scontrol: show part debug
PartitionName=debug
AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
AllocNodes=ALL Default=YES QoS=N/A
DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO ExclusiveTopo=NO GraceTime=0 Hidden=NO
MaxNodes=UNLIMITED MaxTime=UNLIMITED MinNodes=0 LLN=NO MaxCPUsPerNode=UNLIMITED MaxCPUsPerSocket=UNLIMITED
NodeSets=ALL
Nodes=snowflake[0-48]
PriorityJobFactor=100 PriorityTier=100 RootOnly=NO ReqResv=NO OverSubscribe=NO
OverTimeLimit=NONE PreemptMode=REQUEUE
State=UP TotalCPUs=588 TotalNodes=49 SelectTypeParameters=NONE
JobDefaults=(null)
DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED
TRES=cpu=588,mem=1204224M,node=49,billing=49
scontrol: update PartitionName=debug MaxTime=60:00 MaxNodes=4
scontrol: show job 71701
JobId=71701 Name=hostname
UserId=da(1000) GroupId=da(1000)
Priority=66264 Account=none QOS=normal WCKey=*123
JobState=COMPLETED Reason=None Dependency=(null)
TimeLimit=UNLIMITED Requeue=1 Restarts=0 BatchFlag=0 ExitCode=0:0
SubmitTime=2010-01-05T10:58:40 EligibleTime=2010-01-05T10:58:40
StartTime=2010-01-05T10:58:40 EndTime=2010-01-05T10:58:40
SuspendTime=None SecsPreSuspend=0
Partition=debug AllocNode:Sid=snowflake:4702
ReqNodeList=(null) ExcNodeList=(null)
NodeList=snowflake0
NumNodes=1 NumCPUs=10 CPUs/Task=2 ReqS:C:T=1:1:1
MinCPUsNode=2 MinMemoryNode=0 MinTmpDiskNode=0
Features=(null) Reservation=(null)
OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)
scontrol: update JobId=71701 TimeLimit=30:00 Priority=500
scontrol: show hostnames tux[1-3]
tux1
tux2
tux3
scontrol: create res StartTime=2009-04-01T08:00:00 Duration=5:00:00 Users=dbremer NodeCnt=10
Reservation created: dbremer_1
scontrol: update Reservation=dbremer_1 Flags=Maint NodeCnt=20
scontrol: delete Reservation=dbremer_1
scontrol: quit
COPYING
Copyright (C) 2002-2007 The Regents of the University of California. Produced 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 details.
FILES
/etc/slurm.conf
SEE ALSO
scancel(1), sinfo(1), squeue(1), slurm_create_partition (3), slurm_delete_partition (3),
slurm_load_ctl_conf (3), slurm_load_jobs (3), slurm_load_node (3), slurm_load_partitions (3),
slurm_reconfigure (3), slurm_requeue (3), slurm_resume (3), slurm_shutdown (3), slurm_suspend (3),
slurm_takeover (3), slurm_update_job (3), slurm_update_node (3), slurm_update_partition (3),
slurm.conf(5), slurmctld(8)
November 2024 Slurm Commands scontrol(1)