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
hlr:phoenix:jobs_starten [2017/09/17 21:08]
y0050733 [3. Batchsystem]
— (aktuell)
Zeile 1: Zeile 1:
-======3. Batchsystem ====== 
  
-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/​]]. 
- 
- 
-===== 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. 
- 
- 
-        ​ 
-        ​ 
hlr/phoenix/jobs_starten.1505675323.txt.gz · Zuletzt geändert: 2017/09/17 21:08 von y0050733
Gauß-IT-Zentrum