hpc:hpc_tubit:slurm_usage

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hpc:hpc_tubit:slurm_usage [2018/08/24 11:21] – hpc_tubit:usage_slurm umbenannt in hpc:hpc_tubit:slurm_usage kraushpc:hpc_tubit:slurm_usage [2018/09/01 11:55] (aktuell) – kraus
Zeile 1: Zeile 1:
 + <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>