Dies ist eine alte Version des Dokuments!
Kurze Einführung und FAQ zum Queueing-System
Als Batchsystem wurde Slurm installiert. Dokumentationen dazu können auf folgender Webseite gefunden werden: http://slurm.schedmd.com/.
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.
#!/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
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.
scancel <jobid>
Die dazu notwendige ID kann mit dem squeue Kommando ermittelt werden.
Alle Jobs eines Users löschen:
scancel –u <username>
3 Varianten → nur eine davon sinnvoll zu verwenden
squeue
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.
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.