1salloc(1)                       Slurm Commands                       salloc(1)
2
3
4

NAME

6       salloc - Obtain a Slurm job allocation (a set of nodes), execute a com‐
7       mand, and then release the allocation when the command is finished.
8
9

SYNOPSIS

11       salloc [OPTIONS(0)...] [ : [OPTIONS(N)...]] [command(0) [args(0)...]]
12
13       Option(s) define multiple jobs in  a  co-scheduled  heterogeneous  job.
14       For more details about heterogeneous jobs see the document
15       https://slurm.schedmd.com/heterogeneous_jobs.html
16
17

DESCRIPTION

19       salloc  is  used  to allocate a Slurm job allocation, which is a set of
20       resources (nodes), possibly with some set of constraints  (e.g.  number
21       of  processors  per  node).   When  salloc successfully obtains the re‐
22       quested allocation, it then runs the command  specified  by  the  user.
23       Finally,  when  the  user  specified command is complete, salloc relin‐
24       quishes the job allocation.
25
26       The command may be any program the user wishes.  Some typical  commands
27       are  xterm,  a shell script containing srun commands, and srun (see the
28       EXAMPLES section). If no command is specified,  then  salloc  runs  the
29       user's default shell.
30
31       The  following  document  describes the influence of various options on
32       the allocation of cpus to jobs and tasks.
33       https://slurm.schedmd.com/cpu_management.html
34
35       NOTE: The salloc logic includes support to save and restore the  termi‐
36       nal  line settings and is designed to be executed in the foreground. If
37       you need to execute salloc in the background, set its standard input to
38       some file, for example: "salloc -n16 a.out </dev/null &"
39
40

RETURN VALUE

42       If  salloc  is unable to execute the user command, it will return 1 and
43       print errors to stderr. Else if success or if killed  by  signals  HUP,
44       INT, KILL, or QUIT: it will return 0.
45
46

COMMAND PATH RESOLUTION

48       If provided, the command is resolved in the following order:
49
50       1.  If  command  starts  with ".", then path is constructed as: current
51       working directory / command
52       2. If command starts with a "/", then path is considered absolute.
53       3. If command can be resolved through PATH. See path_resolution(7).
54       4. If command is in current working directory.
55
56       Current working directory is the calling process working directory  un‐
57       less  the  --chdir  argument is passed, which will override the current
58       working directory.
59
60

OPTIONS

