Vorlesung SS 06

(2 SWS Vorlesung,  Nr. 042201, 2 SWS Übung, Nr: 042202)

 

Verteilte numerische Algorithmen

Zeit:

            Dienstag:                  14:15-16:00 GB V, HS 113
            Donnerstag               16.15-18.00 GB V, R 420

Veranstalter:

            Peter Buchholz (Tel.: (0231) 755 4746, Email: peter.buchholz@udo.edu)
            Sprechstunde: Donnerstag 10:00-11.30 und n.V.     GB V R 406a

Inhalt:

Die Analyse vieler komplexer natürlicher und technischer Systeme erfordert den Einsatz rechenintensiver numerischer Verfahren. Typische Anwendungsgebiete sind die Wetter- oder Klimavorhersagen, die Analyse von Meeresströmungen, die Optimierung des Luftwiderstands im Fahrzeugbau, die Dimensionierung von Puffern in Kommunikationssystemen und viele andere mehr. Für die meisten dieser Probleme sind Analysealgorithmen grundsätzlich bekannt, eine genügend genaue Analyse erfordert aber einen immensen Rechenaufwand, der den Einsatz von Multiprozessorsystemen oder mehreren lose gekoppelten Workstations notwendig macht. Um die Rechenkapazität dieser Systeme zu nutzen, müssen entsprechende Algorithmen verfügbar sein, die sich in vielen Fällen nicht unmittelbar aus sequentiellen Algorithmen herleiten lassen. Gerade im Bereich des wissenschaftlichen Rechnens, zu dem auch die genannten Anwendungsgebiete gehören, wurden effiziente und praktisch einsetzbare parallele Algorithmen in den letzten Jahren entwickelt. Im Rahmen der Vorlesung werden wir uns mit der Parallelisierung numerischer Algorithmen beschäftigen. Wegen der Breite des Gebiets kann nur ein kleiner Teilbereich behandelt werden. Als Voraussetzungen für die Realisierung numerischer Verfahren in verteilten Umgebungen ist ein Überblick über heute verfügbare Formen paralleler und verteilter Rechnersysteme notwendig. Ein solcher Überblick wird zu Anfang der Vorlesung gegeben. Weiterhin sind parallele und verteilte Algorithmen sehr stark vom verwendeten Programmiermodell abhängig. Insofern muss bei einer Beschäftigung mit der Parallelisierung von numerischen Algorithmen auch die konkrete Programmierumgebung einbezogen werden. Im Rahmen der Vorlesung wird deshalb ein Überblick über parallele Programmiermodelle gegeben. Dabei wird insbesondere auf die Programmierung über Message-Passing mit Hilfe der Bibliothek MPI eingegangen. Auf Basis dieser Bibliothek werden unterschiedliche Algorithmen eingeführt und in den Übungen praktisch realisiert. Der zweite Teil der Vorlesung beschäftigt sich mit der parallelen Realisierung konkreter numerischer Algorithmen aus unterschiedlichen Anwendungsgebieten. Für jedes Anwendungsgebiet werden  Analysealgorithmen vorgestellt und bzgl. ihrer Parallelisierbarkeit untersucht.

 

Übungen

Es ist geplant, die vorlesungsbegleitenden Übungen als Projektübungen durchzuführen. D.h. es sollen in Kleingruppen (2-3 Studierende) einfache Probleme der parallelen Numerik praktisch gelöst werden. .

Unter http://www.open-mpi.org finden Sie unterschiedliche Implementierungen  von MPI, der Kommunikationsbibliothek, die wir benutzen wollen.

Unter Linux sollte die LAM-Bibliothek verwendet werden. Unter Windows kann man die MPICH Variante aus Aachen nutzen, mit der ich allerdings noch keine Erfahrungen habe.

 

Kapitelgliederung

Folienkopien werden im Laufe des Semesters verfügbar gemacht.

  1. Grundlagen der Parallelisierung
    1. Einführung und Übersicht  (Folien)
    2. Parallele Rechnerarchitekturen (Folien)
    3. Parallele Programmiermodelle (Folien)
      Folien für die Einführung in MPI sind hier zu finden!
  2. Parallele Algorithmen (Folien1)
    1. Numerische Basisalgorithmen
    2. Lösung linearer Gleichungssysteme
    3. Lösung nichtlinearer Gleichungssysteme
    4. Schnelle Fourier-Transformation
    5. Einige Optimierungsmethoden
    6. Asynchrone Verfahren

Literaturhinweise:

Für die Vorbereitung der Vorlesung wurden insbesondere die folgenden Bücher verwendet:

Erwünschte Vorkenntnisse:

Wünschenswert, aber nicht zwingend vorausgesetzt sind Basiskenntnisse numerischer Mathematik.

Übungen

·         Blatt 1

·         Blatt 2

·         Blatt 3

·         Blatt 4