Dies ist eine alte Version des Dokuments!
Rechenaufträge werden im Allgemeinen als „Jobs“ bezeichnet. Diese werden von einem Batchsystem verwaltet, welches die Jobs auf die Rechenknoten verteilt und deren Fortschritt überwacht. Auf dem Phoenix wurde Slurm als Batchsystem 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>
squeue
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.