Sprungmarken

Videoportal der FAU

Die letzten Meldungen

Anleitungen des BSI zu sicheren Konfiguration, Installation und Minimierung von Windows-PCs

9. Februar 2012

Hiermit möchten wir auf zwei Veröffentlichungen desĀ  BSI (Bundesamt für Sicherheit in der Informationstechnik) hinweisen.
Weiterlesen...

Serverwartung Novell am Do, 09.02. ab 17 Uhr: MEMORY, HOMER, GWPOST4 (GW)

7. Februar 2012

Am Donnerstag, 09.02.2012 ab 17 Uhr findet eine dringende Serverwartung der folgenden Server statt. Die Wartung dauert bis voraussichtlich 19 Uhr. In dieser Zeit müssen die Server mehrmals gebootet werden, so dass wir empfehlen sich rechtzeitig von den Servern abzumelden.
Weiterlesen...

Firefox 10, Thunderbird 10, Firefox 10 ESR, Thunderbird 10 ESR sind da

2. Februar 2012

Seit 31.1.2012 sind Firefox und Thunderbird in der Version 10 verfügbar.
Weiterlesen...

Meldungen nach Thema

 

Software-Umgebung auf den HPC-Systemen am RRZE

Veraltete Seite

Diese Seite ist veraltet. Sie wurde durch eine allgemeinere Seite zur Umgebung auf den RRZE HPC Systemen ersetzt. Bitte nicht mehr auf diese Seite verlinken.

Diese Webseite behandelt die folgenden Themen:

Module-Konzept

Auf allen HPC-Systemen des RRZE sind gängige Tools zur Software-Entwicklung (Editoren, Compiler, Bibliotheken, ...) sowie ausgewählte Anwendungsprogramme verfügbar. Für eine Vielzahl von Applikationen ist es nötig, spezielle Umgebungsvariablen zu setzten, damit z.B. Suchpfade stimmen oder Lizenzserver gefunden werden. Um den Anwendern die Auswahl von und das Wechseln zwischen verschiedenen Softwarepaketen oder verschiedenen Versionen eines Softwarepakets zu erleichtern, wird auf allen Linux-basierten HPC-Systemen des RRZE das Module-System (vgl. Externer Link:  modules.sourceforge.net) verwendet. Damit lassen sich Einstellungen für unterschiedlichste Programme und Versionen einheitlich und einzelnen sehr bequem laden und ggf. später auch wieder entladen (entfernen). Die neuen, einheitlichen Module-Befehle ersetzen damit die bisherigen applikationsspezifischen source-Kommandos.

Wichtige module Kommandos

Übersicht der wichtigsten module Kommandos
module avail zeigt alle dem System verfügbaren Module an
module whatis zeigt eine ausführlichere Liste aller auf dem System verfügbaren Module an
module list zeigt die aktuell geladenen Module an
module load <pkg> lädt das Modul pkg, d.h. alle Einstellungen (z.B. Suchpfade), die für das Paket pkg nötig sind, werden gesetzt
module unload <pkg> entfernt das Module pkg, d.h. Einstellungen, die durch das Laden gemacht wurden, werden wieder rückgängig gemacht
module help <pkg> zeigt eine detaillierte Beschreibung zum Module pkg an
module show <pkg> zeigt an, welche Einstellungen durch das Module pkg gesetzt werden

Allgemeine Hinweise zur Benutzung

  • Durch die Module werden jeweils nur in der aktuellen Shell veränderungen vorgenommen.
  • Sollen einzelne Module stets geladen werden, so kann der entsprechende Befehl z.B. in die Datei $HOME/.cshrc geschrieben werden.
  • Der Syntax der module-Befehle ist unabhängig von der verwendeten Shell. Sie lassen sich daher unverändert in PBS-Jobscripten verwenden.
  • Manche Module können/sollten nicht gleichzeitig mit anderen geladen werden. In einigen Fällen wird ein solcher Konflikt beim Laden automatisch erkannt. Es erscheint dann eine entsprechende Fehlermeldung und es werden keinerlei Veränderungen vorgenommen.

Wichtige Module auf dem IA32-Cluster

Auf dem IA32-Cluster sind diverse Meta-Module vorhanden. Diese Module laden automatisch weitere Einzelmodule und vereinfachen somit die Auswahl empfohlener Softwarekomponenten. Details zu den Einzelmodulen finden Sie weiter unten auf dieser Seite.

