Martin-Luther-Universität Halle-Wittenberg

Weiteres

Login für Redakteure

Inhalt Parallelverarbeitung (Winter 2010/2011)

3+1 SWS

1.    Einführung

2.    Grundlagen
2.1   Begriffe
2.2   Hardware-Klassifikation
2.3   Parallelitätsebenen
2.4   Konzepte für parallele Verarbeitung

3.    Parallelrechner-Architektur
3.1   Mikroprozessorentwicklung
3.2   Speicherkonzepte - Adressraumorganisation
3.3   Verbindungsnetzwerke
3.3.1 Bewertungskriterien
3.3.2 Statische Verbindungsnetzwerke
3.3.3 Einbettungen
3.3.4 Dynamische Verbindungsnetzwerke
3.4   Routing und Switching
3.4.1 Routingalgorithmen
3.4.2 Switching-Strategien    
3.5   Cache-Kohärenz und Speicherkonsistenz
3.6   Spezielle Architekturprinzipien                 
3.6.1 Datenflussrechner
3.6.2 Systolische Felder
3.7   Parallelsysteme - Beispiele              
3.7.1 SIMD-Rechner
3.7.2 SMP-Systeme
3.7.3 Systeme mit verteiltem Adressraum  
3.7.4 Systeme mit gemeinsamem Adressraum

4.    Parallele Programmierung
4.1   Modelle paralleler Systeme
4.1.1 PRAM-Modell
4.1.2 BSP-Modell
4.1.3 LogP-Modell
4.2   Leistungsbewertung
4.3   Kommunikationsoperationen
4.3.1 Broadcast-Operationen
4.3.2 Scatter und Gather
4.3.3 Total Exchange
4.3.4 Circular Shift
4.4   Message Passing mit MPI
4.4.1 Einführung
4.4.2 "Hello world!"
4.4.3 Message Passing - Senden und Empfangen
4.4.4 Globale Kommunikation
4.4.5 Nichtblockierende Kommunikation
4.4.6 Übertragungsmodi, Zeitmessung
4.4.7 Prozessgruppen und Kommunikatoren
4.4.8 Virtuelle Topologien

5.    Parallele Algorithmen
5.1   Sortieren
5.1.1 Odd-Even Transposition Sort
5.1.2 Shellsort
5.2   Lineare Gleichungssysteme
5.2.1 Einfacher paralleler Algorithmus
5.2.2 Streifenpartitionierung
5.2.3 Schachbrett-Partitionierung
5.3   Matrix-Multiplikation
5.4   Asynchrone Algorithmen
5.5   Bildverarbeitung
5.5.1 Component Labelling
5.5.2 Konvexe Hülle

6.    Gemeinsame Variable - Shared Memory, Multicore
6.1   Parallele Threads
6.2   PThreads-Bibliothek
6.3   OpenMP
6.4   Java-Threads
6.4.1 Parallelisierung eines Single-Threaded Programms
6.4.2 Weitere Techniken
6.4.3 Spezielle Untersuchungsergebnisse
6.5   CORBA
6.5.1 Einführung
6.5.2 Server und Client
6.5.3 Beispiel mit Java: "Hello World"
6.6   Weiteres

7. Ergänzungen
7.1 Parallele Sprachen und Ansätze
7.2 Grenzen automatischer Parallelisierung
7.3 Cilk

Zum Seitenanfang