Hochleistungsrechnen
im Rechenzentrum

 

Eine Vortragsreihe im Hörsaal des Rechenzentrums
jeweils Dienstags von 14 bis 16.30 Uhr

15.Februar 2000 Hochleistungsrechen im Rechenzentrum - heute und morgen

Vortragsfolien;


22. Februar 2000

Serielle Programmierung, Entwicklung, Fehlersuche und Beschleunigung

Vortragsfolien;


29.Februar 2000

Parallele Programmierung mit der MPI Message Passing Bibliothek

Vortragsfolien;


7.März 2000

Parallele Programmierung für Shared-Memory-Rechner mit OpenMP

Vortragsfolien;


Einige Links zum Thema Hochleistungsrechnen im Rechenzentrum finden Sie unten.
 
 
Feedback
Wir sind sehr an Ihrem Feedback zu den Vortraegen interessiert.
Haben Sie Vorschlaege zur Verbesserung unseres Informationsangebots?
Bitte, senden Sie uns eine E-Mail!

 


Hochleistungsrechen im Rechenzentrum - heute und morgen

Dienstag, 15. Februar 2000, 14.00 bis 16.30 Uhr
Hörsaal des Rechenzentrums
Vortragende: Dr. Klaus Brühl, Dieter an Mey


Als zentrale Einrichtung der RWTH Aachen bietet das Rechenzentrum Rechenkapazität für die Institute der Hochschule an. Integriert in den UNIX-Workstation-Verbund stehen heute neben gut ausgebauten Linux-PCs und Workstations von IBM, HP, SGI, Siemens/Fujitsu und SUN mit breiter Software-Palette folgende Hochleistungsrechner zur Verfügung:

  • Siemens hpcLine - ein Parallelrechner mit 32 Prozessoren auf PC-Basis mit insgesamt 12,8 Gigaflops Spitzenleistung und 8 Gigabyte Hauptspeicher
  • Hewlett Packard V-Class Model 2250 - ein Shared-Memory-Parallelrechner mit 16 Prozessoren und insgesamt 15,4 Gigaflops Spitzenleistung und 8 Gigabyte Hauptspeicher
  • Landeshöchstleitungsrechner Fujitsu VPP300/8 - ein Vektorparallelrechner mit 8 Vektorprozessoren und insgesamt 17,6 Gigaflops Spitzenleistung und 16 Gigabyte Hauptspeicher

Derzeit werden Vorbereitungen zur Anschaffung eines neuen Höchstleistungsrechners für die RWTH getroffen.

Während bislang die meisten Programme noch seriell, d.h. auf einem Prozessor ablaufen, werden Parallelrechner mehr und mehr eingesetzt, da sich nur so Programme mit großen Speicher- und Laufzeitanforderungen in vertretbarer Zeit lösen lassen.

In den letzten Jahren konnte für viele Kunden des Rechenzentrums der Hunger auf große Rechenleistung durch das Angebot an Vektorrechnerkapazität gestillt werden. Inzwischen haben sich jedoch die preiswerteren Workstation- (RISC-) Prozessoren sowie die PC-Prozessoren sehr stark weiterentwickelt und die Vektorrechner in ihrer Verbreitung zurückgedrängt. Zudem werden heute von allen namhaften Rechnerherstellern Shared-Memory-Systeme (Rechner, bei denen mehrere Prozessoren auf einen gemeinsamen Hauptspeicher zugreifen können) mit sehr vorteilhaftem Preisleistungsverhältnis angeboten. Zum Aufbau von Hochleistungsrechnern werden zunehmend mehrere Shared-Memory-Systeme durch ein schnelles Netzwerk zu sogenannten SMP-Clustern zusammengeschaltet.

Die Architektur solcher Systeme beeinflusst deren Programmierung: An die Stelle der automatischen Vektorisierung tritt die automatische (Shared-Memory-) Parallelisierung. Wie die Vektorisierung so kann auch die Parallelisierung durch Direktiven beeinflusst werden.

Zur Entwicklung von portablen parallelen Programmen, die keinen gemeinsamen Speicher benötigen, bietet sich seit einigen Jahren MPI als Standard zur Message-Passing-Programmierung an. Hingegen setzt sich zur expliziten Parallelisierung von Shared-Memory-Rechnern erst in jüngster Zeit OpenMP als neuer Standard durch.

Jedoch bevor ein serielles Programm für einen Parallelrechner vorbereitet wird, sollte es gut verstanden und an den jeweiligen Rechner angepasst sein.

Dieser Vortrag gibt einen ersten Überblick über die Rechnerarchitekturen und die Programmierparadigmen. Die Aspekte der seriellen Programmierung und der parallelen Programmierung mit MPI und OpenMP sollen in den nachfolgenden Vorträgen vertieft werden.
 
 

 


Serielle Programmierung, Entwicklung, Fehlersuche und Beschleunigung

Dienstag, 22. Februar 2000, 14.00 bis 16.30 Uhr
Hörsaal des Rechenzentrums
Vortragende: Dieter an Mey, Dr. Jörg Henrichs


Vor der Parallelisierung eines bestehenden Programms steht das Verständnis der seriellen Version. Damit es zunächst fehlerfrei abläuft, ist es hilfreich, auf gut funktionierende Hilfsmittel zurückgreifen zu können.
Der im Hochleistungsrechnen auf nahezu allen Plattformen verfügbare Debugger für Programme in Fortran, C und C++ ist Totalview von der Firma Etnus (www.etnus.com), der auch zur Fehlersuche von parallelen Programmen genutzt werden kann.