Wichtige Meta-Module auf dem IA32-Cluster
intel Durch dieses Meta-Modul wird die Verwendung der Intel C/C++ und Fortran Compiler in der vom RRZE empfohlenen Version für 32 Bit Systeme vorbereitet. Gleichzeitg werden die nötigen Einstellungen für ein dazu passendes GBit-MPICH gesetzt.
intel64 Durch dieses Meta-Modul wird die Verwendung der Intel C/C++ und Fortran Compiler in der vom RRZE empfohlenen Version für 64 Bit Systeme vorbereitet. Gleichzeitg werden die nötigen Einstellungen für ein dazu passendes GBit-MPICH gesetzt.
mpich/gnu und mpich/gnu64 Dieses Modul ist genau genommen kein Meta-Modul, da die GNU Compiler standardmässig im Suchpfad enthalten sind. Dieses Module bereitet die Verwendung von MPICH über GBit mit den 32/64-bit GNU Compilern vor.

Um eine grössere Wahlmöglichkeit zu haben, kann man auch einzelne Module in speziellen Versionen laden:

Speziellere Module auf dem IA32-Cluster
intel-c/X.Y-Z, intel-f/X.Y-Z, intel64-c/X.Y-Z und intel64-f/X.Y-Z Durch diese Module können spezielle Versionen der Compiler ausgewählt werden. MPI-Module werden dadurch nicht automatisch geladen.
mpich/gnu64-ib und mpich/intel64-ib Lädt die Einstellungen für die Infiniband-Variante von MPICH.

Eine aktuelle Liste mit allen verfügbaren Modulen mit entsprechenden Beschreibungen erhalten Sie durch die Befehle module avail und module whatis!

Einige Tipps, welche den Umgang mit den Modulen insbesondere in Makefile-Dateien erleichtern können:

  • Durch die MPI-Module werden die Umgebungsvariablen MPICHROOTDIR und MPIHOME auf das jeweilige Basisverzeichnis der passenden MPICH-Version gesetzt. Der Zugriff auf die Include-Dateien und Bibliotheken kann somit in Makefiles vereinheitlicht als $MPIHOME/include und $MPIHOME/lib erfolgen.
  • Die Intel Compiler-Module setzen analog die Umgebungsvariablen INTEL_C_HOME bzw. INTEL_F_HOME auf das jeweilige Basis-Verzeichnis. Dies kann insbesondere hilfreich sein, wenn man Fortran und C++ Objekte miteinadere Linken will und dafür die passenden Bibliotheken manuell angeben muss.

Wichtige Module auf der SGI Altix

Auf der SGI Altix ist es nicht nötig, MPI Module zu laden, so dass es auf diesem System insbesondere Module zum Laden der Intel Compiler gibt. Die Namenskonvention entspricht der des IA32-Clusters.

Übersicht über verfügbare Software auf den verschiedenen HPC-Systemen

Die nachfolgende Tabelle soll eine grobe Übersicht über die auf den verschiedenen HPC-Systemen verfübare Software geben. Aktuelle Informationen insbesondere zu den verfügbaren Versionsnummern erhalten Sie durch den Aufruf von module avail auf den entsprechenden Maschinen.

Verfügbare Development-Software auf den verschiedenen HPC-Maschinen
Programm(klasse)Cluster32SGI AltixWoodyBemerkung
GNU Compiler 4.x als default 4.x als default 4.x als default die exakte Version variiert abhänig von der zugrundeliegenden Distribution
Native Compiler (32 bit) Intel C/C++ und Fortran90 Compiler N/A N/A
Native Compiler (64 bit) Intel C/C++ und Fortran90 Compiler für EM64T 9.1 und neuer Intel C/C++ und Fortran90 Compiler für IA64 9.1 und neuer Intel C/C++ und Fortran90 Compiler für EM64T 9.1 und neuer
Mathematische Bibliotheken Intel MKL Intel MKL
SCSL (nur in Verbindung mit Intel 7.1 Compiler)
Intel MKL
MPI Bibliotheken mpich-1.2.x in passenden Versionen für alle vorhandenen Compiler SGI MPT Intel MPI
Debugger ddd, Totalview (32-bit) auf sfront01/02 ddd DDT
Profiling-Tools ja ja ja für Details bitte HPC-Beratung kontaktieren
Verfügbare Applikations-Software auf den verschiedenen HPC-Maschinen
Programm(klasse)Cluster32SGI AltixWoodyBemerkung
STAR-CD ja auf Anfrage ja Bezügl. Lizenz bitte hpc@rzze kontaktieren
CFX-5 lauffähig auf Anfrage ja Bei Interesse bitte hpc@rzze kontaktieren und Lizenz selbst besorgen
Fluent prinzipiell lauffähig -- -- Das RRZE kann hierfür keinerlei Hilfestellung geben! Bei jeglichen Problemen bitte stets Fluent Deutschland kontaktieren
Bio-Chemie Software ja ja ja gaussian, amber, gromacs, etc.
abaqus ja -- ja Bei Interesse bitte hpc@rzze kontaktieren.
maple
mathematica

OpenMP Pinning

Allgemeines

