Job Directives
Any shell script can be submitted as a Slurm job with no modifications. In such a case, sensible default values will be applied to the job. However, you can configure the script to fit your needs through job directives. In Slurm, these are just special comments in your script, usually at the top just after the shebang line, with the form:
...
Directive | Description | Default |
---|---|---|
| Project account for resource accounting and billing purposes. | default project account for the user |
| A descriptive name of the job | Script name |
--chdir=... | Working directory of the job. The output and error files can be defined relative to this directory | submitting directory |
| Path to the file where standard output is redirected. Special placeholders for job id (%j) and the execution node (%N) | slurm-%j.out |
| Path to the file where standard error is redirected. Special placeholders for job id (%j) and the execution node (%N) | output value |
| Quality of Service (or queue) where the job is to be submitted. Check the available queues for the platform. | nf or ef |
| Wall clock limit of the job. Note that this is not cpu time limit The format can be: m, m:s, h:m:s, d-h, d-h:m or d-h:m:s | qos default time limit |
--mail-type=<type> | Notify user by email when certain event types occur. Valid values are: BEGIN, END, FAIL, REQUEUE and ALL | disabled |
--mail-user=<email> | email address to send the email | submitting user |
Directives for resource
...
allocation
Directive | Description | Default |
---|---|---|
| Allocate resources for the specified number of parallel tasks. Note that a job requesting more than one must be submitted to a parallel queue. There might not be any parallel queue configured on the cluster | 1 |
| Allocate <nodes> number of nodes to the job | 1 |
| Allocate <threads> number of cpus for every task. Use for threaded applications. | 1 |
| Allocate a maximum of <tasks> tasks on every node. | node capacity |
| Allocate <threads> threads on every core (HyperThreading) | core thread capacity |
| Use or not hyperthreaded cores and define the binding accordingly. | not defined |
| Allocate <mem> memory for on each taskcore thread capacitynode | 8 GB for serial and fractional jobs(*i, *f and *l QoS), 240 for parallel jobs (*p QoS) |
Tip |
---|
See man sbatch or https://slurm.schedmd.com/sbatch.html for the complete list of directives and their options. |
...