Dies ist eine alte Version des Dokuments!


Queuing-System (Slurm)

Kurze Einführung und FAQ zum Queueing-System

Allgemeines

Als Batchsystem wurde Slurm installiert. Dokumentationen dazu können auf folgender Webseite gefunden werden: http://slurm.schedmd.com/.

Partitionen (Queues)

In Slurm werden die verschiedenen Warteschlangen von Jobs als Partitionen bezeichnet. Jede Partition hat ein bestimmtes Verhalten, Beispielsweise wie viele Knoten mindestens und/oder maximal genutzt werden können oder mit welcher Priorität freie Knoten zugeteilt werden.

Auf welche Partitionen ein Nutzer zugreifen kann, wird vom Nutzerrat entschieden. Dadurch kann sichergestellt werden, dass bestimmten Nutzer(gruppen) priorisiert werden können bzw. das wichtige Jobs nicht ausgebremst werden.

Jobs

Beispieljobscript

#!/bin/bash
# Job name:
#SBATCH --job-name=SLinpack # Wall clock limit:
#SBATCH --time=1:00:00
# Number of tasks (cores): #SBATCH --ntasks=4
#SBATCH --exclusive
module add mpi/intelmpi/5.1.2.150 module add intel-studio-2016
mkdir ~/systemtests/hpl/$HOSTNAME cd ~/systemtests/hpl/$HOSTNAME
cp ${MKLROOT}/benchmarks/mp_linpack/bin_intel/intel64/runme_intel64_prv . cp ${MKLROOT}/benchmarks/mp_linpack/bin_intel/intel64/xhpl_intel64 .
HPLLOG=~/systemtests/hpl/$HOSTNAME/HPL.log.2015.$(date +%y-%m-%d_%H%M)

mpirun -genv I_MPI_FABRICS shm -np $MPI_PROC_NUM -ppn $MPI_PER_NODE ./runme_intel64_prv "$@" | tee -a $HPLLOG

Wie startet man einen Job?

sbatch --job-name=$jobname -N <num_nodes> --ntasks-per-node=<ppn> Jobscript

Eine Startzeit kann mit dem Schalter –begin vorgegeben werden Beispielsweise:

--begin=16:00
--begin=now+1hour
--begin=now+60 (seconds by default) 
--begin=2010-01-20T12:34:00

Weitere Informationen bietet auch man sbatch Sämtliche dort verwendeten Parameter können auch im Jobscript selber mit #SBATCH angebene werden.

Wie beendet man einen Job?

scancel <jobid>

Die dazu notwendige ID kann mit dem squeue Kommando ermittelt werden.

Alle Jobs eines Users löschen:

scancel –u <username>

Wie funktionieren interaktive Jobs?

3 Varianten → nur eine davon sinnvoll zu verwenden

Wie frage ich den Status eigener Jobs ab?

squeue

Wie ändere ich den Knotenstatus?(nur root)

scontrol update nodename=node[005-008] state=drain reason=”RMA”

Würde die Knoten aus den verfügbaren Knoten ausschließen so dass keine Jobs mehr dorthin submittet werden können, und man die Knoten zum Testen/Reparieren benutzen kann.

scontrol update nodename=node[005-008] state=idle

würde dies zurücksetzen. und ist ggf auch notwendig wenn Knotenabstürze dazu führten, dass ein Knoten aus dem Batchsystem ausgeschlossen wurde.

Interaktive Jobs

Für Interaktive jobs:

sbatch beispiel.job

Submitted batch job 1256

beispiel.job

#!/bin/bash -l

#SBATCH --partition=standard
#SBATCH --nodes=1
#SBATCH --time=7-00:00:00
#SBATCH --job-name=towhee
#SBATCH --ntasks-per-node=1

cd ~/data_dir
sleep 168h

squeue -l zeigt an auf welchen knoten der job läuft

1256 standard towhee raskrato RUNNING 0:04 7-00:00:00 1 node282

Mit ssh auf node282 einloggen

Dann mit screen eine Shell aufmachen, die bestehen bleibt, wenn man sich ausloggt.

Das Programm in dieser shell starten.

Mit

strg a d

die Shell verlassen (aber Hintergrund weiter laufen lassen). Soviele weitere Shells mit screen aufmachen, wie benötigt werden. Mit screen -r die shells anzeigen lassen (wenn es nur eine gibt klingt man sich sofort wieder ein). Mit screen -r shellnummer kommt auf eine shell im Hintergrund rein. Um die Shell zu beenden strg c drücken und exit eingeben.

hlr/phoenix/queueing-system_slurm.1507056236.txt.gz · Zuletzt geändert: 2017/10/03 20:43 von y0050733
Gau-IT-Zentrum