Logo: Leibniz Universität Hannover

Intel MPI

Beschreibung

Intel MPI ist eine Implementation des MPI-Standards für Nutzung mit den Intel C/C++ und/oder Intel Fortran Compilern.

Verfügbar auf:

  • RRZN-Computeservern

Ansprechpartner

  • Dr Gerd Brand
  • Dr Paul Cochrane

Benutzung auf den RRZN-Computeservern

Um dieses Paket zu benutzen, muss man das Modul laden.  Dies macht man so:

module load impi

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

  • Intel MPI Dokumentation

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 impi


# 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 --rsh=ssh -machinefile $PBS_NODEFILE -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 erste Argument zum mpirun Aufruf spezifiziert, dass ssh als Kommunikationsprotokoll verwendet werden soll.  Per default ist dies auf rsh eingestellt, was auf dem Clustersystem aus Sicherheitsgründen ausgeschlossen ist.  Der zweite Argument spezifiziert die Rechnernamen der Rechenknoten, die für die Berechnung verwendet werden sollen.  Die automatische Umgebungsvariable $PBS_NODEFILE wird vom Batchsystem gesetzt und enthält die benötigte Rechnernameliste.  Der dritte Argument 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.

Leibniz Universität IT Services - URL: www.rrzn.uni-hannover.de/intel_mpi.html?&L=2
 
Dr Paul Cochrane, Letzte Änderung: 25.04.2012
Copyright Gottfried Wilhelm Leibniz Universität Hannover