1salloc(1) Slurm Commands salloc(1)
2
3
4
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
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
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
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
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
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
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
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
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
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
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
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
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)