| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
| hpc:hpc_tubit:slurm_usage [2018/08/29 17:35] – kraus | hpc:hpc_tubit:slurm_usage [2018/09/01 11:55] (aktuell) – kraus |
|---|
| | <WRAP left aligned round alert 50%>**Still under construction**</WRAP> |
| | |
| | ====== Using the SLURM batch job facility ====== |
| | |
| | \\ |
| | |
| | ===== Common Commands ===== |
| | |
| | - slurm (introduction) |
| | - interactive jobs: **salloc** (only interactive jobs) && **srun** (interactive jobs and tasks) |
| | - batch jobs: **sbatch** (batch jobs to queue) |
| | - **scancel** (signal/stop running jobs) |
| | - **sstat** (infos wrt. running jobs) |
| | - **squeue** (show queues) |
| | - sinfo (show node infos) |
| | \\ |
| | |
| | ===== Manpages ===== |
| | |
| | * ''man 1 sbatch'' |
| | * ''man 1 srun'' |
| | * ''man 1 salloc'' |
| | * ''man 1 scancel'' |
| | * ''man 1 squeue'' |
| | * ''man 1 sinfo'' |
| | \\ |
| | |
| | ===== Common terms ===== |
| | |
| | |
| | * cpu: hardware processor, a core (not logical CPU entity, no hyperthreading) |
| | * node: computing host |
| | |
| | * queue: scheduling of jobs on a partition/group of nodes |
| | * partition: a group of nodes with similar computing capabilities |
| | * task: runs a process within a SLURM job context (does not need to do resource allocation) |
| | * allocation: reservation of resources for interactive/batch job |
| | * job: a collection of job steps (needs resource allocation) |
| | * step: single command as part of a job |
| | \\ |
| | |
| | ===== Important switches for sbatch/srun/salloc ===== |
| | |
| | - ''-a <index_range>'' <html> <span style="white-space:pre"> </span> </html>job array with index range, e.g. ''-a 0,1,4-6'' or ''-a 0-8:2'' (environment variables available: **SLURM_ARRAY_TASK_ID**, **SLURM_ARRAY_JOB_ID**, **SLURM_ARRAY_TASK_COUNT** etc.) |
| | - '' -d <dependency_list>'' <html> <span style="white-space:pre"> </span> </html>define dependencies on other jobs (dependency_list: **after:job_id[:job_id]** or **afterok:job_id[:job_id]** and so on) |
| | - <html>--</html>''begin=<time_string>'' <html> <span style="white-space:pre"> </span> </html>(absolute/relative) start time of job (see ''man 1 sbatch'') |
| | - <html>--</html>''deadline=<time_string>'' <html> <span style="white-space:pre"> </span> </html>job only scheduled as long as it finishes before deadline |
| | - <html>--</html>''mem=<amount[T|G|M|K]>'' <html> <span style="white-space:pre"> </span> </html>amount of resident memory **per node** to allocate, e.g. 1G (1 Gibibyte) |
| | - ''-t <time>'' set job's wall clock time |
| | - ''-e <file>'' <html> <span style="white-space:pre"> </span> </html>where to redirect error output |
| | - ''-o <file>'' <html> <span style="white-space:pre"> </span> </html>where to redirect stdout |
| | - ''-i <file>'' <html> <span style="white-space:pre"> </span> </html>read stdin for job script from file |
| | - ''-J <job_name>'' |
| | - ''-c <cpus_per_task>'' <html> <span style="white-space:pre"> </span> </html>number of threads per task |
| | - ''-n <ntasks>'' <html> <span style="white-space:pre"> </span> </html>the overall amount of task (all nodes) |
| | - <html>--</html>tasks-per-node=<ntasks> <html> <span style="white-space:pre"> </span> </html>number of tasks launched on each node |
| | - ''-N <node_list>'' <html> <span style="white-space:pre"> </span> </html>where <node_list> e. g.: node001; node[001-005,009]; node001,node008 |
| | - <html>--</html>''mail-type=<types>'' <html> <span style="white-space:pre"> </span> </html>**NONE**, **BEGIN**, **END**, **FAIL**, **REQUEUE**, **ALL**, **ARRAY_TASKS** etc., for further explanations see ''man 1 sbatch'' |
| | - ''-v'' <html> <span style="white-space:pre"> </span> </html>run in verbose mode |
| | \\ |
| | |
| | ===== Useful combination of arguments for srun/sbatch/salloc ===== |
| | |
| | - -N and -n and <html>--</html>task-per-node= |
| | - -N and -n and -c |
| | \\ |
| | |
| | ===== Links ===== |
| | |
| | - https://hpc.tu-berlin.de/doku.php?id=hpc:scheduling:beispiele |
| | - https://www.lrz.de/services/compute/linux-cluster/batch_serial |
| | - https://www.lrz.de/services/compute/linux-cluster/batch_serial/example_jobs |
| | - https://www.lrz.de/services/compute/linux-cluster/batch_parallel |
| | - https://www.lrz.de/services/compute/linux-cluster/batch_parallel/example_jobs (external, seen on 08-12-2018) |
| | |
| | \\ |
| | <WRAP rightalign> |
| | date of revision: 08-30-2018 © kraus |
| | </WRAP> |
| |