TU Berlin

ComputeserverParallele Jobs auf mehreren Knoten (MPI)

Page Content

to Navigation

There is no English translation for this web page.

Parallel Jobs auf mehreren Knoten (MPI)

Für den Fall, dass die Cores auf einem Knoten nicht ausreichen, gibt es verschiedene Möglichkeiten, einen Job über mehrere Knoten verteilt laufen zu lassen. Die Methode der Wahl im Cluster ist dafür das Message Passing Interface (MPI), genauer gesagt OpenMPI. Um das auszunutzen, muss die verwendete Software gegen OpenMPI gelinkt sein. Dazu stehen Module für verschiedene OpenMPI- Versionen und Compiler zur Verfügung. Eine Übersicht liefert

module avail ompi

Im Jobscript muss dann ein "parallel environment (PE)" für MPI ausgewählt werden, wie das folgende Beispiel zeigt.

1 #!/bin/bash --login
2 #$ -cwd
3 #$ -N mptest
4 #$ -o mptest.out
5 #$ -j y
6 #$ -pe ompi* 36-108
7 #$ -m abe
8 #$ -M meine.mail@adresse
9 module load ompi/gcc/3.1.4
10 mpirun -np $NSLOTS ./meinmpiprogrammdasmindestens36coresbenutzt

Zeile 6 fordert zwischen 36 und 108 Slots an. Das Batchsystem setzt die Variable NSLOTS auf die Anzahl der tatsächlich erhaltenen Slots. in Zeile 9 wird das OpenMPI-Modul in der Version 3.1.4 für den GNU C-Compiler geladen. In Zeile 10 wird dann das eigentliche Programm mittels mpirun gestartet.

Wird als PE ompi* verwendet, dann verteit wählt das Batchsystem einen Cluster aus und verteilt die Slots nach eigenem Ermessen auf die Knoten. Eine genauere Steuerung ist durch die Angabe eines geeigneten PEs möglich. ompix_y wählt Cluster x und jeweils y Slots auf jedem Knoten. Zum Beispiel würde ompi22_2 jeweils 2 Slots auf Knoten von Cluster 22 wählen. Wird für y der spezielle Wert fill gesetzt, dann werden alle freien Slots auf einem Knoten genommen. Wildcards sind möglich, z.B. ompi*_4 oder ompi22_*.

Eine Liste der Hosts, auf denen ein Job MPI-Slots zugewiesen bekommen hat, befindet sich im File $PE_HOST_FILE.

Navigation

Quick Access

Schnellnavigation zur Seite über Nummerneingabe