Um optimale Performance mit OpenMP Codes zu erzielen, ist - speziell auf ccNUMA-Maschinen wie den Opterons im Cluster64 oder einigen Testclustermaschinen, aber nicht nur dort - richtiges Pinning der von OpenMP erzeugten Threads essenziell wichtig.
Hierfür bieten wir auf den RRZE-Systemen (inkl. Testcluster) eine bequeme Möglichkeit: Wir haben eine kleine Bibliothek implenentiert, die zur Laufzeit die Aufrufe des OpenMP-Programms zum Erstellen der Threads durch Varianten ersetzt, welche das Pinning erledigen.

Verwendung

Zur einfachen Verwendung dieser Bibliothek existiert das Script /apps/rrze/bin/pin_omp das im einfachsten Fall wie folgt verwendet wird:
/apps/rrze/bin/pin_omp -c 0-7 ./mybinary
Dies startet ./mybinary und pint die Threads auf Core 0-7.

Mögliche Probleme

Leider ist die Bibliothek aus verschiedenen Gründen nicht immer so einfach verwendbar:

  • statisch gelinkte Binaries lassen sich nicht durch unsere Bibliothek austricksen. Es funktionieren folglich nur dynamisch gelinkte Binaries.
  • Die Bibliothek geht von dem Thread-Layout aus, das die Intel Compiler erzeugen. Binaries die mit anderen Compilern erzeugt wurden erfordern möglicherweise andere Parameter und könnten daher durch die Verwendung der Bibliothek sogar langsamer werden.
  • Die Intel-Compiler ab Version 10.0 versuchen selbst ein Pinning, das mit den Pinningversuchen unserer Bibliothek kollidiert. Das führt im Normalfall dazu, dass alle Threads auf einem einzigen CPU-Kern landen, was natürlich eine grausige Performance ergibt. Allerdings tun sie das nur auf original Intel CPUs, wenn die gleichen Binaries z.B. auf einem Opteron ausgeführt werden, führen sie keine Pinningversuche durch, und unsere Bibliothek funktioniert wie erwartet. Ab Compilerversion 10.1.18 oder 11.0 lässt sich das Pinning durch setzen der Umgebungsvariable KMP_AFFINITY deaktivieren: setenv KMP_AFFINITY disabled
  • Die Reihenfolge der CPU Parameter wird nicht beachtet: -c 0-7 hat genau den gleichen Effekt wie -c 1,3,5,7,0,2,4,6. Eine Reihenfolge kann jedoch per Umgebungsvariable erzwungen werden - siehe hierzu den Abschnitt für Fortgeschrittene.

Die folgende Tabelle fasst die empfohlenen Einstellungen zusammen:

Empfohlene Kombinationen von Compilern und pin_omp Wrapper
Compilerauf Intel CPUsauf nicht-Intel CPUs (z.B. Opteron)
Intel 9.1pin_omp verwendenpin_omp verwenden
Intel 10.0 bis 10.1.17pin_omp nicht verwendenpin_omp verwenden
Intel ab 10.1.18pin_omp verwenden, Variable KMP_AFFINITY auf disabled setzen.pin_omp verwenden

Weitere Möglichkeiten für erfahrene Benutzer

Fortgeschrittene Benutzer können das Verhalten der Bibliothek durch Umgebungsvariablen sehr detailiert beeinflussen.

Variablen für Fortgeschrittene und ihre Bedeutung
Variable Bedeutung
PINOMP_MASK funktioniert ähnlich wie der 'dplace' Parameter -x, d.h. es wird eine Zahl erwartet, die als Bitmaske interpretiert wird. Die Threads fuer die das entsprechende Bit gesetzt ist werden nicht gepinnt.
PINOMP_SKIP Funktioniert wie der 'dplace' Parameter -s: Der Thread mit der angegeben Nummer wird nicht gepinnt. Mehrere Werte können durch Komma getrennt angegeben werden.
PINOMP_CPUS Spezifiziert explizit die zu verwendenden CPUs und ihre Reihenfolge, wobei die CPU-Nummern durch Komma getrennt angegeben werden müssen. Dies überschreibt den -c Parameter auf der Kommandozeile.

Letzte Änderung: 1. Februar 2011, Ansprechpartner, Historie

zum Seitenanfang

Startseite | Kontakt | Impressum

RRZE - Regionales RechenZentrum Erlangen, Martensstraße 1, D-91058 Erlangen | Tel.: +49 9131 8527031 | Fax: +49 9131 302941

Inhaltenavigation

FAU - Friedrich-Alexander-Universität
UnivIS - Informationssystem der Friedrich-Alexander-Universität Erlangen Nürnberg

Zielgruppennavigation

  1. Studierende
  2. Beschäftigte
  3. Einrichtungen
  4. IT-Beauftragte
  5. Presse & Öffentlichkeit