SunHPC - Hochleistungsrechnen auf dem Sun Fire SMP-Cluster

 

 

Zeit:

Montag, 11.3. bis Freitag, 15.3.2002

Ort:

Hörsaal und Workstation-Pool des Rechenzentrums

Ruud van der Pas (Sun), Dieter an Mey, Hans-Joachim Pflug, Bruno Lang

Einleitung

Nach der Inbetriebnahme der dritten Installationsstufe des neuen Großrechnersystems von der Firma Sun Microsystems im Laufe des Februars wird an der RWTH einer der leistungsstärksten Rechner Deutschlands den hiesigen Forschern zur Verfügung stehen.
In dieser einwöchigen Veranstaltung sollen die wesentlichen Aspekte der Nutzung und insbesondere der effizienten Programmierung dieses Sun Fire SMP-Clusters beleuchtet werden.

Die Kursreihe setzt sich zusammen aus Blöcken von Vorträgen mit zugehörigen praktischen Übungen, die separat von Ihnen belegt werden können, je nachdem welche Vorkenntnisse Sie besitzen.
Die Teilnahme an den praktischen Übungen setzen geringfügige Kenntnisse im Umgang mit Unix voraus, die Sie am Montag Vormittag erwerben können.
Insgesamt werden grundlegende Programmierkenntnisse in Fortran oder C erwartet. Auch wenn C++ nicht explizit in diesen Kursen adressiert wird, so sind die behandelten Themen zur effizienten Programmierung und zur Parallelisierung mit C++ gleichermaßen relevant.
Grundkenntnisse über die Architektur von Cache-basierten Mikroprozessoren sind für die effiziente serielle Programmierung und auch für die Shared Memory-Parallelisierung notwendig. Deswegen wird die Architektur insbesondere der UltraSPARC III basierten Systeme am Dienstag Vormittag behandelt. Die Kurse am Mittwoch und Donnerstag bauen darauf auf.

Die Veranstaltung wird vom Rechen- und Kommunikationszentrum der RWTH in Zusammenarbeit mit Sun Microsystems organisiert und von Sun Microsystems unterstützt.
Wir sind sehr froh, zum wiederholten Male Ruud van der Pas, einen der Spezialisten von Suns europäischem HPC-Team als Sprecher gewonnen zu haben. Er wird in Englisch vortragen.
Eine Teilnehmergebühr wird nicht erhoben; allerdings muss jeder für seine persönlichen Reise- und Unterkunftskosten selbst aufkommen.
Kunden, Partner und Angestellte der Firma Sun sind herzlich willkommen.

Hinweis auf den nachfolgenden SunTune Workshop

Aufbauend auf dieser Veranstaltungsreihe wird am 17. und 18. April ein weiterer SunTune Workshop angeboten. In Zusammenarbeit mit einer kleinen Gruppe von Nutzern, die grosse Rechenprojekte auf dem neuen Hochleistungsrechner durchführen (wollen), möchten wir versuchen, deren Programme auf die spezielle UltraSPARC-III basierte Rechnerarchitektur anzupassen und zu beschleunigen.

Zeitplan

 

Montag
11.3.2002
9:00 - 12:30

UNIX Grundlagen Hans Joachim Pflug

13:30 - 17:00

Fortran 90/95 im Überblick
Dieter an Mey

Dienstag
12.3.2002
9:00 - 12:30

Das Sun Fire SMP-Cluster: Architektur, Konfiguration, Compiler, Intervallarithmetik
Ruud van der Pas, Dieter an Mey, Bruno Lang

13:30 - 17:00

Handwerkszeug zur Programmierung: Versionsverwaltung, Makefiles, Fehlersuche
Dieter an Mey, Hans Joachim Pflug

Mittwoch
13.3.2002
9:00 - 17:00

Optimierung serieller Programme
Ruud van der Pas

Donnerstag
14.3.2002
9:00 - 17:00

Shared Memory Parallelisierung, automatisch und mit OpenMP
Ruud van der Pas, Dieter an Mey

Freitag
15.3.2002
9:00 - 15:30

Message Passing mit MPI
Hans Joachim Pflug

Anmeldung

Bitte melden Sie sich hier für die einzelnen Veranstaltungsblöcke an.

Unterbringung und Informationen über Aachen

Bitte reservieren Sie Ihr Hotel selbst.
Sie finden zahlreiche Hotels auf den Webseiten des Aachener Touristenbüros.
Ein paar Hinweise dazu haben wir hier zusammengestellt.

 

Der Weg nach Aachen

Die Webseiten des Aachener Touristenbüros erklären sehr gut, wie Sie nach Aachen gelangen koennen.
Eine ausführliche Beschreibung der Lage des Rechenzentrums finden Sie hier.
Ein weiteres Bild weist den Weg mit dem Auto.
Laden Sie einen Lageplan mit einigen markanten Punkten herunter.

