Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
hlr:phoenix:jobs_starten [2017/09/17 21:04] y0050733 |
— (aktuell) | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ======3. Jobs starten ====== | ||
- | Rechenaufträge werden im Allgemeinen als "Jobs" bezeichnet, die vom Batchsystem verwaltet werden. | ||
- | |||
- | 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 ==== | ||
- | |||
- | |||
- | <code> | ||
- | #!/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 | ||
- | </code> | ||
- | ==== Wie startet man einen Job? ==== | ||
- | |||
- | <code>sbatch --job-name=$jobname -N <num_nodes> --ntasks-per-node=<ppn> Jobscript</code> | ||
- | |||
- | Eine Startzeit kann mit dem Schalter --begin vorgegeben werden Beispielsweise: | ||
- | |||
- | <code>--begin=16:00 | ||
- | --begin=now+1hour | ||
- | --begin=now+60 (seconds by default) | ||
- | --begin=2010-01-20T12:34:00 | ||
- | </code> | ||
- | 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? ==== | ||
- | |||
- | <code>scancel <jobid></code> | ||
- | |||
- | Die dazu notwendige ID kann mit dem squeue Kommando ermittelt werden. | ||
- | |||
- | Alle Jobs eines Users löschen: | ||
- | |||
- | <code>scancel –u <username></code> | ||
- | |||
- | ==== Wie frage ich den Status eigener Jobs ab? ==== | ||
- | |||
- | <code>squeue</code> | ||
- | |||
- | |||
- | ==== Interaktive Jobs ==== | ||
- | |||
- | |||
- | |||
- | Für Interaktive jobs: | ||
- | |||
- | sbatch beispiel.job | ||
- | |||
- | Submitted batch job 1256 | ||
- | |||
- | <code> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | 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 | ||
- | |||
- | <code> | ||
- | strg a d | ||
- | </code> | ||
- | 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. | ||
- | |||
- | |||
- | | ||
- | |