Paketname
Beschreibung
OpenMPI ist eine Open-Source Implementation des MPI-Standards. Die Implementierung erkennt automatisch sowohl das Netz für die Interprozesskommunikation als auch die Batchsystemumgebung unter der das MPI-Programm läuft.
Verfügbar auf:
- RRZN-Computeservern
Ansprechpartner
Benutzung auf den RRZN-Computeservern
Um dieses Paket zu benutzen, muss man das Modul laden. Dies macht man so:
module load openmpi
Falls Sie die Fehlermeldung "module: command not found" bekommen, müssen Sie dieses Kommando eingeben (im normalen Fall ist das "module" Kommando bereits vorhanden):
source /usr/share/Modules/init/`basename $SHELL`
Am besten sollte die erste Zeile eines Batchskriptes die folgende Zeile enthalten:
#!/bin/bash -login
dann wird die Modulesumgebung automatisch beim Jobstart geladen.
Dokumentation und Beispiele
Um ein MPI-Programm unter Kontrolle des Batchsystems laufen zu lassen verwendet man ein Batchskript ähnlich wie folgendes:
#!/bin/bash -login
#PBS -N <jobname>
#PBS -M ich@meine.email.adresse.de
#PBS -m ae
#PBS -j oe
#PBS -l nodes=2:ppn=4
#PBS -l walltime=01:10:00
#PBS -l mem=4gb
# show which computer the job ran on
echo "Job ran on:" $(hostname)
# load the relevant modules
module load openmpi
# change to work dir:
cd $PBS_O_WORKDIR
# determine the number of processes in the job
nprocs=$(cat ${PBS_NODEFILE} | wc -l)
# the program to run in parallel
mpirun -np $nprocs <program>
In diesem Beispiel werden zwei Knoten mit 4 Prozesse pro Knoten (ppn), eine Stunde und 10 Minuten Wallclockzeit und 4GB Hauptspeicher angefordert.
Die Gesamtanzahl an angeforderten Prozesse wird durch in die Umgebungsvariable nprocs gesetzt und später im mpirun Aufruf verwendet. In diesem Falle wird die Variable nprocs den Wert '8' enthalten.
Der Argument zum mpirun Aufruf spezifiziert die Anzahl an Prozesse, die für die Berechung benutzt werden sollen. Die Anzahl wird aus der Variable nprocs gelesen. Zuletzt übergibt man den Dateinamen (nötigenfalls mit vollem Pfad) des MPI-Programmes, das ausgeführt werden soll.
Obwohl die -machinefile bzw. -hostfile Optionen exisitieren, sollte man diese aber nicht benutzen, da OpenMPI diese Information aus der Umgebung des Batchsystems herauszieht und die Nutzung dieser Optionen auf dem Clustersystem zu Fehler führen wird.