Weitere Informationen zu den einzelnen Kursen

  •  Unix Die wichtigsten Konzepte der Unix-Betriebssysteme werden am Beispiel von Solaris 8 erläutert. Kommandos, die zur Programmerstellung und zum Programmablauf wichtig sind, werden vorgestellt. Zudem wird auf die Besonderheiten der Benutzerumgebung auf dem Aachener Sun Fire SMP-Cluster eingegangen: Batchjobverwaltung mit der Sun GridEnginge (ehemals Codine), Dateimanagement.
  •  Fortran90/95 Dieser Kurs wendet sich an Programmierer anderer Sprachen, sowie an Fortran77-Programmierer, die ihre Kenntnisse vertiefen und sich über die Möglichkeiten von Fortran90/95 informieren wollen.
    Der Schwerpunkt wird auf die performante, technisch-wissenschaftliche Programmierung gelegt.

    Obwohl Fortran nur noch wenig an der Hochschule unterrichtet wird, dominieren Fortran-Programme immer noch deutlich den Anwendungsbereich des Hochleistungsrechnens. Und das vor allem aus zwei Gründen:

        •  Fortran-Programme sind schnell, da sie den Compilern erleichtern, zu optimieren, zu vektorisieren und zu parallelisieren.
        •  Es gibt (immer noch) viele umfangreiche in Fortran geschriebene Programmpakete.
    In den letzten Jahren wurden neue Programme im technisch-wissenschaftlichen Bereich meist in C oder in C++ entwickelt, vor allem weil der alte Sprachstandard Fortran77 einige moderne Sprachkomponenten vermissen ließ. Die Verabschiedung des Sprachstandards Fortran90/95 zog sich über viele Jahre hin, und aufgrund der Komplexheit der neuen Sprachelemente waren gute neue Compiler erst spät verfügbar.
    Heute jedoch gibt es gute Gründe, sich Fortran erneut anzusehen, denn Fortran90/95 verfügt über
      •  dynamische Speicherverwaltung,
      •  Strukturen, rekursive Prozeduren, u.a.m.
      •  einige Komponenten aus der OO-Programmierung,
      •  neue Komponenten, die das fehlerfreie Programmieren erleichtern,
      •  mächtige Sprachelemente zur Feldverarbeitung
      •  leistungsfähige Compiler auf allen Plattformen.

  •  Das Sun Fire SMP-Cluster Das Aachener Sun Fire SMP-Cluster, derzeit bestehend aus 16 SunFire 6800 Servern mit je 24 UltraSPARC-III Prozessoren, wird in Kürze um 4 SunFire 15K Systeme mit je 72 UltraSPARC-III Prozessoren erweitert, die voraussichtlich zum Zeitpunkt der Veranstaltung in Betrieb sein werden. Die effiziente Nutzung dieser gewaltigen Maschinerie und die Teilnahme an den folgenden Kursen setzen eine gewisse Kenntnis über Konfiguration und Architektur voraus.
      • Die heutigen Mikroprozessoren machen heftigen Gebrauch von schnellen Pufferspeichern (Caches), um den rasant wachsenden Geschwindigkeitsunterschied zwischen Prozessor und Hauptspeicher zu überbrücken. Die sich daraus ergebende Speicherhierarchie wird zunehmend komplexer. In vielen Fällen besteht das Beschleunigen eines Programmes darin, diese Speicherhierarchie optimal auszunutzen.
      • Das wichtigste Hilfsmittel zur Programmierung sind die Compiler. Sun hat die Fortran77, Fortran95, C und C++ Compiler in die Forte Developer Entwicklungsumgebung integriert, die auch einen Debugger und ein Laufzeitanalyse-Tool beinhaltet. Diese Komponenten sind über grafische Interfaces und auch über Zeilenkommandos nutzbar. Die wichtigsten Compiler-Optionen werden in diesem Kurs vorgestellt.
      • Eine Besonderheit der Sun-Compiler und der UltraSPARC-III Prozessoren, ist die eingebaute Unterstützung der Intervall-Arithmetik. Ein kurzer Einblick in die Welt der Intervallrechnung soll Sie dazu anregen, einmal über alternative Möglichkeiten der numerischen Mathematik nachzudenken.

  • Handwerkszeug zur Programmierung Einige wichtige Hilfsmittel können die Entwicklung von und den Umgang mit großen Programmpaketen deutlich erleichtern:
      • Die Versionsverwaltung ermöglicht es, den Überblick über Programmversionen zu behalten, und Programmpakete im Team zu entwickeln.
      • Das Übersetzen von großen Programmpaketen wird häufig über sogenannte Makefiles gesteuert. Damit wird gewährleistet, dass bei Änderung einzelner Programmteile nur die davon abhängigen Module neu übersetzt werden.
      • Ein guter Debugger ist ein unverzichtbares Hilfsmittel bei der Fehlersuche. Mit TotalView haben wir den State-of-the-art-Debugger für serielle und parallele Programm lizensiert. Aber es gibt auch andere Hilfsmittel bei der Fehlersuche ...

  • Optimierung serieller Programme Es mag den Anschein haben, dass serielle Optimierung ein alter Hut ist und nicht weiter beachtet zu werden braucht. Doch obwohl die Compiler-Technologie ständig weiter voranschreitet, ist häufig Raum für wesentliche Verbesserungen in vielen Anwendungen.
    Die serielle Performance ist aus verschiedenen Gründen von Bedeutung:
        • Resourcen werden besser ausgenutzt, in der Regel ohne zusätzliche Kosten zu verursachen.
        • Der Geschwindigkeitsgewinn kann beträchtlich sein.
        • Nach einer Parallelisierung läuft das zuvor serielle beschleunigte Programme auch auf mehreren Prozessoren umso besser.
    Zahlreiche Techniken zur Programmoptimierung wurden über die Jahre entwickelt. Die wichtigsten sind heutzutage Teil der Optimierung durch die Compiler. Dennoch fehlt es den Compilern oft an der nötigen Information, die optimalen Entscheidungen zu fällen.
    In dem Kurs werden die wichtigsten Optimierungstechniken vorgestellt, so dass der Programmier selbst entscheiden kann, was zur Performance-Verbesserung mit oder ohne Hilfe des Compilers geschehen kann. Zudem werden Techniken erläutert, die das, was von einem Compiler heute erwartet werden kann, übersteigen.

  • Shared Memory Parallelisierung, automatisch und mit OpenMP 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 unterstützt 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 für gut auf Vektorrechner angepasste Programme geeignet. Dabei bleibt das Programm unverändert seriell ablauffähig, dh. es ist nicht nötig, separate Programmversionen zu pflegen. Allerdings wird der Geschwindigkeitsgewinn begrenzt bleiben. Häufig lohnt es sich, etwa 4 CPUs dabei zu nutzen.
        2. Andererseits kann das Programm auch auf höherer Ebene mit OpenMP parallelisiert werden (grob-granulare Parallelisierung). Das erfordert u.U. (aber nicht immer) eine genauere Analyse des Programmes und auch weitreichendere Änderungen. Hier steht das OpenMP-Programmiermodell in Konkurrenz zur Message-Passing-Parallelisierung mit MPI. Welcher Ansatz für ein gegebenes Programm von Vorteil ist, lässt sich nicht generell beantworten.
    Für sehr rechenintensive Programme kommt auch die Kombination von MPI und OpenMP in Beracht (hybride Parallelisierung)
  • Message Passing mit MPI Das Message Passing Interface (MPI) ist eine standardisierte Programmierbibliothek zur Parallelisierung von Programmen auf Rechnern mit verteiltem Speicher.
    Ein und dasselbe MPI-Programm wird in aller Regel mehrfach gestartet (SPMD=Single Program Multiple Data). Durch eine eindeutige Identifikationsnummer, die das MPI-Laufzeitsystem vergibt, können die beteiligten Prozesse unterschieden werden. Die Prozesse kommunizieren miteinander durch das Senden und Empfangen von Nachrichten über ein Netzwerk, was durch das Aufrufen von MPI-Unterprogrammen geschieht. Ist gemeinsamer Speicher (shared memory) vorhanden, wie auf den Knoten des neuen Sun Fire SMP-Clusters, wird der gemeinsame Speicher zur Kommunikation benutzt.
    Da sich die MPI-Programmierung auf die Verwendung von C-, C++-, oder Fortran-Unterprogrammaufrufen beschränkt, ist das Erlernen von MPI prinzipiell einfach. Allerdings ist die Parallelisierung eines vorhandenen Programmen mit MPI häufig sehr aufwendig, was dadurch belohnt wird, dass die parallelisierten Programme auf allen modernen Parallelrechnern lauffähig sind, auch auf Clustern von PCs oder Workstations.
    Da der Sprachumfang von MPI recht umfangreich ist, können nur die wesentlichen Konzepte unterrichtet werden. Mit den bereitstehenden Online-Informationen kann MPI ohne weiteres im Selbststudium tiefergehend erlernt und genutzt werden.

Die aufbereiteten Videoaufnahmen finden Sie (soweit derzeit fertig gestellt) hier.

 

Kontakt:   

Dieter an Mey

Tel.: +49 241 80 24377

    

 

  • Keine Stichwörter