62       -A, --account=<account>
63              Charge resources used by this job to specified account.  The ac‐
64              count  is  an  arbitrary string. The account name may be changed
65              after job submission using the scontrol command.
66
67
68       --acctg-freq
69              Define the job  accounting  and  profiling  sampling  intervals.
70              This  can be used to override the JobAcctGatherFrequency parame‐
71              ter in Slurm's configuration file,  slurm.conf.   The  supported
72              format is as follows:
73
74              --acctg-freq=<datatype>=<interval>
75                          where  <datatype>=<interval> specifies the task sam‐
76                          pling interval for the jobacct_gather  plugin  or  a
77                          sampling  interval  for  a  profiling  type  by  the
78                          acct_gather_profile  plugin.  Multiple,  comma-sepa‐
79                          rated  <datatype>=<interval> intervals may be speci‐
80                          fied. Supported datatypes are as follows:
81
82                          task=<interval>
83                                 where <interval> is the task sampling  inter‐
84                                 val in seconds for the jobacct_gather plugins
85                                 and    for    task    profiling    by     the
86                                 acct_gather_profile  plugin.  NOTE: This fre‐
87                                 quency is used to monitor  memory  usage.  If
88                                 memory  limits  are enforced the highest fre‐
89                                 quency a user can request is what is  config‐
90                                 ured  in  the  slurm.conf file.  They can not
91                                 turn it off (=0) either.
92
93                          energy=<interval>
94                                 where <interval> is the sampling interval  in
95                                 seconds   for   energy  profiling  using  the
96                                 acct_gather_energy plugin
97
98                          network=<interval>
99                                 where <interval> is the sampling interval  in
100                                 seconds  for  infiniband  profiling using the
101                                 acct_gather_interconnect plugin.
102
103                          filesystem=<interval>
104                                 where <interval> is the sampling interval  in
105                                 seconds  for  filesystem  profiling using the
106                                 acct_gather_filesystem plugin.
107
108              The default value for the task  sampling  in‐
109              terval
110              is  30.  The default value for all other intervals is 0.  An in‐
111              terval of 0 disables sampling of the  specified  type.   If  the
112              task sampling interval is 0, accounting information is collected
113              only at job termination (reducing Slurm  interference  with  the
114              job).
115              Smaller (non-zero) values have a greater impact upon job perfor‐
116              mance, but a value of 30 seconds is not likely to be  noticeable
117              for applications having less than 10,000 tasks.
118
119
120       -B --extra-node-info=<sockets[:cores[:threads]]>
121              Restrict  node  selection  to  nodes with at least the specified
122              number of sockets, cores per socket  and/or  threads  per  core.
123              NOTE: These options do not specify the resource allocation size.
124              Each value specified is considered a minimum.  An  asterisk  (*)
125              can  be  used as a placeholder indicating that all available re‐
126              sources of that type are to be  utilized.  Values  can  also  be
127              specified  as  min-max. The individual levels can also be speci‐
128              fied in separate options if desired:
129                  --sockets-per-node=<sockets>
130                  --cores-per-socket=<cores>
131                  --threads-per-core=<threads>
132              If task/affinity plugin is enabled, then specifying  an  alloca‐
133              tion  in this manner also results in subsequently launched tasks
134              being bound to threads if  the  -B  option  specifies  a  thread
135              count,  otherwise  an  option of cores if a core count is speci‐
136              fied, otherwise an option of sockets.  If SelectType is  config‐
137              ured  to  select/cons_res,  it must have a parameter of CR_Core,
138              CR_Core_Memory, CR_Socket, or CR_Socket_Memory for  this  option
139              to  be  honored.   If  not specified, the scontrol show job will
140              display 'ReqS:C:T=*:*:*'. This option  applies  to  job  alloca‐
141              tions.   NOTE:  This  option  is mutually exclusive with --hint,
142              --threads-per-core and --ntasks-per-core.
143
144
145       --bb=<spec>
146              Burst buffer specification. The form  of  the  specification  is
147              system  dependent.   Note the burst buffer may not be accessible
148              from a login node, but require that salloc spawn a shell on  one
149              of its allocated compute nodes.
150
151
152       --bbf=<file_name>
153              Path of file containing burst buffer specification.  The form of
154              the specification is system dependent.  Also see --bb.  Note the
155              burst  buffer  may  not be accessible from a login node, but re‐
156              quire that salloc spawn a shell on one of its allocated  compute
157              nodes.
158
159
160       --begin=<time>
161              Defer  eligibility  of  this  job allocation until the specified
162              time.
163
164              Time may be of the form HH:MM:SS to run a job at a specific time
165              of  day  (seconds are optional).  (If that time is already past,
166              the next day is assumed.)  You may also specify midnight,  noon,
167              fika  (3  PM)  or  teatime (4 PM) and you can have a time-of-day
168              suffixed with AM or  PM  for  running  in  the  morning  or  the
169              evening.   You  can  also  say  what day the job will be run, by
170              specifying a date of the form  MMDDYY  or  MM/DD/YY  YYYY-MM-DD.
171              Combine    date    and   time   using   the   following   format
172              YYYY-MM-DD[THH:MM[:SS]]. You can also  give  times  like  now  +
173              count time-units, where the time-units can be seconds (default),
174              minutes, hours, days, or weeks and you can tell Slurm to run the
175              job  today  with  the  keyword today and to run the job tomorrow
176              with the keyword tomorrow.  The value may be changed  after  job
177              submission using the scontrol command.  For example:
178                 --begin=16:00
179                 --begin=now+1hour
180                 --begin=now+60           (seconds by default)
181                 --begin=2010-01-20T12:34:00
182
183
184              Notes on date/time specifications:
185               -  Although the 'seconds' field of the HH:MM:SS time specifica‐
186              tion is allowed by the code, note that  the  poll  time  of  the
187              Slurm  scheduler  is not precise enough to guarantee dispatch of
188              the job on the exact second.  The job will be eligible to  start
189              on  the  next  poll following the specified time. The exact poll
190              interval depends on the Slurm scheduler (e.g., 60  seconds  with
191              the default sched/builtin).
192               -   If   no  time  (HH:MM:SS)  is  specified,  the  default  is
193              (00:00:00).
194               - If a date is specified without a year (e.g., MM/DD) then  the
195              current  year  is  assumed,  unless the combination of MM/DD and
196              HH:MM:SS has already passed for that year,  in  which  case  the
197              next year is used.
198
199
200       --bell Force  salloc  to ring the terminal bell when the job allocation
201              is granted (and only if stdout is a tty).   By  default,  salloc
202              only  rings  the bell if the allocation is pending for more than
203              ten seconds (and only if stdout is a tty). Also see  the  option
204              --no-bell.
205
206
207       --cluster-constraint=<list>
208              Specifies  features that a federated cluster must have to have a
209              sibling job submitted to it. Slurm will attempt to submit a sib‐
210              ling  job  to  a cluster if it has at least one of the specified
211              features.
212
213
214       --comment=<string>
215              An arbitrary comment.
216
217
218       -C, --constraint=<list>
219              Nodes can have features assigned to them by the  Slurm  adminis‐
220              trator.   Users can specify which of these features are required
221              by their job using the constraint  option.   Only  nodes  having
222              features  matching  the  job constraints will be used to satisfy
223              the request.  Multiple constraints may be  specified  with  AND,
224              OR,  matching  OR, resource counts, etc. (some operators are not
225              supported on all system types).   Supported  constraint  options
226              include:
227
228              Single Name
229                     Only nodes which have the specified feature will be used.
230                     For example, --constraint="intel"
231
232              Node Count
233                     A request can specify the number  of  nodes  needed  with
234                     some feature by appending an asterisk and count after the
235                     feature   name.    For   example,    --nodes=16    --con‐
236                     straint="graphics*4 ..."  indicates that the job requires
237                     16 nodes and that at least four of those nodes must  have
238                     the feature "graphics."
239
240              AND    If  only  nodes  with  all  of specified features will be
241                     used.  The ampersand is used for an  AND  operator.   For
242                     example, --constraint="intel&gpu"
243
244              OR     If  only  nodes  with  at least one of specified features
245                     will be used.  The vertical bar is used for an OR  opera‐
246                     tor.  For example, --constraint="intel|amd"
247
248              Matching OR
249                     If  only  one of a set of possible options should be used
250                     for all allocated nodes, then use the OR operator and en‐
251                     close  the  options within square brackets.  For example,
252                     --constraint="[rack1|rack2|rack3|rack4]" might be used to
253                     specify that all nodes must be allocated on a single rack
254                     of the cluster, but any of those four racks can be used.
255
256              Multiple Counts
257                     Specific counts of multiple resources may be specified by
258                     using  the  AND operator and enclosing the options within
259                     square      brackets.       For      example,      --con‐
260                     straint="[rack1*2&rack2*4]" might be used to specify that
261                     two nodes must be allocated from nodes with  the  feature
262                     of  "rack1"  and  four nodes must be allocated from nodes
263                     with the feature "rack2".
264
265                     NOTE: This construct does not support multiple Intel  KNL
266                     NUMA   or   MCDRAM   modes.  For  example,  while  --con‐
267                     straint="[(knl&quad)*2&(knl&hemi)*4]" is  not  supported,
268                     --constraint="[haswell*2&(knl&hemi)*4]"   is   supported.
269                     Specification of multiple KNL modes requires the use of a
270                     heterogeneous job.
271
272              Brackets
273                     Brackets can be used to indicate that you are looking for
274                     a set of nodes with the different requirements  contained
275                     within     the     brackets.    For    example,    --con‐
276                     straint="[(rack1|rack2)*1&(rack3)*2]" will  get  you  one
277                     node  with either the "rack1" or "rack2" features and two
278                     nodes with the "rack3" feature.  The same request without
279                     the  brackets  will  try to find a single node that meets
280                     those requirements.
281
282              Parenthesis
283                     Parenthesis can be used to group like node  features  to‐
284                     gether.           For           example,           --con‐
285                     straint="[(knl&snc4&flat)*4&haswell*1]" might be used  to
286                     specify  that  four nodes with the features "knl", "snc4"
287                     and "flat" plus one node with the feature  "haswell"  are
288                     required.   All  options  within  parenthesis  should  be
289                     grouped with AND (e.g. "&") operands.
290
291
292       --contiguous
293              If set, then the allocated nodes must form a contiguous set.
294
295              NOTE: If SelectPlugin=cons_res this option won't be honored with
296              the  topology/tree  or  topology/3d_torus plugins, both of which
297              can modify the node ordering.
298
299
300       --cores-per-socket=<cores>
301              Restrict node selection to nodes with  at  least  the  specified
302              number of cores per socket.  See additional information under -B
303              option above when task/affinity plugin is enabled.
304
305
306       --cpu-freq =<p1[-p2[:p3]]>
307
308              Request that job steps initiated by srun  commands  inside  this
309              allocation  be  run  at some requested frequency if possible, on
310              the CPUs selected for the step on the compute node(s).
311
312              p1 can be  [#### | low | medium | high | highm1] which will  set
313              the  frequency scaling_speed to the corresponding value, and set
314              the frequency scaling_governor to UserSpace. See below for defi‐
315              nition of the values.
316
317              p1  can  be  [Conservative | OnDemand | Performance | PowerSave]
318              which will set the scaling_governor to the corresponding  value.
319              The  governor has to be in the list set by the slurm.conf option
320              CpuFreqGovernors.
321
322              When p2 is present, p1 will be the minimum scaling frequency and
323              p2 will be the maximum scaling frequency.
324
325              p2  can  be   [#### | medium | high | highm1] p2 must be greater
326              than p1.
327
328              p3 can be [Conservative | OnDemand | Performance |  PowerSave  |
329              UserSpace]  which  will  set  the  governor to the corresponding
330              value.
331
332              If p3 is UserSpace, the frequency scaling_speed will be set by a
333              power  or energy aware scheduling strategy to a value between p1
334              and p2 that lets the job run within the site's power  goal.  The
335              job  may be delayed if p1 is higher than a frequency that allows
336              the job to run within the goal.
337
338              If the current frequency is < min, it will be set to min.  Like‐
339              wise, if the current frequency is > max, it will be set to max.
340
341              Acceptable values at present include:
342
343              ####          frequency in kilohertz
344
345              Low           the lowest available frequency
346
347              High          the highest available frequency
348
349              HighM1        (high  minus  one)  will  select  the next highest
350                            available frequency
351
352              Medium        attempts to set a frequency in the middle  of  the
353                            available range
354
355              Conservative  attempts to use the Conservative CPU governor
356
357              OnDemand      attempts to use the OnDemand CPU governor (the de‐
358                            fault value)
359
360              Performance   attempts to use the Performance CPU governor
361
362              PowerSave     attempts to use the PowerSave CPU governor
363
364              UserSpace     attempts to use the UserSpace CPU governor
365
366
367              The following informational environment variable  is  set
368              in the job
369              step when --cpu-freq option is requested.
370                      SLURM_CPU_FREQ_REQ
371
372              This  environment  variable can also be used to supply the value
373              for the CPU frequency request if it is set when the 'srun'  com‐
374              mand  is  issued.  The --cpu-freq on the command line will over‐
375              ride the environment variable value.  The form on  the  environ‐
376              ment variable is the same as the command line.  See the ENVIRON‐
377              MENT   VARIABLES   section   for   a    description    of    the
378              SLURM_CPU_FREQ_REQ variable.
379
380              NOTE: This parameter is treated as a request, not a requirement.
381              If the job step's node does not support  setting  the  CPU  fre‐
382              quency,  or the requested value is outside the bounds of the le‐
383              gal frequencies, an error is logged, but the job step is allowed
384              to continue.
385
386              NOTE:  Setting  the  frequency for just the CPUs of the job step
387              implies that the tasks are confined to those CPUs.  If task con‐
388              finement    (i.e.,    TaskPlugin=task/affinity    or    TaskPlu‐
389              gin=task/cgroup with the "ConstrainCores" option) is not config‐
390              ured, this parameter is ignored.
391
392              NOTE:  When  the  step  completes, the frequency and governor of
393              each selected CPU is reset to the previous values.
394
395              NOTE: When submitting jobs with  the --cpu-freq option with lin‐
396              uxproc  as  the  ProctrackType can cause jobs to run too quickly
397              before Accounting is able to poll for job information. As a  re‐
398              sult not all of accounting information will be present.
399
400
401       --cpus-per-gpu=<ncpus>
402              Advise  Slurm  that ensuing job steps will require ncpus proces‐
403              sors per allocated GPU.  Not compatible with the --cpus-per-task
404              option.
405
406
407       -c, --cpus-per-task=<ncpus>
408              Advise  Slurm  that ensuing job steps will require ncpus proces‐
409              sors per task. By default Slurm will allocate one processor  per
410              task.
411
412              For instance, consider an application that has 4 tasks, each re‐
413              quiring 3 processors.  If our cluster is comprised of  quad-pro‐
414              cessors  nodes  and  we  simply  ask for 12 processors, the con‐
415              troller might give us only  3  nodes.   However,  by  using  the
416              --cpus-per-task=3  options,  the controller knows that each task
417              requires 3 processors on the same node, and the controller  will
418              grant an allocation of 4 nodes, one for each of the 4 tasks.
419
420
421       --deadline=<OPT>
422              remove  the  job  if  no ending is possible before this deadline
423              (start > (deadline -  time[-min])).   Default  is  no  deadline.
424              Valid time formats are:
425              HH:MM[:SS] [AM|PM]
426              MMDD[YY] or MM/DD[/YY] or MM.DD[.YY]
427              MM/DD[/YY]-HH:MM[:SS]
428              YYYY-MM-DD[THH:MM[:SS]]]
429              now[+count[seconds(default)|minutes|hours|days|weeks]]
430
431
432       --delay-boot=<minutes>
433              Do  not  reboot  nodes  in order to satisfied this job's feature
434              specification if the job has been eligible to run for less  than
435              this time period.  If the job has waited for less than the spec‐
436              ified period, it will use only  nodes  which  already  have  the
437              specified features.  The argument is in units of minutes.  A de‐
438              fault value may be set by a system administrator using  the  de‐
439              lay_boot option of the SchedulerParameters configuration parame‐
440              ter in the slurm.conf file, otherwise the default value is  zero
441              (no delay).
442
443
444       -d, --dependency=<dependency_list>
445              Defer  the  start  of  this job until the specified dependencies
446              have been satisfied completed.  <dependency_list> is of the form
447              <type:job_id[:job_id][,type:job_id[:job_id]]>                 or
448              <type:job_id[:job_id][?type:job_id[:job_id]]>.  All dependencies
449              must  be satisfied if the "," separator is used.  Any dependency
450              may be satisfied if the "?" separator is used.  Only one separa‐
451              tor  may  be  used.  Many jobs can share the same dependency and
452              these jobs may even belong to different  users. The   value  may
453              be changed after job submission using the scontrol command.  De‐
454              pendencies on remote jobs are allowed in a federation.   Once  a
455              job dependency fails due to the termination state of a preceding
456              job, the dependent job will never be run, even if the  preceding
457              job  is requeued and has a different termination state in a sub‐
458              sequent execution.
459
460              after:job_id[[+time][:jobid[+time]...]]
461                     After the specified  jobs  start  or  are  cancelled  and
462                     'time' in minutes from job start or cancellation happens,
463                     this job can begin execution. If no 'time' is given  then
464                     there is no delay after start or cancellation.
465
466              afterany:job_id[:jobid...]
467                     This  job  can  begin  execution after the specified jobs
468                     have terminated.
469
470              afterburstbuffer:job_id[:jobid...]
471                     This job can begin execution  after  the  specified  jobs
472                     have terminated and any associated burst buffer stage out
473                     operations have completed.
474
475              aftercorr:job_id[:jobid...]
476                     A task of this job array can begin  execution  after  the
477                     corresponding  task ID in the specified job has completed
478                     successfully (ran to completion  with  an  exit  code  of
479                     zero).
480
481              afternotok:job_id[:jobid...]
482                     This  job  can  begin  execution after the specified jobs
483                     have terminated in some failed state (non-zero exit code,
484                     node failure, timed out, etc).
485
486              afterok:job_id[:jobid...]
487                     This  job  can  begin  execution after the specified jobs
488                     have successfully executed (ran  to  completion  with  an
489                     exit code of zero).
490
491              expand:job_id
492                     Resources  allocated to this job should be used to expand
493                     the specified job.  The job to expand must share the same
494                     QOS  (Quality of Service) and partition.  Gang scheduling
495                     of resources in the  partition  is  also  not  supported.
496                     "expand" is not allowed for jobs that didn't originate on
497                     the same cluster as the submitted job.
498
499              singleton
500                     This  job  can  begin  execution  after  any   previously
501                     launched  jobs  sharing  the  same job name and user have
502                     terminated.  In other words, only one job  by  that  name
503                     and owned by that user can be running or suspended at any
504                     point in time.  In a federation, a  singleton  dependency
505                     must be fulfilled on all clusters unless DependencyParam‐
506                     eters=disable_remote_singleton is used in slurm.conf.
507
508
509       -D, --chdir=<path>
510              Change directory to path before beginning  execution.  The  path
511              can  be specified as full path or relative path to the directory
512              where the command is executed.
513
514
515       --exclusive[=user|mcs]
516              The job allocation can not share nodes with other  running  jobs
517              (or  just other users with the "=user" option or with the "=mcs"
518              option).  The default shared/exclusive behavior depends on  sys‐
519              tem configuration and the partition's OverSubscribe option takes
520              precedence over the job's option.
521
522
523       -F, --nodefile=<node file>
524              Much like --nodelist, but the list is contained  in  a  file  of
525              name node file.  The node names of the list may also span multi‐
526              ple lines in the file.    Duplicate node names in the file  will
527              be  ignored.  The order of the node names in the list is not im‐
528              portant; the node names will be sorted by Slurm.
529
530
531       --get-user-env[=timeout][mode]
532              This option will load login environment variables for  the  user
533              specified  in  the  --uid option.  The environment variables are
534              retrieved by running something of this sort "su - <username>  -c
535              /usr/bin/env"  and  parsing the output.  Be aware that any envi‐
536              ronment variables already set in salloc's environment will  take
537              precedence  over  any  environment variables in the user's login
538              environment.  The optional timeout value is in seconds.  Default
539              value  is  3  seconds.  The optional mode value control the "su"
540              options.  With a mode value of "S", "su" is executed without the
541              "-" option.  With a mode value of "L", "su" is executed with the
542              "-" option, replicating the  login  environment.   If  mode  not
543              specified,  the  mode  established  at Slurm build time is used.
544              Example of  use  include  "--get-user-env",  "--get-user-env=10"
545              "--get-user-env=10L", and "--get-user-env=S".  NOTE: This option
546              only works if the caller has an effective uid of "root".
547
548
549       --gid=<group>
550              Submit the job with the specified group's group  access  permis‐
551              sions.   group  may be the group name or the numerical group ID.
552              In the default Slurm configuration, this option  is  only  valid
553              when used by the user root.
554
555
556       -G, --gpus=[<type>:]<number>
557              Specify  the  total number of GPUs required for the job.  An op‐
558              tional GPU type specification  can  be  supplied.   For  example
559              "--gpus=volta:3".   Multiple options can be requested in a comma
560              separated list,  for  example:  "--gpus=volta:3,kepler:1".   See
561              also  the --gpus-per-node, --gpus-per-socket and --gpus-per-task
562              options.
563
564
565       --gpu-bind=[verbose,]<type>
566              Bind tasks to specific GPUs.  By default every spawned task  can
567              access  every GPU allocated to the job.  If "verbose," is speci‐
568              fied before <type>, then print out GPU binding information.
569
570              Supported type options:
571
572              closest   Bind each task to the GPU(s) which are closest.  In  a
573                        NUMA  environment, each task may be bound to more than
574                        one GPU (i.e.  all GPUs in that NUMA environment).
575
576              map_gpu:<list>
577                        Bind by setting GPU masks on tasks (or ranks) as spec‐
578                        ified            where            <list>            is
579                        <gpu_id_for_task_0>,<gpu_id_for_task_1>,...  GPU   IDs
580                        are interpreted as decimal values unless they are pre‐
581                        ceded with '0x' in  which  case  they  interpreted  as
582                        hexadecimal  values. If the number of tasks (or ranks)
583                        exceeds the number of elements in this list,  elements
584                        in the list will be reused as needed starting from the
585                        beginning of the list. To simplify support  for  large
586                        task counts, the lists may follow a map with an aster‐
587                        isk    and    repetition    count.     For     example
588                        "map_gpu:0*4,1*4".   If the task/cgroup plugin is used
589                        and ConstrainDevices is set in cgroup.conf,  then  the
590                        GPU  IDs  are  zero-based indexes relative to the GPUs
591                        allocated to the job (e.g. the first GPU is 0, even if
592                        the global ID is 3). Otherwise, the GPU IDs are global
593                        IDs, and all GPUs on each node in the  job  should  be
594                        allocated for predictable binding results.
595
596              mask_gpu:<list>
597                        Bind by setting GPU masks on tasks (or ranks) as spec‐
598                        ified            where            <list>            is
599                        <gpu_mask_for_task_0>,<gpu_mask_for_task_1>,...    The
600                        mapping is specified for a node and identical  mapping
601                        is applied to the tasks on every node (i.e. the lowest
602                        task ID on each node is mapped to the first mask spec‐
603                        ified  in the list, etc.). GPU masks are always inter‐
604                        preted as hexadecimal values but can be preceded  with
605                        an  optional  '0x'. To simplify support for large task
606                        counts, the lists may follow a map  with  an  asterisk
607                        and      repetition      count.       For      example
608                        "mask_gpu:0x0f*4,0xf0*4".  If the  task/cgroup  plugin
609                        is  used  and  ConstrainDevices is set in cgroup.conf,
610                        then the GPU IDs are zero-based  indexes  relative  to
611                        the  GPUs  allocated to the job (e.g. the first GPU is
612                        0, even if the global ID is 3). Otherwise, the GPU IDs
613                        are  global  IDs, and all GPUs on each node in the job
614                        should be allocated for predictable binding results.
615
616              single:<tasks_per_gpu>
617                        Like --gpu-bind=closest, except  that  each  task  can
618                        only  be  bound  to  a single GPU, even when it can be
619                        bound to multiple GPUs that are  equally  close.   The
620                        GPU to bind to is determined by <tasks_per_gpu>, where
621                        the first <tasks_per_gpu> tasks are bound to the first
622                        GPU  available,  the  second <tasks_per_gpu> tasks are
623                        bound to the second GPU available, etc.  This is basi‐
624                        cally  a  block  distribution  of tasks onto available
625                        GPUs, where the available GPUs are determined  by  the
626                        socket affinity of the task and the socket affinity of
627                        the GPUs as specified in gres.conf's Cores parameter.
628
629
630       --gpu-freq=[<type]=value>[,<type=value>][,verbose]
631              Request that GPUs allocated to the job are configured with  spe‐
632              cific  frequency  values.   This  option can be used to indepen‐
633              dently configure the GPU and its memory frequencies.  After  the
634              job  is  completed, the frequencies of all affected GPUs will be
635              reset to the highest possible values.   In  some  cases,  system
636              power  caps  may  override the requested values.  The field type
637              can be "memory".  If type is not specified, the GPU frequency is
638              implied.  The value field can either be "low", "medium", "high",
639              "highm1" or a numeric value in megahertz (MHz).  If  the  speci‐
640              fied numeric value is not possible, a value as close as possible
641              will be used. See below for definition of the values.  The  ver‐
642              bose  option  causes  current  GPU  frequency  information to be
643              logged.  Examples of use include "--gpu-freq=medium,memory=high"
644              and "--gpu-freq=450".
645
646              Supported value definitions:
647
648              low       the lowest available frequency.
649
650              medium    attempts  to  set  a  frequency  in  the middle of the
651                        available range.
652
653              high      the highest available frequency.
654
655              highm1    (high minus one) will select the next  highest  avail‐
656                        able frequency.
657
658
659       --gpus-per-node=[<type>:]<number>
660              Specify the number of GPUs required for the job on each node in‐
661              cluded in the job's resource allocation.  An optional  GPU  type
662              specification      can     be     supplied.      For     example
663              "--gpus-per-node=volta:3".  Multiple options can be requested in
664              a       comma       separated       list,      for      example:
665              "--gpus-per-node=volta:3,kepler:1".   See   also   the   --gpus,
666              --gpus-per-socket and --gpus-per-task options.
667
668
669       --gpus-per-socket=[<type>:]<number>
670              Specify  the  number of GPUs required for the job on each socket
671              included in the job's resource allocation.  An optional GPU type
672              specification      can     be     supplied.      For     example
673              "--gpus-per-socket=volta:3".  Multiple options can be  requested
674              in      a     comma     separated     list,     for     example:
675              "--gpus-per-socket=volta:3,kepler:1".  Requires job to specify a
676              sockets  per  node  count  (  --sockets-per-node).  See also the
677              --gpus, --gpus-per-node and --gpus-per-task options.
678
679
680       --gpus-per-task=[<type>:]<number>
681              Specify the number of GPUs required for the job on each task  to
682              be  spawned  in  the job's resource allocation.  An optional GPU
683              type   specification   can    be    supplied.     For    example
684              "--gpus-per-task=volta:1".  Multiple options can be requested in
685              a      comma      separated       list,       for       example:
686              "--gpus-per-task=volta:3,kepler:1".   See   also   the   --gpus,
687              --gpus-per-socket and --gpus-per-node options.  This option  re‐
688              quires  an  explicit  task count, e.g. -n, --ntasks or "--gpus=X
689              --gpus-per-task=Y" rather than an ambiguous range of nodes  with
690              -N, --nodes.
691              NOTE:  This  option  will  not  have  any impact on GPU binding,
692              specifically it won't  limit  the  number  of  devices  set  for
693              CUDA_VISIBLE_DEVICES.
694
695
696       --gres=<list>
697              Specifies  a  comma  delimited  list  of  generic consumable re‐
698              sources.   The  format  of   each   entry   on   the   list   is
699              "name[[:type]:count]".   The  name is that of the consumable re‐
700              source.  The count is the number of those resources with  a  de‐
701              fault  value  of  1.   The count can have a suffix of "k" or "K"
702              (multiple of 1024), "m" or "M" (multiple of 1024 x 1024), "g" or
703              "G"  (multiple  of  1024 x 1024 x 1024), "t" or "T" (multiple of
704              1024 x 1024 x 1024 x 1024), "p" or "P" (multiple of 1024 x  1024
705              x  1024  x  1024 x 1024).  The specified resources will be allo‐
706              cated to the job on each node.  The available generic consumable
707              resources  is  configurable by the system administrator.  A list
708              of available generic consumable resources will  be  printed  and
709              the  command  will exit if the option argument is "help".  Exam‐
710              ples of use include "--gres=gpu:2,mic:1", "--gres=gpu:kepler:2",
711              and "--gres=help".
712
713
714       --gres-flags=<type>
715              Specify generic resource task binding options.
716
717              disable-binding
718                     Disable  filtering  of  CPUs  with respect to generic re‐
719                     source locality.  This option is  currently  required  to
720                     use  more CPUs than are bound to a GRES (i.e. if a GPU is
721                     bound to the CPUs on one socket, but  resources  on  more
722                     than  one  socket are required to run the job).  This op‐
723                     tion may permit a job to be  allocated  resources  sooner
724                     than otherwise possible, but may result in lower job per‐
725                     formance.
726                     NOTE: This option is specific to SelectType=cons_res.
727
728              enforce-binding
729                     The only CPUs available to the job will be those bound to
730                     the  selected  GRES  (i.e.  the  CPUs  identified  in the
731                     gres.conf file will be strictly  enforced).  This  option
732                     may result in delayed initiation of a job.  For example a
733                     job requiring two GPUs and one CPU will be delayed  until
734                     both  GPUs  on  a single socket are available rather than
735                     using GPUs bound to separate sockets, however, the appli‐
736                     cation performance may be improved due to improved commu‐
737                     nication speed.  Requires the node to be configured  with
738                     more  than one socket and resource filtering will be per‐
739                     formed on a per-socket basis.
740                     NOTE: This option is specific to SelectType=cons_tres.
741
742
743       -H, --hold
744              Specify the job is to be submitted in a held state (priority  of
745              zero).   A  held job can now be released using scontrol to reset
746              its priority (e.g. "scontrol release <job_id>").
747
748
749       -h, --help
750              Display help information and exit.
751
752
753       --hint=<type>
754              Bind tasks according to application hints.
755              NOTE:  This  option  cannot  be   used   in   conjunction   with
756              --ntasks-per-core, --threads-per-core or -B. If --hint is speci‐
757              fied as a command line argument, it will  take  precedence  over
758              the environment.
759
760              compute_bound
761                     Select  settings  for compute bound applications: use all
762                     cores in each socket, one thread per core.
763
764              memory_bound
765                     Select settings for memory bound applications:  use  only
766                     one core in each socket, one thread per core.
767
768              [no]multithread
769                     [don't]  use  extra  threads with in-core multi-threading
770                     which can benefit communication  intensive  applications.
771                     Only supported with the task/affinity plugin.
772
773              help   show this help message
774
775
776       -I, --immediate[=<seconds>]
777              exit if resources are not available within the time period spec‐
778              ified.  If no argument is given (seconds  defaults  to  1),  re‐
779              sources  must  be  available immediately for the request to suc‐
780              ceed. If defer is configured  in  SchedulerParameters  and  sec‐
781              onds=1  the allocation request will fail immediately; defer con‐
782              flicts and takes precedence over this option.  By default, --im‐
783              mediate  is  off, and the command will block until resources be‐
784              come available. Since this option's argument  is  optional,  for
785              proper parsing the single letter option must be followed immedi‐
786              ately with the value and not include a space between  them.  For
787              example "-I60" and not "-I 60".
788
789
790       -J, --job-name=<jobname>
791              Specify  a  name for the job allocation. The specified name will
792              appear along with the job id number when querying  running  jobs
793              on  the  system.   The default job name is the name of the "com‐
794              mand" specified on the command line.
795
796
797       -K, --kill-command[=signal]
798              salloc always runs a user-specified command once the  allocation
799              is  granted.   salloc will wait indefinitely for that command to
800              exit.  If you specify the --kill-command option salloc will send
801              a  signal  to  your  command  any time that the Slurm controller
802              tells salloc that its job allocation has been revoked.  The  job
803              allocation  can be revoked for a couple of reasons: someone used
804              scancel to revoke the allocation, or the allocation reached  its
805              time  limit.   If you do not specify a signal name or number and
806              Slurm is configured to signal the spawned command at job  termi‐
807              nation, the default signal is SIGHUP for interactive and SIGTERM
808              for non-interactive sessions. Since this  option's  argument  is
809              optional,  for  proper  parsing the single letter option must be
810              followed immediately with the value and not include a space  be‐
811              tween them. For example "-K1" and not "-K 1".
812
813
814       -k, --no-kill [=off]
815              Do  not automatically terminate a job if one of the nodes it has
816              been allocated fails.  The user will assume the responsibilities
817              for  fault-tolerance  should  a node fail.  When there is a node
818              failure, any active job steps (usually MPI jobs)  on  that  node
819              will  almost certainly suffer a fatal error, but with --no-kill,
820              the job allocation will not be revoked so the  user  may  launch
821              new job steps on the remaining nodes in their allocation.
822
823              Specify  an optional argument of "off" disable the effect of the
824              SALLOC_NO_KILL environment variable.
825
826              By default Slurm terminates the entire  job  allocation  if  any
827              node fails in its range of allocated nodes.
828
829
830       -L, --licenses=<license>
831              Specification  of  licenses (or other resources available on all
832              nodes of the cluster) which must be allocated to this job.   Li‐
833              cense  names  can  be followed by a colon and count (the default
834              count is one).  Multiple license names should be comma separated
835              (e.g.  "--licenses=foo:4,bar").
836
837
838       -M, --clusters=<string>
839              Clusters  to  issue  commands to.  Multiple cluster names may be
840              comma separated.  The job will be submitted to the  one  cluster
841              providing the earliest expected job initiation time. The default
842              value is the current cluster. A value of 'all' will query to run
843              on all clusters.  Note that the SlurmDBD must be up for this op‐
844              tion to work properly.
845
846
847       -m, --distribution=
848              arbitrary|<block|cyclic|plane=<options>[:block|cyclic|fcyclic]>
849
850              Specify alternate distribution methods for remote processes.  In
851              salloc,  this  only sets environment variables that will be used
852              by subsequent srun requests.  This option controls  the  assign‐
853              ment  of  tasks  to the nodes on which resources have been allo‐
854              cated, and the distribution of  those  resources  to  tasks  for
855              binding  (task  affinity). The first distribution method (before
856              the ":") controls the distribution of  resources  across  nodes.
857              The optional second distribution method (after the ":") controls
858              the distribution of resources  across  sockets  within  a  node.
859              Note  that with select/cons_res, the number of cpus allocated on
860              each   socket   and   node   may   be   different.   Refer    to
861              https://slurm.schedmd.com/mc_support.html  for  more information
862              on resource allocation, assignment of tasks to nodes, and  bind‐
863              ing of tasks to CPUs.
864
865              First distribution method:
866
867              block  The  block distribution method will distribute tasks to a
868                     node such that consecutive tasks share a node. For  exam‐
869                     ple,  consider an allocation of three nodes each with two
870                     cpus. A four-task block distribution  request  will  dis‐
871                     tribute  those  tasks to the nodes with tasks one and two
872                     on the first node, task three on  the  second  node,  and
873                     task  four  on the third node.  Block distribution is the
874                     default behavior if the number of tasks exceeds the  num‐
875                     ber of allocated nodes.
876
877              cyclic The cyclic distribution method will distribute tasks to a
878                     node such that consecutive  tasks  are  distributed  over
879                     consecutive  nodes  (in a round-robin fashion). For exam‐
880                     ple, consider an allocation of three nodes each with  two
881                     cpus.  A  four-task cyclic distribution request will dis‐
882                     tribute those tasks to the nodes with tasks one and  four
883                     on  the first node, task two on the second node, and task
884                     three on the third node.  Note that  when  SelectType  is
885                     select/cons_res, the same number of CPUs may not be allo‐
886                     cated on each node. Task distribution will be round-robin
887                     among  all  the  nodes  with  CPUs  yet to be assigned to
888                     tasks.  Cyclic distribution is the  default  behavior  if
889                     the number of tasks is no larger than the number of allo‐
890                     cated nodes.
891
892              plane  The tasks are distributed in blocks of a specified  size.
893                     The  number of tasks distributed to each node is the same
894                     as for cyclic distribution, but the taskids  assigned  to
895                     each  node depend on the plane size. Additional distribu‐
896                     tion specifications cannot be combined with this  option.
897                     For  more  details  (including  examples  and  diagrams),
898                     please see
899                     https://slurm.schedmd.com/mc_support.html
900                     and
901                     https://slurm.schedmd.com/dist_plane.html
902
903              arbitrary
904                     The arbitrary method of distribution will  allocate  pro‐
905                     cesses in-order as listed in file designated by the envi‐
906                     ronment variable SLURM_HOSTFILE.   If  this  variable  is
907                     listed  it will over ride any other method specified.  If
908                     not set the method will default  to  block.   Inside  the
909                     hostfile  must contain at minimum the number of hosts re‐
910                     quested and be one per line or comma separated.  If spec‐
911                     ifying  a  task count (-n, --ntasks=<number>), your tasks
912                     will be laid out on the nodes in the order of the file.
913                     NOTE: The arbitrary distribution option on a job  alloca‐
914                     tion  only  controls the nodes to be allocated to the job
915                     and not the allocation of CPUs on those nodes.  This  op‐
916                     tion is meant primarily to control a job step's task lay‐
917                     out in an existing job allocation for the srun command.
918
919
920              Second distribution method:
921
922              block  The block distribution method will  distribute  tasks  to
923                     sockets such that consecutive tasks share a socket.
924
925              cyclic The  cyclic  distribution method will distribute tasks to
926                     sockets such that consecutive tasks are distributed  over
927                     consecutive  sockets  (in  a round-robin fashion).  Tasks
928                     requiring more than one CPU will have all of  those  CPUs
929                     allocated on a single socket if possible.
930
931              fcyclic
932                     The  fcyclic distribution method will distribute tasks to
933                     sockets such that consecutive tasks are distributed  over
934                     consecutive  sockets  (in  a round-robin fashion).  Tasks
935                     requiring more than one CPU will have each CPUs allocated
936                     in a cyclic fashion across sockets.
937
938
939       --mail-type=<type>
940              Notify user by email when certain event types occur.  Valid type
941              values are NONE, BEGIN, END, FAIL, REQUEUE, ALL  (equivalent  to
942              BEGIN,  END,  FAIL, INVALID_DEPEND, REQUEUE, and STAGE_OUT), IN‐
943              VALID_DEPEND (dependency never satisfied), STAGE_OUT (burst buf‐
944              fer stage out and teardown completed), TIME_LIMIT, TIME_LIMIT_90
945              (reached 90 percent of time limit),  TIME_LIMIT_80  (reached  80
946              percent of time limit), and TIME_LIMIT_50 (reached 50 percent of
947              time limit).  Multiple type values may be specified in  a  comma
948              separated  list.   The  user  to  be  notified is indicated with
949              --mail-user.
950
951
952       --mail-user=<user>
953              User to receive email notification of state changes  as  defined
954              by --mail-type.  The default value is the submitting user.
955
956
957       --mcs-label=<mcs>
958              Used  only when the mcs/group plugin is enabled.  This parameter
959              is a group among the groups of the user.  Default value is  cal‐
960              culated by the Plugin mcs if it's enabled.
961
962
963       --mem=<size[units]>
964              Specify  the  real  memory required per node.  Default units are
965              megabytes.  Different units can be specified  using  the  suffix
966              [K|M|G|T].  Default value is DefMemPerNode and the maximum value
967              is MaxMemPerNode. If configured, both of parameters can be  seen
968              using  the  scontrol  show config command.  This parameter would
969              generally be used if whole nodes are allocated to jobs  (Select‐
970              Type=select/linear).   Also see --mem-per-cpu and --mem-per-gpu.
971              The --mem, --mem-per-cpu and --mem-per-gpu options are  mutually
972              exclusive.  If  --mem, --mem-per-cpu or --mem-per-gpu are speci‐
973              fied as command line arguments, then they will  take  precedence
974              over the environment.
975
976              NOTE:  A  memory size specification of zero is treated as a spe‐
977              cial case and grants the job access to all of the memory on each
978              node.  If the job is allocated multiple nodes in a heterogeneous
979              cluster, the memory limit on each node will be that of the  node
980              in the allocation with the smallest memory size (same limit will
981              apply to every node in the job's allocation).
982
983              NOTE: Enforcement of memory limits  currently  relies  upon  the
984              task/cgroup plugin or enabling of accounting, which samples mem‐
985              ory use on a periodic basis (data need not be stored, just  col‐
986              lected).  In both cases memory use is based upon the job's Resi‐
987              dent Set Size (RSS). A task may exceed the  memory  limit  until
988              the next periodic accounting sample.
989
990
991       --mem-per-cpu=<size[units]>
992              Minimum  memory  required  per allocated CPU.  Default units are
993              megabytes.  Different units can be specified  using  the  suffix
994              [K|M|G|T].   The  default  value is DefMemPerCPU and the maximum
995              value is MaxMemPerCPU (see exception below). If configured, both
996              parameters  can  be seen using the scontrol show config command.
997              Note that if the job's --mem-per-cpu value exceeds  the  config‐
998              ured  MaxMemPerCPU,  then  the user's limit will be treated as a
999              memory limit per task; --mem-per-cpu will be reduced to a  value
1000              no larger than MaxMemPerCPU; --cpus-per-task will be set and the
1001              value of --cpus-per-task multiplied  by  the  new  --mem-per-cpu
1002              value  will  equal the original --mem-per-cpu value specified by
1003              the user.  This parameter would generally be used if  individual
1004              processors  are  allocated to jobs (SelectType=select/cons_res).
1005              If resources are allocated by core, socket, or whole nodes, then
1006              the  number  of  CPUs  allocated to a job may be higher than the
1007              task count and the value of --mem-per-cpu should be adjusted ac‐
1008              cordingly.   Also  see  --mem  and  --mem-per-gpu.   The  --mem,
1009              --mem-per-cpu and --mem-per-gpu options are mutually exclusive.
1010
1011              NOTE: If the final amount of memory requested by a job can't  be
1012              satisfied  by  any of the nodes configured in the partition, the
1013              job will be rejected.  This could  happen  if  --mem-per-cpu  is
1014              used  with  the  --exclusive  option  for  a  job allocation and
1015              --mem-per-cpu times the number of CPUs on a node is greater than
1016              the total memory of that node.
1017
1018
1019       --mem-per-gpu=<size[units]>
1020              Minimum  memory  required  per allocated GPU.  Default units are
1021              megabytes.  Different units can be specified  using  the  suffix
1022              [K|M|G|T].   Default  value  is DefMemPerGPU and is available on
1023              both a global and per partition basis.  If configured,  the  pa‐
1024              rameters can be seen using the scontrol show config and scontrol
1025              show  partition  commands.   Also   see   --mem.    The   --mem,
1026              --mem-per-cpu and --mem-per-gpu options are mutually exclusive.
1027
1028
1029       --mem-bind=[{quiet,verbose},]type
1030              Bind tasks to memory. Used only when the task/affinity plugin is
1031              enabled and the NUMA memory functions are available.  Note  that
1032              the  resolution of CPU and memory binding may differ on some ar‐
1033              chitectures. For example, CPU binding may be  performed  at  the
1034              level  of the cores within a processor while memory binding will
1035              be performed at the level of  nodes,  where  the  definition  of
1036              "nodes"  may differ from system to system.  By default no memory
1037              binding is performed; any task using any CPU can use any memory.
1038              This  option is typically used to ensure that each task is bound
1039              to the memory closest to its assigned CPU. The use of  any  type
1040              other than "none" or "local" is not recommended.
1041
1042              NOTE: To have Slurm always report on the selected memory binding
1043              for all commands executed in a shell,  you  can  enable  verbose
1044              mode by setting the SLURM_MEM_BIND environment variable value to
1045              "verbose".
1046
1047              The following informational environment variables are  set  when
1048              --mem-bind is in use:
1049
1050                   SLURM_MEM_BIND_LIST
1051                   SLURM_MEM_BIND_PREFER
1052                   SLURM_MEM_BIND_SORT
1053                   SLURM_MEM_BIND_TYPE
1054                   SLURM_MEM_BIND_VERBOSE
1055
1056              See  the  ENVIRONMENT  VARIABLES section for a more detailed de‐
1057              scription of the individual SLURM_MEM_BIND* variables.
1058
1059              Supported options include:
1060
1061              help   show this help message
1062
1063              local  Use memory local to the processor in use
1064
1065              map_mem:<list>
1066                     Bind by setting memory masks on tasks (or ranks) as spec‐
1067                     ified             where             <list>             is
1068                     <numa_id_for_task_0>,<numa_id_for_task_1>,...   The  map‐
1069                     ping is specified for a node and identical mapping is ap‐
1070                     plied to the tasks on every node (i.e. the lowest task ID
1071                     on  each  node is mapped to the first ID specified in the
1072                     list, etc.).  NUMA IDs are interpreted as decimal  values
1073                     unless they are preceded with '0x' in which case they in‐
1074                     terpreted as hexadecimal values.  If the number of  tasks
1075                     (or  ranks)  exceeds the number of elements in this list,
1076                     elements in the list will be reused  as  needed  starting
1077                     from  the beginning of the list.  To simplify support for
1078                     large task counts, the lists may follow a map with an as‐
1079                     terisk     and    repetition    count.     For    example
1080                     "map_mem:0x0f*4,0xf0*4".   For  predictable  binding  re‐
1081                     sults,  all CPUs for each node in the job should be allo‐
1082                     cated to the job.
1083
1084              mask_mem:<list>
1085                     Bind by setting memory masks on tasks (or ranks) as spec‐
1086                     ified             where             <list>             is
1087                     <numa_mask_for_task_0>,<numa_mask_for_task_1>,...     The
1088                     mapping  is specified for a node and identical mapping is
1089                     applied to the tasks on every node (i.e. the lowest  task
1090                     ID  on each node is mapped to the first mask specified in
1091                     the list, etc.).  NUMA masks are  always  interpreted  as
1092                     hexadecimal  values.   Note  that  masks must be preceded
1093                     with a '0x' if they don't begin with [0-9]  so  they  are
1094                     seen  as  numerical  values.   If the number of tasks (or
1095                     ranks) exceeds the number of elements in this list,  ele‐
1096                     ments  in the list will be reused as needed starting from
1097                     the beginning of the list.  To simplify support for large
1098                     task counts, the lists may follow a mask with an asterisk
1099                     and repetition count.   For  example  "mask_mem:0*4,1*4".
1100                     For  predictable  binding results, all CPUs for each node
1101                     in the job should be allocated to the job.
1102
1103              no[ne] don't bind tasks to memory (default)
1104
1105              p[refer]
1106                     Prefer use of first specified NUMA node, but permit
1107                      use of other available NUMA nodes.
1108
1109              q[uiet]
1110                     quietly bind before task runs (default)
1111
1112              rank   bind by task rank (not recommended)
1113
1114              sort   sort free cache pages (run zonesort on Intel KNL nodes)
1115
1116              v[erbose]
1117                     verbosely report binding before task runs
1118
1119
1120       --mincpus=<n>
1121              Specify a minimum number of logical cpus/processors per node.
1122
1123
1124       -N, --nodes=<minnodes[-maxnodes]>
1125              Request that a minimum of minnodes nodes be  allocated  to  this
1126              job.   A maximum node count may also be specified with maxnodes.
1127              If only one number is specified, this is used as both the  mini‐
1128              mum  and maximum node count.  The partition's node limits super‐
1129              sede those of the job.  If a job's node limits  are  outside  of
1130              the  range  permitted for its associated partition, the job will
1131              be left in a PENDING state.  This permits possible execution  at
1132              a  later  time,  when  the partition limit is changed.  If a job
1133              node limit exceeds the number of nodes configured in the  parti‐
1134              tion, the job will be rejected.  Note that the environment vari‐
1135              able SLURM_JOB_NUM_NODES will be set to the count of nodes actu‐
1136              ally  allocated  to the job. See the ENVIRONMENT VARIABLES  sec‐
1137              tion for more information.  If -N is not specified, the  default
1138              behavior is to allocate enough nodes to satisfy the requirements
1139              of the -n and -c options.  The job will  be  allocated  as  many
1140              nodes  as possible within the range specified and without delay‐
1141              ing the initiation of the job.  The node count specification may
1142              include  a numeric value followed by a suffix of "k" (multiplies
1143              numeric value by 1,024) or  "m"  (multiplies  numeric  value  by
1144              1,048,576).
1145
1146
1147       -n, --ntasks=<number>
1148              salloc  does  not launch tasks, it requests an allocation of re‐
1149              sources and executed some command. This option advises the Slurm
1150              controller that job steps run within this allocation will launch
1151              a maximum of number tasks and sufficient resources are allocated
1152              to  accomplish this.  The default is one task per node, but note
1153              that the --cpus-per-task option will change this default.
1154
1155
1156       --network=<type>
1157              Specify information pertaining to the switch  or  network.   The
1158              interpretation of type is system dependent.  This option is sup‐
1159              ported when running Slurm on a Cray natively.  It is used to re‐
1160              quest  using  Network  Performance Counters.  Only one value per
1161              request is valid.  All options are case in-sensitive.   In  this
1162              configuration supported values include:
1163
1164              system
1165                    Use  the  system-wide  network  performance counters. Only
1166                    nodes requested will be marked in use for the job  alloca‐
1167                    tion.   If  the job does not fill up the entire system the
1168                    rest of the nodes are not able to be used  by  other  jobs
1169                    using  NPC,  if  idle their state will appear as PerfCnts.
1170                    These nodes are still available for other jobs  not  using
1171                    NPC.
1172
1173              blade Use the blade network performance counters. Only nodes re‐
1174                    quested will be marked in use for the job allocation.   If
1175                    the  job does not fill up the entire blade(s) allocated to
1176                    the job those blade(s) are not able to be  used  by  other
1177                    jobs  using NPC, if idle their state will appear as PerfC‐
1178                    nts.  These nodes are still available for other  jobs  not
1179                    using NPC.
1180
1181
1182              In all cases the job allocation request must specify the
1183              --exclusive option.  Otherwise the request will be denied.
1184
1185              Also  with  any  of these options steps are not allowed to share
1186              blades, so resources would remain idle inside an  allocation  if
1187              the  step  running  on a blade does not take up all the nodes on
1188              the blade.
1189
1190              The network option is also supported on systems with IBM's  Par‐
1191              allel  Environment (PE).  See IBM's LoadLeveler job command key‐
1192              word documentation about the keyword "network" for more informa‐
1193              tion.   Multiple  values  may  be specified in a comma separated
1194              list.  All options are case in-sensitive.  Supported values  in‐
1195              clude:
1196
1197              BULK_XFER[=<resources>]
1198                          Enable  bulk  transfer  of data using Remote Direct-
1199                          Memory Access (RDMA).  The optional resources speci‐
1200                          fication  is a numeric value which can have a suffix
1201                          of "k", "K", "m", "M", "g"  or  "G"  for  kilobytes,
1202                          megabytes  or gigabytes.  NOTE: The resources speci‐
1203                          fication is not supported by the underlying IBM  in‐
1204                          frastructure  as of Parallel Environment version 2.2
1205                          and no value should be specified at this time.
1206
1207              CAU=<count> Number of Collectve  Acceleration  Units  (CAU)  re‐
1208                          quired.   Applies  only to IBM Power7-IH processors.
1209                          Default value is zero.  Independent CAU will be  al‐
1210                          located  for  each programming interface (MPI, LAPI,
1211                          etc.)
1212
1213              DEVNAME=<name>
1214                          Specify the device name to  use  for  communications
1215                          (e.g. "eth0" or "mlx4_0").
1216
1217              DEVTYPE=<type>
1218                          Specify  the  device type to use for communications.
1219                          The supported values of type are: "IB" (InfiniBand),
1220                          "HFI"  (P7 Host Fabric Interface), "IPONLY" (IP-Only
1221                          interfaces), "HPCE" (HPC Ethernet), and "KMUX" (Ker‐
1222                          nel  Emulation of HPCE).  The devices allocated to a
1223                          job must all be of the same type.  The default value
1224                          depends upon depends upon what hardware is available
1225                          and in order of preferences is IPONLY (which is  not
1226                          considered  in  User Space mode), HFI, IB, HPCE, and
1227                          KMUX.
1228
1229              IMMED =<count>
1230                          Number of immediate send slots per window  required.
1231                          Applies  only  to IBM Power7-IH processors.  Default
1232                          value is zero.
1233
1234              INSTANCES =<count>
1235                          Specify number of network connections for each  task
1236                          on  each  network  connection.  The default instance
1237                          count is 1.
1238
1239              IPV4        Use Internet Protocol (IP) version 4  communications
1240                          (default).
1241
1242              IPV6        Use Internet Protocol (IP) version 6 communications.
1243
1244              LAPI        Use the LAPI programming interface.
1245
1246              MPI         Use  the  MPI programming interface.  MPI is the de‐
1247                          fault interface.
1248
1249              PAMI        Use the PAMI programming interface.
1250
1251              SHMEM       Use the OpenSHMEM programming interface.
1252
1253              SN_ALL      Use all available switch networks (default).
1254
1255              SN_SINGLE   Use one available switch network.
1256
1257              UPC         Use the UPC programming interface.
1258
1259              US          Use User Space communications.
1260
1261
1262              Some examples of network specifications:
1263
1264              Instances=2,US,MPI,SN_ALL
1265                          Create two user space connections for MPI communica‐
1266                          tions on every switch network for each task.
1267
1268              US,MPI,Instances=3,Devtype=IB
1269                          Create three user space connections for MPI communi‐
1270                          cations on every InfiniBand network for each task.
1271
1272              IPV4,LAPI,SN_Single
1273                          Create a IP version 4 connection for LAPI communica‐
1274                          tions on one switch network for each task.
1275
1276              Instances=2,US,LAPI,MPI
1277                          Create  two user space connections each for LAPI and
1278                          MPI communications on every switch network for  each
1279                          task.  Note that SN_ALL is the default option so ev‐
1280                          ery switch network  is  used.  Also  note  that  In‐
1281                          stances=2  specifies that two connections are estab‐
1282                          lished for each protocol (LAPI  and  MPI)  and  each
1283                          task.   If  there are two networks and four tasks on
1284                          the node then a total of 32 connections  are  estab‐
1285                          lished  (2  instances x 2 protocols x 2 networks x 4
1286                          tasks).
1287
1288
1289       --nice[=adjustment]
1290              Run the job with an adjusted scheduling priority  within  Slurm.
1291              With no adjustment value the scheduling priority is decreased by
1292              100. A negative nice value increases the priority, otherwise de‐
1293              creases  it. The adjustment range is +/- 2147483645. Only privi‐
1294              leged users can specify a negative adjustment.
1295
1296
1297       --ntasks-per-core=<ntasks>
1298              Request the maximum ntasks be invoked on each core.  Meant to be
1299              used with the --ntasks option.  Related to --ntasks-per-node ex‐
1300              cept at the core level instead of the node  level.   NOTE:  This
1301              option is not supported when using SelectType=select/linear.
1302
1303
1304       --ntasks-per-gpu=<ntasks>
1305              Request that there are ntasks tasks invoked for every GPU.  This
1306              option can work in two ways: 1) either specify --ntasks in addi‐
1307              tion,  in which case a type-less GPU specification will be auto‐
1308              matically determined to satisfy --ntasks-per-gpu, or 2)  specify
1309              the  GPUs  wanted (e.g. via --gpus or --gres) without specifying
1310              --ntasks, and the total task count will be automatically  deter‐
1311              mined.   The  number  of  CPUs  needed will be automatically in‐
1312              creased if necessary to allow for  any  calculated  task  count.
1313              This  option will implicitly set --gpu-bind=single:<ntasks>, but
1314              that can be overridden with an  explicit  --gpu-bind  specifica‐
1315              tion.   This  option  is  not compatible with a node range (i.e.
1316              -N<minnodes-maxnodes>).  This  option  is  not  compatible  with
1317              --gpus-per-task,  --gpus-per-socket, or --ntasks-per-node.  This
1318              option is not supported unless SelectType=cons_tres  is  config‐
1319              ured (either directly or indirectly on Cray systems).
1320
1321
1322       --ntasks-per-node=<ntasks>
1323              Request  that  ntasks be invoked on each node.  If used with the
1324              --ntasks option, the --ntasks option will  take  precedence  and
1325              the  --ntasks-per-node  will  be  treated  as a maximum count of
1326              tasks per node.  Meant to be used with the --nodes option.  This
1327              is related to --cpus-per-task=ncpus, but does not require knowl‐
1328              edge of the actual number of cpus on each node.  In some  cases,
1329              it  is more convenient to be able to request that no more than a
1330              specific number of tasks be invoked on each node.   Examples  of
1331              this  include  submitting a hybrid MPI/OpenMP app where only one
1332              MPI "task/rank" should be assigned to each node  while  allowing
1333              the  OpenMP portion to utilize all of the parallelism present in
1334              the node, or submitting a single setup/cleanup/monitoring job to
1335              each  node  of a pre-existing allocation as one step in a larger
1336              job script.
1337
1338
1339       --ntasks-per-socket=<ntasks>
1340              Request the maximum ntasks be invoked on each socket.  Meant  to
1341              be  used with the --ntasks option.  Related to --ntasks-per-node
1342              except at the socket level instead of  the  node  level.   NOTE:
1343              This  option  is not supported when using SelectType=select/lin‐
1344              ear.
1345
1346
1347       --no-bell
1348              Silence salloc's use of the terminal bell. Also see  the  option
1349              --bell.
1350
1351
1352       --no-shell
1353              immediately  exit  after allocating resources, without running a
1354              command. However, the Slurm job will still be created  and  will
1355              remain active and will own the allocated resources as long as it
1356              is active.  You will have a Slurm job id with no associated pro‐
1357              cesses  or  tasks. You can submit srun commands against this re‐
1358              source allocation, if you specify the --jobid= option  with  the
1359              job  id  of this Slurm job.  Or, this can be used to temporarily
1360              reserve a set of resources so that other jobs  cannot  use  them
1361              for some period of time.  (Note that the Slurm job is subject to
1362              the normal constraints on jobs, including time limits,  so  that
1363              eventually  the  job  will  terminate  and the resources will be
1364              freed, or you can terminate the job manually using  the  scancel
1365              command.)
1366
1367
1368       -O, --overcommit
1369              Overcommit  resources.  When applied to job allocation, only one
1370              CPU is allocated to the job per node and options used to specify
1371              the  number  of tasks per node, socket, core, etc.  are ignored.
1372              When applied to job step allocations (the srun command when exe‐
1373              cuted  within  an  existing  job allocation), this option can be
1374              used to launch more than one task per CPU.  Normally, srun  will
1375              not  allocate  more  than  one  process  per CPU.  By specifying
1376              --overcommit you are explicitly allowing more than  one  process
1377              per  CPU. However no more than MAX_TASKS_PER_NODE tasks are per‐
1378              mitted to execute per node.  NOTE: MAX_TASKS_PER_NODE is defined
1379              in  the  file  slurm.h and is not a variable, it is set at Slurm
1380              build time.
1381
1382
1383       -p, --partition=<partition_names>
1384              Request a specific partition for the  resource  allocation.   If
1385              not  specified,  the default behavior is to allow the slurm con‐
1386              troller to select the default partition  as  designated  by  the
1387              system  administrator.  If  the job can use more than one parti‐
1388              tion, specify their names in a comma separate list and  the  one
1389              offering  earliest  initiation will be used with no regard given
1390              to the partition name ordering (although higher priority  parti‐
1391              tions will be considered first).  When the job is initiated, the
1392              name of the partition used will  be  placed  first  in  the  job
1393              record partition string.
1394
1395
1396       --power=<flags>
1397              Comma  separated  list of power management plugin options.  Cur‐
1398              rently available flags include: level (all  nodes  allocated  to
1399              the job should have identical power caps, may be disabled by the
1400              Slurm configuration option PowerParameters=job_no_level).
1401
1402
1403       --priority=<value>
1404              Request a specific job priority.  May be subject  to  configura‐
1405              tion  specific  constraints.   value  should either be a numeric
1406              value or "TOP" (for highest possible value).  Only Slurm  opera‐
1407              tors and administrators can set the priority of a job.
1408
1409
1410       --profile=<all|none|[energy[,|task[,|lustre[,|network]]]]>
1411              enables  detailed  data  collection  by  the acct_gather_profile
1412              plugin.  Detailed data are typically time-series that are stored
1413              in an HDF5 file for the job or an InfluxDB database depending on
1414              the configured plugin.
1415
1416
1417              All       All data types are collected. (Cannot be combined with
1418                        other values.)
1419
1420
1421              None      No data types are collected. This is the default.
1422                         (Cannot be combined with other values.)
1423
1424
1425              Energy    Energy data is collected.
1426
1427
1428              Task      Task (I/O, Memory, ...) data is collected.
1429
1430
1431              Lustre    Lustre data is collected.
1432
1433
1434              Network   Network (InfiniBand) data is collected.
1435
1436
1437       -q, --qos=<qos>
1438              Request a quality of service for the job.  QOS values can be de‐
1439              fined for each user/cluster/account  association  in  the  Slurm
1440              database.   Users will be limited to their association's defined
1441              set of qos's when the Slurm  configuration  parameter,  Account‐
1442              ingStorageEnforce, includes "qos" in its definition.
1443
1444
1445       -Q, --quiet
1446              Suppress  informational  messages from salloc. Errors will still
1447              be displayed.
1448
1449
1450       --reboot
1451              Force the allocated nodes to reboot  before  starting  the  job.
1452              This  is only supported with some system configurations and will
1453              otherwise be silently ignored. Only root,  SlurmUser  or  admins
1454              can reboot nodes.
1455
1456
1457       --reservation=<reservation_names>
1458              Allocate  resources  for  the job from the named reservation. If
1459              the job can use more than one reservation, specify  their  names
1460              in  a  comma separate list and the one offering earliest initia‐
1461              tion. Each reservation will be considered in the  order  it  was
1462              requested.   All  reservations will be listed in scontrol/squeue
1463              through the life of the job.  In accounting the  first  reserva‐
1464              tion  will be seen and after the job starts the reservation used
1465              will replace it.
1466
1467
1468       -s, --oversubscribe
1469              The job allocation can over-subscribe resources with other  run‐
1470              ning  jobs.   The  resources to be over-subscribed can be nodes,
1471              sockets, cores, and/or hyperthreads  depending  upon  configura‐
1472              tion.   The  default  over-subscribe  behavior depends on system
1473              configuration and the  partition's  OverSubscribe  option  takes
1474              precedence over the job's option.  This option may result in the
1475              allocation being granted sooner than if the --oversubscribe  op‐
1476              tion was not set and allow higher system utilization, but appli‐
1477              cation performance will likely suffer due to competition for re‐
1478              sources.  Also see the --exclusive option.
1479
1480
1481       -S, --core-spec=<num>
1482              Count of specialized cores per node reserved by the job for sys‐
1483              tem operations and not used by the application. The  application
1484              will  not use these cores, but will be charged for their alloca‐
1485              tion.  Default value is dependent  upon  the  node's  configured
1486              CoreSpecCount  value.   If a value of zero is designated and the
1487              Slurm configuration option AllowSpecResourcesUsage  is  enabled,
1488              the  job  will  be allowed to override CoreSpecCount and use the
1489              specialized resources on nodes it is allocated.  This option can
1490              not be used with the --thread-spec option.
1491
1492
1493       --signal=[R:]<sig_num>[@<sig_time>]
1494              When  a  job is within sig_time seconds of its end time, send it
1495              the signal sig_num.  Due to the resolution of event handling  by
1496              Slurm,  the  signal  may  be  sent up to 60 seconds earlier than
1497              specified.  sig_num may either be a signal number or name  (e.g.
1498              "10"  or "USR1").  sig_time must have an integer value between 0
1499              and 65535.  By default, no signal is sent before the  job's  end
1500              time.   If  a sig_num is specified without any sig_time, the de‐
1501              fault time will be 60 seconds.  Use the  "R:"  option  to  allow
1502              this  job  to overlap with a reservation with MaxStartDelay set.
1503              To have  the  signal  sent  at  preemption  time  see  the  pre‐
1504              empt_send_user_signal SlurmctldParameter.
1505
1506
1507       --sockets-per-node=<sockets>
1508              Restrict  node  selection  to  nodes with at least the specified
1509              number of sockets.  See additional information under  -B  option
1510              above when task/affinity plugin is enabled.
1511
1512
1513       --spread-job
1514              Spread the job allocation over as many nodes as possible and at‐
1515              tempt to evenly distribute tasks  across  the  allocated  nodes.
1516              This option disables the topology/tree plugin.
1517
1518
1519       --switches=<count>[@<max-time>]
1520              When  a tree topology is used, this defines the maximum count of
1521              switches desired for the job allocation and optionally the maxi‐
1522              mum  time to wait for that number of switches. If Slurm finds an
1523              allocation containing more switches than  the  count  specified,
1524              the job remains pending until it either finds an allocation with
1525              desired switch count or the time limit expires.  It there is  no
1526              switch  count limit, there is no delay in starting the job.  Ac‐
1527              ceptable  time  formats  include  "minutes",  "minutes:seconds",
1528              "hours:minutes:seconds",  "days-hours", "days-hours:minutes" and
1529              "days-hours:minutes:seconds".  The job's maximum time delay  may
1530              be limited by the system administrator using the SchedulerParam‐
1531              eters configuration parameter with the max_switch_wait parameter
1532              option.   On a dragonfly network the only switch count supported
1533              is 1 since communication performance will be highest when a  job
1534              is  allocate  resources  on  one leaf switch or more than 2 leaf
1535              switches.  The default max-time is  the  max_switch_wait  Sched‐
1536              ulerParameters.
1537
1538
1539       -t, --time=<time>
1540              Set a limit on the total run time of the job allocation.  If the
1541              requested time limit exceeds the partition's time limit, the job
1542              will  be  left  in a PENDING state (possibly indefinitely).  The
1543              default time limit is the partition's default time limit.   When
1544              the  time  limit  is reached, each task in each job step is sent
1545              SIGTERM followed by SIGKILL.  The interval  between  signals  is
1546              specified  by  the  Slurm configuration parameter KillWait.  The
1547              OverTimeLimit configuration parameter may permit the job to  run
1548              longer than scheduled.  Time resolution is one minute and second
1549              values are rounded up to the next minute.
1550
1551              A time limit of zero requests that no  time  limit  be  imposed.
1552              Acceptable  time  formats  include "minutes", "minutes:seconds",
1553              "hours:minutes:seconds", "days-hours", "days-hours:minutes"  and
1554              "days-hours:minutes:seconds".
1555
1556
1557       --thread-spec=<num>
1558              Count  of  specialized  threads per node reserved by the job for
1559              system operations and not used by the application. The  applica‐
1560              tion  will  not use these threads, but will be charged for their
1561              allocation.  This option can not be used  with  the  --core-spec
1562              option.
1563
1564
1565       --threads-per-core=<threads>
1566              Restrict  node  selection  to  nodes with at least the specified
1567              number of threads per core. In task layout,  use  the  specified
1568              maximum  number  of  threads per core. NOTE: "Threads" refers to
1569              the number of processing units on each core rather than the num‐
1570              ber  of  application  tasks  to be launched per core.  See addi‐
1571              tional information under  -B  option  above  when  task/affinity
1572              plugin is enabled.
1573
1574
1575       --time-min=<time>
1576              Set  a  minimum time limit on the job allocation.  If specified,
1577              the job may have its --time limit lowered to a  value  no  lower
1578              than  --time-min  if doing so permits the job to begin execution
1579              earlier than otherwise possible.  The job's time limit will  not
1580              be  changed  after the job is allocated resources.  This is per‐
1581              formed by a backfill scheduling algorithm to allocate  resources
1582              otherwise  reserved  for  higher priority jobs.  Acceptable time
1583              formats  include   "minutes",   "minutes:seconds",   "hours:min‐
1584              utes:seconds",     "days-hours",     "days-hours:minutes"    and
1585              "days-hours:minutes:seconds".
1586
1587
1588       --tmp=<size[units]>
1589              Specify a minimum amount of temporary disk space per node.   De‐
1590              fault units are megabytes.  Different units can be specified us‐
1591              ing the suffix [K|M|G|T].
1592
1593
1594       --usage
1595              Display brief help message and exit.
1596
1597
1598       --uid=<user>
1599              Attempt to submit and/or run a job as user instead of the invok‐
1600              ing  user  id.  The  invoking user's credentials will be used to
1601              check access permissions for the target partition.  This  option
1602              is  only  valid  for  user root. This option may be used by user
1603              root may use this option to run jobs  as  a  normal  user  in  a
1604              RootOnly partition for example. If run as root, salloc will drop
1605              its permissions to the uid specified after  node  allocation  is
1606              successful. user may be the user name or numerical user ID.
1607
1608
1609       --use-min-nodes
1610              If a range of node counts is given, prefer the smaller count.
1611
1612
1613       -V, --version
1614              Display version information and exit.
1615
1616
1617       -v, --verbose
1618              Increase the verbosity of salloc's informational messages.  Mul‐
1619              tiple -v's will further increase salloc's verbosity.  By default
1620              only errors will be displayed.
1621
1622
1623       -w, --nodelist=<node name list>
1624              Request  a  specific list of hosts.  The job will contain all of
1625              these hosts and possibly additional hosts as needed  to  satisfy
1626              resource   requirements.    The  list  may  be  specified  as  a
1627              comma-separated list of hosts, a range of hosts (host[1-5,7,...]
1628              for  example),  or a filename.  The host list will be assumed to
1629              be a filename if it contains a "/" character.  If you specify  a
1630              minimum  node or processor count larger than can be satisfied by
1631              the supplied host list, additional resources will  be  allocated
1632              on other nodes as needed.  Duplicate node names in the list will
1633              be ignored.  The order of the node names in the list is not  im‐
1634              portant; the node names will be sorted by Slurm.
1635
1636
1637       --wait-all-nodes=<value>
1638              Controls  when  the execution of the command begins with respect
1639              to when nodes are ready for use (i.e. booted).  By default,  the
1640              salloc  command  will  return as soon as the allocation is made.
1641              This default can be altered using the  salloc_wait_nodes  option
1642              to the SchedulerParameters parameter in the slurm.conf file.
1643
1644              0    Begin  execution as soon as allocation can be made.  Do not
1645                   wait for all nodes to be ready for use (i.e. booted).
1646
1647              1    Do not begin execution until all nodes are ready for use.
1648
1649
1650       --wckey=<wckey>
1651              Specify wckey to be used with job.  If  TrackWCKey=no  (default)
1652              in the slurm.conf this value is ignored.
1653
1654
1655       -x, --exclude=<node name list>
1656              Explicitly  exclude  certain nodes from the resources granted to
1657              the job.
1658
1659
1660       --x11[=<all|first|last>]
1661              Sets up X11 forwarding on all, first or last node(s) of the  al‐
1662              location. This option is only enabled if Slurm was compiled with
1663              X11 support and PrologFlags=x11 is defined  in  the  slurm.conf.
1664              Default is all.
1665
1666

PERFORMANCE

1668       Executing  salloc sends a remote procedure call to slurmctld. If enough
1669       calls from salloc or other Slurm client commands that send remote  pro‐
1670       cedure  calls to the slurmctld daemon come in at once, it can result in
1671       a degradation of performance of the slurmctld daemon, possibly  result‐
1672       ing in a denial of service.
1673
1674       Do  not run salloc or other Slurm client commands that send remote pro‐
1675       cedure calls to slurmctld from loops in shell  scripts  or  other  pro‐
1676       grams. Ensure that programs limit calls to salloc to the minimum neces‐
1677       sary for the information you are trying to gather.
1678
1679

INPUT ENVIRONMENT VARIABLES

1681       Upon startup, salloc will read and handle the options set in  the  fol‐
1682       lowing  environment variables.  Note: Command line options always over‐
1683       ride environment variables settings.
1684
1685
1686       SALLOC_ACCOUNT        Same as -A, --account
1687
1688       SALLOC_ACCTG_FREQ     Same as --acctg-freq
1689
1690       SALLOC_BELL           Same as --bell
1691
1692       SALLOC_BURST_BUFFER   Same as --bb
1693
1694       SALLOC_CLUSTERS or SLURM_CLUSTERS
1695                             Same as --clusters
1696
1697       SALLOC_CONSTRAINT     Same as -C, --constraint
1698
1699       SALLOC_CORE_SPEC      Same as --core-spec
1700
1701       SALLOC_CPUS_PER_GPU   Same as --cpus-per-gpu
1702
1703       SALLOC_DEBUG          Same as -v, --verbose
1704
1705       SALLOC_DELAY_BOOT     Same as --delay-boot
1706
1707       SALLOC_EXCLUSIVE      Same as --exclusive
1708
1709       SALLOC_GPU_BIND       Same as --gpu-bind
1710
1711       SALLOC_GPU_FREQ       Same as --gpu-freq
1712
1713       SALLOC_GPUS           Same as -G, --gpus
1714
1715       SALLOC_GPUS_PER_NODE  Same as --gpus-per-node
1716
1717       SALLOC_GPUS_PER_TASK  Same as --gpus-per-task
1718
1719       SALLOC_GRES           Same as --gres
1720
1721       SALLOC_GRES_FLAGS     Same as --gres-flags
1722
1723       SALLOC_HINT or SLURM_HINT
1724                             Same as --hint
1725
1726       SALLOC_IMMEDIATE      Same as -I, --immediate
1727
1728       SALLOC_KILL_CMD       Same as -K, --kill-command
1729
1730       SALLOC_MEM_BIND       Same as --mem-bind
1731
1732       SALLOC_MEM_PER_CPU    Same as --mem-per-cpu
1733
1734       SALLOC_MEM_PER_GPU    Same as --mem-per-gpu
1735
1736       SALLOC_MEM_PER_NODE   Same as --mem
1737
1738       SALLOC_NETWORK        Same as --network
1739
1740       SALLOC_NO_BELL        Same as --no-bell
1741
1742       SALLOC_NO_KILL        Same as -k, --no-kill
1743
1744       SALLOC_OVERCOMMIT     Same as -O, --overcommit
1745
1746       SALLOC_PARTITION      Same as -p, --partition
1747
1748       SALLOC_POWER          Same as --power
1749
1750       SALLOC_PROFILE        Same as --profile
1751
1752       SALLOC_QOS            Same as --qos
1753
1754       SALLOC_REQ_SWITCH     When a tree topology is used,  this  defines  the
1755                             maximum count of switches desired for the job al‐
1756                             location and optionally the maximum time to  wait
1757                             for that number of switches. See --switches.
1758
1759       SALLOC_RESERVATION    Same as --reservation
1760
1761       SALLOC_SIGNAL         Same as --signal
1762
1763       SALLOC_SPREAD_JOB     Same as --spread-job
1764
1765       SALLOC_THREAD_SPEC    Same as --thread-spec
1766
1767       SALLOC_TIMELIMIT      Same as -t, --time
1768
1769       SALLOC_USE_MIN_NODES  Same as --use-min-nodes
1770
1771       SALLOC_WAIT_ALL_NODES Same as --wait-all-nodes
1772
1773       SALLOC_WAIT4SWITCH    Max  time  waiting  for  requested  switches. See
1774                             --switches
1775
1776       SALLOC_WCKEY          Same as --wckey
1777
1778       SLURM_CONF            The location of the Slurm configuration file.
1779
1780       SLURM_EXIT_ERROR      Specifies the exit code generated  when  a  Slurm
1781                             error occurs (e.g. invalid options).  This can be
1782                             used by a script to distinguish application  exit
1783                             codes  from various Slurm error conditions.  Also
1784                             see SLURM_EXIT_IMMEDIATE.
1785
1786       SLURM_EXIT_IMMEDIATE  Specifies the exit code generated when the  --im‐
1787                             mediate option is used and resources are not cur‐
1788                             rently available.  This can be used by  a  script
1789                             to  distinguish application exit codes from vari‐
1790                             ous   Slurm   error   conditions.     Also    see
1791                             SLURM_EXIT_ERROR.
1792
1793

OUTPUT ENVIRONMENT VARIABLES

1795       salloc  will set the following environment variables in the environment
1796       of the executed program:
1797
1798       SLURM_*_HET_GROUP_#
1799              For a heterogeneous job allocation,  the  environment  variables
1800              are set separately for each component.
1801
1802       SLURM_CLUSTER_NAME
1803              Name of the cluster on which the job is executing.
1804
1805       SLURM_CPUS_PER_GPU
1806              Number  of  CPUs  requested  per allocated GPU.  Only set if the
1807              --cpus-per-gpu option is specified.
1808
1809       SLURM_CPUS_PER_TASK
1810              Number  of  CPUs  requested  per  task.    Only   set   if   the
1811              --cpus-per-task option is specified.
1812
1813       SLURM_DIST_PLANESIZE
1814              Plane  distribution size. Only set for plane distributions.  See
1815              -m, --distribution.
1816
1817       SLURM_DISTRIBUTION
1818              Only set if the -m, --distribution option is specified.
1819
1820       SLURM_GPU_BIND
1821              Requested binding of tasks to GPU.  Only set if  the  --gpu-bind
1822              option is specified.
1823
1824       SLURM_GPU_FREQ
1825              Requested  GPU  frequency.  Only set if the --gpu-freq option is
1826              specified.
1827
1828       SLURM_GPUS
1829              Number of GPUs requested.  Only set if the -G, --gpus option  is
1830              specified.
1831
1832       SLURM_GPUS_PER_NODE
1833              Requested  GPU  count  per  allocated  node.   Only  set  if the
1834              --gpus-per-node option is specified.
1835
1836       SLURM_GPUS_PER_SOCKET
1837              Requested GPU count per  allocated  socket.   Only  set  if  the
1838              --gpus-per-socket option is specified.
1839
1840       SLURM_GPUS_PER_TASK
1841              Requested  GPU  count  per  allocated  task.   Only  set  if the
1842              --gpus-per-task option is specified.
1843
1844       SLURM_HET_SIZE
1845              Set to count of components in heterogeneous job.
1846
1847       SLURM_JOB_ACCOUNT
1848              Account name associated of the job allocation.
1849
1850       SLURM_JOB_ID
1851              The ID of the job allocation.
1852
1853       SLURM_JOB_CPUS_PER_NODE
1854              Count of processors available to the job on this node.  Note the
1855              select/linear  plugin  allocates  entire  nodes  to jobs, so the
1856              value indicates the total count of CPUs on each node.   The  se‐
1857              lect/cons_res plugin allocates individual processors to jobs, so
1858              this number indicates the number of processors on each node  al‐
1859              located to the job allocation.
1860
1861       SLURM_JOB_NODELIST
1862              List of nodes allocated to the job.
1863
1864       SLURM_JOB_NUM_NODES
1865              Total number of nodes in the job allocation.
1866
1867       SLURM_JOB_PARTITION
1868              Name of the partition in which the job is running.
1869
1870       SLURM_JOB_QOS
1871              Quality Of Service (QOS) of the job allocation.
1872
1873       SLURM_JOB_RESERVATION
1874              Advanced reservation containing the job allocation, if any.
1875
1876       SLURM_JOBID
1877              The  ID  of  the  job allocation. See SLURM_JOB_ID. Included for
1878              backwards compatibility.
1879
1880       SLURM_MEM_BIND
1881              Set to value of the --mem-bind option.
1882
1883       SLURM_MEM_BIND_LIST
1884              Set to bit mask used for memory binding.
1885
1886       SLURM_MEM_BIND_PREFER
1887              Set to "prefer" if the --mem-bind option includes the prefer op‐
1888              tion.
1889
1890       SLURM_MEM_BIND_SORT
1891              Sort free cache pages (run zonesort on Intel KNL nodes)
1892
1893       SLURM_MEM_BIND_TYPE
1894              Set to the memory binding type specified with the --mem-bind op‐
1895              tion.  Possible values are "none", "rank", "map_map", "mask_mem"
1896              and "local".
1897
1898       SLURM_MEM_BIND_VERBOSE
1899              Set  to  "verbose" if the --mem-bind option includes the verbose
1900              option.  Set to "quiet" otherwise.
1901
1902       SLURM_MEM_PER_CPU
1903              Same as --mem-per-cpu
1904
1905       SLURM_MEM_PER_GPU
1906              Requested  memory  per  allocated  GPU.    Only   set   if   the
1907              --mem-per-gpu option is specified.
1908
1909       SLURM_MEM_PER_NODE
1910              Same as --mem
1911
1912       SLURM_NNODES
1913              Total   number   of   nodes   in   the   job   allocation.   See
1914              SLURM_JOB_NUM_NODES.  Included for backwards compatibility.
1915
1916       SLURM_NODELIST
1917              List of nodes allocated to the job. See SLURM_JOB_NODELIST.  In‐
1918              cluded for backwards compabitility.
1919
1920       SLURM_NODE_ALIASES
1921              Sets  of node name, communication address and hostname for nodes
1922              allocated to the job from the cloud. Each element in the set  if
1923              colon  separated  and  each set is comma separated. For example:
1924              SLURM_NODE_ALIASES=ec0:1.2.3.4:foo,ec1:1.2.3.5:bar
1925
1926       SLURM_NTASKS
1927              Same as -n, --ntasks
1928
1929       SLURM_NTASKS_PER_CORE
1930              Set to value of the --ntasks-per-core option, if specified.
1931
1932       SLURM_NTASKS_PER_GPU
1933              Set to value of the --ntasks-per-gpu option, if specified.
1934
1935       SLURM_NTASKS_PER_NODE
1936              Set to value of the --ntasks-per-node option, if specified.
1937
1938       SLURM_NTASKS_PER_SOCKET
1939              Set to value of the --ntasks-per-socket option, if specified.
1940
1941       SLURM_OVERCOMMIT
1942              Set to 1 if --overcommit was specified.
1943
1944       SLURM_PROFILE
1945              Same as --profile
1946
1947       SLURM_SUBMIT_DIR
1948              The directory from which salloc was invoked or,  if  applicable,
1949              the directory specified by the -D, --chdir option.
1950
1951       SLURM_SUBMIT_HOST
1952              The hostname of the computer from which salloc was invoked.
1953
1954       SLURM_TASKS_PER_NODE
1955              Number  of  tasks to be initiated on each node. Values are comma
1956              separated and in the same order as SLURM_JOB_NODELIST.   If  two
1957              or  more consecutive nodes are to have the same task count, that
1958              count is followed by "(x#)" where "#" is the  repetition  count.
1959              For  example,  "SLURM_TASKS_PER_NODE=2(x3),1" indicates that the
1960              first three nodes will each execute two  tasks  and  the  fourth
1961              node will execute one task.
1962
1963

SIGNALS

1965       While salloc is waiting for a PENDING job allocation, most signals will
1966       cause salloc to revoke the allocation request and exit.
1967
1968       However if the allocation has  been  granted  and  salloc  has  already
1969       started  the  specified  command, then salloc will ignore most signals.
1970       salloc will not exit or release the allocation until the command exits.
1971       One  notable  exception is SIGHUP. A SIGHUP signal will cause salloc to
1972       release the allocation and exit without waiting for the command to fin‐
1973       ish.   Another  exception  is  SIGTERM,  which will be forwarded to the
1974       spawned process.
1975
1976

EXAMPLES

1978       To get an allocation, and open a new xterm in which srun  commands  may
1979       be typed interactively:
1980
1981              $ salloc -N16 xterm
1982              salloc: Granted job allocation 65537
1983              # (at this point the xterm appears, and salloc waits for xterm to exit)
1984              salloc: Relinquishing job allocation 65537
1985
1986
1987       To grab an allocation of nodes and launch a parallel application on one
1988       command line:
1989
1990              $ salloc -N5 srun -n10 myprogram
1991
1992
1993       To create a heterogeneous job with  3  components,  each  allocating  a
1994       unique set of nodes:
1995
1996              $ salloc -w node[2-3] : -w node4 : -w node[5-7] bash
1997              salloc: job 32294 queued and waiting for resources
1998              salloc: job 32294 has been allocated resources
1999              salloc: Granted job allocation 32294
2000
2001

COPYING

2003       Copyright  (C)  2006-2007  The Regents of the University of California.
2004       Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
2005       Copyright (C) 2008-2010 Lawrence Livermore National Security.
2006       Copyright (C) 2010-2018 SchedMD LLC.
2007
2008       This file is part of Slurm, a resource  management  program.   For  de‐
2009       tails, see <https://slurm.schedmd.com/>.
2010
2011       Slurm  is free software; you can redistribute it and/or modify it under
2012       the terms of the GNU General Public License as published  by  the  Free
2013       Software  Foundation;  either version 2 of the License, or (at your op‐
2014       tion) any later version.
2015
2016       Slurm is distributed in the hope that it will be  useful,  but  WITHOUT
2017       ANY  WARRANTY;  without even the implied warranty of MERCHANTABILITY or
2018       FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General  Public  License
2019       for more details.
2020
2021

SEE ALSO

2023       sinfo(1),  sattach(1),  sbatch(1),  squeue(1), scancel(1), scontrol(1),
2024       slurm.conf(5), sched_setaffinity (2), numa (3)
2025
2026
2027
2028April 2021                      Slurm Commands                       salloc(1)
Impressum