OpenMP-Kurs

VortragZeit:Mo. 21.1.2002 um 14-17:30
Ort:Hoersaal des Rechenzentrums
PraktikumZeit:Di. 22.1.2002 um 15-17
Ort:Mata-Pool des Rechenzentrums
VortragenderDieter an Mey
Anmeldung Bitte beachten Sie die separate Buchung von Vortrag und Praktium!

Inhalt

OpenMP ist ein sich als de facto-Standard etablierendes Modell zur Shared-Memory-Programmierung mit Compilerdirektiven und Funktionsaufrufen in den Programmiersprachen Fortran, C und C++, das auf dem neuen Sun Fire SMP-Cluster sehr gut unterstuetzt wird.

Es gibt prinzipiell zwei Vorgehensweisen bei der Nutzung von OpenMP zur Parallelisierung eines vorhandenen Programmes:

  1. Ein Programm kann schrittweise auf Schleifenebene mit Hilfe von Direktiven und auch mit Hilfe des autoparallelisierenden Compilers parallelisiert werden. Das ist insbesondere fuer gut auf Vektorrechner angepasste Programme geeignet. Dabei bleibt das Programm unveraendert seriell ablauffaehig, dh. es ist nicht noetig separate Programmversionen zu pflegen. Allerdings wird der Geschwindigkeitsgewinn begrenzt bleiben. Haeufig lohnt es sich etwa 4 CPUs dabei zu nutzen.
  2. Andererseits kann das Programm auch auf hoeherer Ebene mit OpenMP parallelisiert werden (grob-granulare Parallelisierung). Das erfordert u.U. (aber nicht immer) eine genauere Analyse des Programmes und auch weitreichendere Aenderungen. Hier steht das OpenMP-Programmiermodell in Konkurrenz zur Message-Passing-Parallelisierung mit MPI. Welcher Ansatz fuer ein gegebenes Programm von Vorteil ist, laesst sich nicht generell beantworten.
    Fuer sehr rechenintensive Programme kommt auch die Kombination von MPI und OpenMP in Beracht (hybride Parallelisierung)

In dem Vortragsteil soll gruendlich in die Programmierung von OpenMP eingefuehrt werden. Da der Sprachumfang absichtlich klein und handlich gehalten wurde, geht das Erlernen von OpenMP schnell.
Im Praktikum soll vor allem die Handhabung von OpenMP an kleinen und einfachen Beispielen eingeuebt werden und die Verwendung von einigen in diesem Zusammenhang wichtigen Programmierhilfsmitteln:

  • OpenMP-Compiler und Laufzeitanalyse mit der Sun Workshop-Programmierumgebung
  • Die Guide OpenMP-Compiler und das Laufzeitanalyse-Tool GuideView aus dem KAP Pr/Toolset von KAI
  • Die herausragenden Hilfsmittel zur Verifizierung von OpenMP Programmen Assure und AssureView aus dem KAP Pr/Toolset von KAI
  • Der TotalView-Debugger kann in Verbindung mit dem Guide-Compiler genutzt werden.

Kursmaterial

Errata

In den Folien gibt es folgende Fehler:

  • In C muss unmittelbar hinter der Direktive
    #pragma omp for
    die for-Anweisung folgen. Diese darf nicht in einer Verbundanweisung ( { ... } ) stehen.
  • In C muss unmittelbar hinter der Direktive
    #pragma atomic
    die atomar auszufuehrende Anweisung folgen. Diese darf nicht in einer Verbundanweisung ( { ... } ) stehen.

Kontakt

Dieter an Mey
Email: anmey@rz.rwth-aachen.de
Tel: +49 241 804377

  • Keine Stichwörter