Parallelisierung

Während früher ein Universalrechner (Main frame) für alle Anwendungen zum Einsatz kam, werden heute unterschiedliche Rechnerarchitekturen (PVP, MPP, SMP, Cluster von SMP) verwendet, um den speziellen Anwendungsproblemen besser gerecht zu werden. An dieser Stelle sollen zwei Architekturkonzepte hervorgehoben werden, die entsprechende Programmiermodelle implizieren :

Um effizient zu programmieren, ist es wichtig, daß die zur Parallelisierung eingesetzten Programmiermodelle der Architektur des verwendeten Hochleistungsrechner angepaßt werden. Ein wichtiges Kriterium ist das dem Rechner zugrunde liegende Speichermodell (distributed oder shared memory). Danach unterscheidet man zwei Programmierparadigma:

  1. Shared-Memory-Programmierung
  2. Message-Passing-Programmierung

Für den Programmierer ist neben der Skalierbarkeit des Codes auch die Portabilität wichtig, d.h. die Entwicklung eines Codes, der auf möglichst vielen Plattformen läuft, wobei Standards eine wichtige Funktion spielen.

Während sich MPI als Defacto-Standard bei dem Message-Passing-Konzept schon länger durchgesetzt hat, ist OpenMP zur Standardisierung der Parallelisierungsdirektiven für Rechner mit gemeinsamen Speicher erst ein relativ neuer Standard.

CRAY T3E

Das grundlegende Architekturkonzept des massiv-parallelen Prozessorsystems T3E, also einem MPP-Rechner, ist ein skalierbares MIMD-System mit einem physisch verteilten, jedoch global adressierbaren Speicher. Um effizienten Code zu generieren, ist das auf Message Passing beruhende Programmierparadigma einzusetzen. Dazu dienen die im Message Passing Toolkit enthaltenen Kommunikationsbibliotheken:

Für den Anwender stehen mit der komfortablen Programmierumgebung der T3E optimierende Compiler (Fortran 90, C, C++) und die parallele wissenschaftliche Bibliothek SCI zur Verfügung. Diese Compiler unterstützen die parallele Programmierung via Message Passing Toolkit, der F90-Compiler darüber hinaus auch OpenMP.

Hinweise zur Nutzung der parallelen Bibliothek der T3E

  • SCI - Cray Scientific Library (man intro_libsci) mit FFT, BLAS, BLACS, LAPACK, SCALAPACK, Solver für spezielle lineare und dünnbesetzte lineare Systeme
    Beispiel: f90 -X m -o my_par my_par.f -lsci (m -Anzahl der PEs)
  • Hinweise zum Programmieren mit Message Passing finden Sie auf der folgenden Homepage des ZAM, FZ Jülich zum Downloaden: http://www.fz-juelich.de/zam/docs/Folien.html

    SGI Origin

    Die Origin2000 und auch die Origin3000 sind skalierbare, symmetrische Multiprozessorsysteme (SMP) mit distributed shared-memory (DSM). Der Hauptspeicher ist zwar lokal auf die einzelnen Prozessoren verteilt, der Zugriff und die Nutzung kann jedoch von allen Prozessoren gleichermaßen erfolgen. Damit ist sowohl eine einfache parallele Programmierung nach dem Shared-Memory-Prinzip als auch die zwar schwieriger zu programmierende, aber meist effizientere Methode mittels Message Passing möglich.

    Programmierumgebung Origin

    Die Prozessoranzahl wird fixiert durch die Environment-Variable: MP_SET_NUMTHREADS

    Parallelisierungsempfehlungen für Shared-Memory-Programmierung

    1. Nutzung von parallelen mathematischen Bibliotheken
    2. Complib - wissenschaftliche und mathematische Bibliothek mit BLAS, Extended BLAS (Level 2 und 3), EISPACK, LINPACK und LAPACK
      Beispiel zum Linken der parallelen Bibliothek:
      f77 -O3 -64 -mp -o my_par my_par.f -lcomplib.sgimath_mp -lblas_mp
    3. SCSL- SGI Cray Scientific Library mit mehr als 130 BLAS-Routinen, LAPACK, FFT, Solvers für lineare Gleichungen (Beschreibung: man intro_libscsl)
      Beispiel zum Linken der parallelen Bibliothek:
      f77 -O3 -64 -mp -o my_par my_par.f -lscs_mp
    4. NAG Parallel Library
      Beispiel und Beschreibung
    5. Optimierung des seriellen Programms
    6. Verwendung der automatischen Parallelisierungsoption der Compiler
    7. Kritische Überprüfung der eingefügten Direktiven
    8. Optimierung des parallelen Programms

    Das ZHR bietet zum Thema Optimierung/Tuning von Fortran- und C-Programmen sowie zur Performance-Analyse Lehrgänge und Projektunterstützung an.


    Dr. Stefanie Maletti, 1.10.02 URZ-Homepage