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:
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.
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
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
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.
Die Prozessoranzahl wird fixiert durch die Environment-Variable: MP_SET_NUMTHREADS
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 | ![]() |