Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
hlr:phoenix [2017/08/21 16:44] mscheer angelegt |
hlr:phoenix [2017/09/17 21:11] (aktuell) y0050733 |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ======Nutzeranleitung Phoenix====== | + | ======Phoenix-Cluster====== |
- | =====Login===== | ||
- | Um auf dem Phoenix-Cluster zu arbeiten sind einige wenige Grundkenntnisse für die Arbeit mit Linux-System erforderlich. | + | {{:hlr:phoenix_01.jpg?direct&600|}} |
- | Zur Arbeit auf dem Cluster stellen Sie eine SSH-Verbindung zu einem Loginknoten unter ''username@phoenix.hlr.rz.tu-bs.de'' her. Dabei ist ''username'' Ihr Benutzername, den Sie für alle Dienste des Gauß-IT-Zentrum nutzen, das Passwort ist das dazu gehörige Passwort.  | + | |
- | Â | + | |
- | ssh username@phoenix.hlr.rz.tu-bs.de | + | |
- | Â | + | |
- | Für die Verwendung graphischer Anwendungen ist eine X-Weiterleitung mittels dem Parameter "-Y" (nicht "-X") nötig. | + | |
- | Â | + | |
- | ssh -Y username@phoenix.hlr.rz.tu-bs.de | + | |
- | Â | + | |
- | Â | + | |
- | Â | + | |
- | =====Jobs starten=====Â | + | |
- | Â | + | |
- | Wenn Sie mit einem Loginknoten verbunden sind, gibt es zwei Möglichkeiten Jobs zu starten: Direkt per Jobfile (dies ist die übliche Vorgehensweise), oder per Allokierung ("Reservierung") von Resourcen mithilfe eines Jobfiles, um interativ auf einzelnen Knoten zu arbeiten. | + | |
- | Â | + | |
- | Â | + | |
- | Â | + | |
- | ====Jobfile====Â | + | |
- | Â | + | |
- | Ein Jobfile bzw. Jobscript sieht beispielsweise wie folgt aus: Â | + | |
- | Â | + | |
- | <code>Â | + | |
- | #!/bin/bash | + | |
- | # Job name: #SBATCH --job-name=Jobname  | + | |
- | # 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>Â | + | |
- | <code>Â | + | |
- | #!/bin/bash -l | + | |
- | Â | + | |
- | #SBATCH --partition=standard | + | |
- | #SBATCH --nodes=2Â | + | |
- | #SBATCH --time=12:00:00Â | + | |
- | #SBATCH --job-name=nearest | + | |
- | #SBATCH --ntasks-per-node=20Â | + | |
- | Â | + | |
- | Â | + | |
- | working_dir=~Â | + | |
- | cd $working_dir | + | |
- | module load comp/gcc/6.3.0Â | + | |
- | module load mpi/openmpi/2.1.0/gcc | + | |
- | mpiexec -np 40 ./test/mpinearest | + | |
- | </code>Â | + | |
- | Â | + | |
- | ''partition'' gibt die Partition (auch Queue genannt) an, auf der Sie rechnen wollen. | + | |
- | ''time'' gibt die maximale Laufzeit Ihres Jobs an, bevor dieser dann abgebrochen wird. | + | |
- | ''job-name'' gibt einen Namen an, unter dem Sie Ihren Job später in SLURM wieder finden können. | + | |
- | Â | + | |
- | Ein Jobfile muss dann mittels ''sbatch'' gestartet werden. Â | + | |
- | Â | + | |
- | username@login01 [~] sbatch jobname.job | + | |
- | Â | + | |
- | 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'' angeben werden.  | + | |
- | Â | + | |
- | Â | + | |
- | Â | + | |
- | ====Interaktive Anwendungen====Â | + | |
- | Â | + | |
- | Wenn Sie sich Knoten reservieren wollen um interaktiv auf diesen zu arbeiten, ist dies mit einem simplen Jobfile möglich: | + | |
- | <code>Â | + | |
- | #!/bin/bash -l | + | |
- | Â | + | |
- | #SBATCH --partition=standard | + | |
- | #SBATCH --nodes=1Â | + | |
- | #SBATCH --time=7-00:00:00Â | + | |
- | #SBATCH --job-name=SleepExample | + | |
- | #SBATCH --ntasks-per-node=1Â | + | |
- | Â | + | |
- | cd ~/data_dir | + | |
- | sleep 168h | + | |
- | </code>Â | + | |
- | Bei der Ausführung per ''sbatch'' wird dann ein Knoten für die angegebene Zeit benutzt. Da ein Job läuft, kann auf diesen vom Besitzer per SSH zugegriffen werden. Um den richtigen Knoten zu finden, verwenden Sie ''squeue'' und suchen nach dem angegebenen Jobnamen. Danach aktivieren Sie den Sitzungsmanager mit ''screen''. | + | |
- | Â | + | |
- | <code>Â | + | |
- | username@login01 [~] sbatch jobname.job | + | |
- | [Knoten finden]Â | + | |
- | username@login01 [~] ssh node265Â | + | |
- | username@node265 [~] screen | + | |
- | username@node265 [~] ... | + | |
- | </code>Â | + | |
- | Nachdem Sie nun eine Anwendung gestartet haben, können Sie die Sitzung mit ''Strg + A + D'' in den Hintergrund verschieben. Wichtig ist dabei, dass Sie vorher ''screen'' eingegeben haben, um den Sitzungsmanager zu starten.  | + | |
- | Â | + | |
- | Eine in den Hintergrund verschobene Sitzung wird nicht geschlossen, wenn Sie die SSH-Verbindung trennen. Damit laufen Ihre Prozesse in diesen Sitzungen entsprechend weiter, andernfalls würden Sie beendet werden! | + | |
- | Â | + | |
- | Um eine einzelne Sitzung wieder aufzunehmen verwenden Sie auf dem entsprechenden Knoten ''screen -r''. Sollten mehrere Sitzungen im Hintergrund offen sein, wird eine Liste angezeigt, aus der Sie spezifizieren müssen: | + | |
- | <code>Â | + | |
- | username@node265 [~] screen -r | + | |
- | Â | + | |
- | 154577.pts-0.node265 (Detached)Â | + | |
- | 154308.pts-0.node265 (Detached)Â | + | |
- | 153240.pts-0.node265 (Detached)Â | + | |
- | Type "screen [-d] -r [pid.]tty.host" to resume one of them. | + | |
- | username@node265 [~] screen -r 153240.pts-0.node265Â | + | |
- | </code>Â | + | |
- | Diese Sitzung lässt sich danach mit Eingabe von ''screen -d'' wieder in den Hintergrund verschieben. | + | |
- | Â | + | |
- | Â | + | |
- | Â | + | |
- | =====Jobs überwachen===== | + | |
- | Â | + | |
- | Sie können sich mit dem Befehlt ''squeue'' eine Liste aller Jobs in SLURM anzeigen lassen. Mehr Informationen gibt es mit ''squeue -l''. | + | |
- | <code>Â | + | |
- | username@login01 [~]squeue | + | |
- | JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)Â | + | |
- | 333 standard MD_BA_GA user0001 R 58:56 1 node265Â | + | |
- | 336 standard bash username R 1:12 2 node267,node268Â | + | |
- | 334 standard bash user0002 R 50:16 1 node266Â | + | |
- | 331 vis vis user0003 R 1:25:22 1 vis01Â | + | |
- | 329 standard name1 user0003 PD 00:00 1 (Resources)Â | + | |
- | </code>Â | + | |
- | ''JOBID'' ist die ID der Jobs, um diese in SLURM ansprechen zu können.  | + | |
- | ''NAME'' ist der von Ihnen gewählte Name zur leichteren Identifikation des Jobs.  | + | |
- | ''ST'' gibt den Status des Jobs an (''R'' = Running, ''PD'' = Wartend). | + | |
- | ''TIME'' beschreibt die Zeit, die der Job bereits läuft. | + | |
- | Sollte der Job nicht laufen (''PD''), wird unter ''NODELIST'' statt der Knoten eine knappe Begründung angegeben, warum der Job (noch) nicht läuft. | + | |
- | Â | + | |
- | Â | + | |
- | Â | + | |
- | =====Jobs abbrechen=====Â | + | |
- | Â | + | |
- | Mit der ID des Jobs lässt sich ein Job mit ''scancel'' abbrechen: | + | |
- | <code>Â | + | |
- | username@login01 [~]scancel 336Â | + | |
- | salloc: Job allocation 336 has been revoked. | + | |
- | </code> | + | |
+ | Bei Fragen oder Problemen wenden Sie sich bitte an [[phoenix-support@tu-bs.de|phoenix-support@tu-bs.de]] |