Zur Fehlersuche und zum Verständnis eines seriellen Programms dient auch eine statische Analyse. Für die im wissenschaftlich-technischen Bereich derzeit am weitesten genutzte Programmiersprache Fortran steht dazu neben dem bekannten, frei verfügbaren Hilfsmittel ftnchek (nur für Fortran77) auch das weniger bekannte, aber sehr mächtige Hilfsmittel Foresys von der Firma Simulog (www.simulog.fr) zur Verfügung. Foresys erlaubt zudem die automatische Restrukturierung eines Fortran-Programmes und die Umwandlung von Fortran77 nach Fortran90.

Auf einige der wichtigsten Möglichkeiten von Fortran90 soll im Rahmen dieses Vortrags ebenfalls eingegangen werden.

Zur Beschleunigung eines Programmpaketes führt man zunächst eine Laufzeitanalyse durch, damit man sich auf die rechenzeitintensiven Programmteile konzentrieren kann. Die Hilfsmittel dazu sind derzeit leider noch maschinenabhängig.

Die Beschleunigung eines seriellen Programms geschieht dann sowohl durch gezielte Programmmodifikationen, als auch durch geeignete Auswahl von Compileroptionen und Compilerdirektiven, die leider auch maschinenabhängig sind.

Ein Hilfsmittel zur gezielten Cache-Optimierung von Fortran-Programmen ist der Präprozessor Visual KAP for OpenMP von der Firma Kuck & Ass. Inc (www.kai.com)
 
 


Parallele Programmierung mit der MPI Message Passing Bibliothek

Dienstag, 29. Februar 2000, 14.00 bis 16.30 Uhr
Hörsaal des Rechenzentrums
Vortragende: Dr. Bruno Lang, Dr. Jörg Henrichs


Das dominierende Modell für die parallele Programmierung ist zur Zeit das Message Passing. Der Datenaustausch zwischen den einzelnen Prozessoren muss dabei durch entsprechende Befehle explizit durchgeführt werden.

Das Message Passing Interface (MPI) ist ein de-facto Standard, der im technisch-wissenschaftlichen Rechnen PVM (Parallel Virtual Machine) nahezu vollständig abgelöst hat. MPI-Implementierungen sind derzeit für C, C++, Fortran 77 und Fortran 90 und auf allen Parallelrechnern und Cluster-Systemen verfügbar. Dadurch ergibt sich neben einer hohen Effizienz auch der Vorteil der Portabilität des parallelen Programms.

MPI verfügt über mehr als 100 Befehle und ist damit ein sehr komplexer Standard. Oftmals genügen aber 10 bis 20 Befehle, um ein Programm zu parallelisieren.

MPI-Programme können mit Hilfe der frei verfügbaren Software mpich vom Argonne National Lab (www.mcs.anl.gov/mpi) auf jeder Workstation oder jedem PC entwickelt werden.

Zum Debugging steht von der Firma Etnus TotalView zur Verfügung und zur Laufzeitanalyse das frei verfügbare jumpshot und das kommerzielle Vampir von der Firma Pallas (www.pallas.com).

In diesem Vortrag wird zunächst auf das prinzipielle Vorgehen bei der Parallelisierung eines Programms anhand von einfachen Beispielen eingegangen. Daran schließt sich eine kurze Einführung in die wichtigsten Möglichkeiten von MPI an.


Parallele Programmierung für Shared-Memory-Rechner mit OpenMP
 

Dienstag, 7. März 2000, 14.00 bis 16.30 Uhr
Hörsaal des Rechenzentrums
Vortragender: Dieter an Mey

Während lange Zeit die Shared-Memory-Programmierung mit herstellerabhängigen Hilfsmitteln notwenig war, so setzt sich (endlich!) mit OpenMP ein Standard für die Sprachen Fortran, C und C++ durch (www.openmp.org). Es ist inzwischen für alle namhaften Shared-Memory-Rechner verfügbar. OpenMP ist nicht nur für die Parallelisierung der unteren Programmebene geeignet, sondern auch für grob granulare Parallelisierung und tritt damit auf Shared-Memory-Rechnern auch in Konkurrenz zu MPI.

Zwar sieht die Programmierung mit OpenMP zunächst einfach aus, doch steckt der Teufel oft im Detail. Ein bei der Verifizierung und Fehlersuche sehr nützliches Hilfsmittel ist Assure der Firma Kuck & Ass. Inc. (KAI). Darüber hinaus ist seit kurzem auch TotalView in der Lage, OpenMP-Programme zu analysieren.

Zur Laufzeitanalyse bietet KAI in Verbindung mit dem OpenMP Präprozessor Guide das grafische Hilfsmittel Guideview an.

Die Shared-Memory-Parallelisierung kann auch automatisch durch Compiler durchgeführt werden, allerdings nur auf unterer Programmebene, in unterschiedlicher Qualität und mit maschinenabhängigen Direktiven gesteuert.

Eine Alternative dazu bietet der Präprozessor Visual KAP for OpenMP von KAI, der in der Lage ist, OpenMP-Direktiven in ein Fortran-Programm einzufügen, das danach als parallele Programmversion portabel ist.
 
 


Links zum Thema Hochleistungsrechnen am Rechenzentrum

Hochleistungsrechnen

Nutzung spezieller Hardware


Nutzung spezieller Software

Telefonnummern:

        Beratung Hochleistungsrechnen (Raum 2.14)
        Tel. 0241/80-4377
        E-Mail: anMey@rz.rwth-aachen.de

Stand: 19.01.2000

 

  • Keine Stichwörter