Inhalt Parallelverarbeitung (Sommer 07)
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
4.1.2 BSP- und LogP-Modell
4.2 Leistungsbewertung
4.3 Laufzeiten von 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 Interface 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 Prozessgruppen
4.4.6 Nichtblockierender Nachrichtenaustausch
4.4.7 Virtuelle Topologien
4.4.8 Übertragungsmodi, Zeitmessung
5. Parallele Algorithmen
5.1 Sortieren
5.1.1 Odd-Even Transposition Sort
5.1.2 Shellsort
5.2 Lineare Gleichungssysteme
5.3 Matrixmultiplikation
5.4 Asynchrone Algorithmen
5.5 Bildverarbeitung
5.5.1 Component Labelling
5.5.2 Konvexe Huelle
6. Gemeinsame Variable
6.1 Parallele Threads
6.2 PThreads-Bibliothek
6.3 OpenMP
6.4 Weitere Bibliotheken