Parallele und verteilte Programmierung

Ähnliche Dokumente
examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt.

examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt.

Numerische Methoden. Thomas Huckle Stefan Schneider. Eine Einführung für Informatiker, Naturwissenschaftler, Ingenieure und Mathematiker.

Konzepte der parallelen Programmierung

Inhaltsverzeichnis. 1 Einleitung... 1

Parallele Programmiermodelle

Inhaltsverzeichnis Kapitel 1: Rechnen mit Zahlen... 1 Kapitel 2: Umformen von Ausdrücken... 10

Numerische Mathematik mit Matlab

Iterative Verfahren zum Lösen von linearen Gleichungssystemen

NUMERISCHE VERFAHREN für Naturwissenschaftler und Ingenieure

Inhaltsverzeichnis. Kapitel 1: Rechnen mit Zahlen. Kapitel 2: Umformen von Ausdrücken. Kapitel 3: Gleichungen, Ungleichungen, Gleichungssysteme

I Grundlagen der parallelen Programmierung 1

Inhaltsverzeichnis. 1 Einleitung 1

Einführung in die Numerische Mathematik

Evaluation. Einleitung. Implementierung Integration. Zusammenfassung Ausblick

Inhaltsverzeichnis. 1 Einleitung... 1

Mathematik für Ingenieure

Numerische Mathematik

Mathemathik für Informatiker Band 1: Diskrete Mathematik und Lineare Algebra

Numerische Mathematik für Ingenieure und Physiker

Lineare Gleichungssysteme Hierarchische Matrizen

III. Iterative Löser. III.1 Direkte Löser und ihre Nachteile. III.2 Klassische lineare Iterationsverfahren

Mathematik für Ingenieure

KAPITEL 1. Einleitung

Architektur paralleler Plattformen

De Gruyter Studium. Numerische Methoden. Bearbeitet von Hermann Friedrich, Frank Pietschmann

Hohere Mathematik. fur Ingenieure, Physiker und Mathematiker von Dr. Dr. h.c. Norbert Herrmann Leibniz Universitat Hannover 2., uberarbeitete Auflage

Inhaltsverzeichnis. 4 Statistik Einleitung Wahrscheinlichkeit Verteilungen Grundbegriffe 98

Erfahrungen bei der Installation und vergleichende Messungen zu verschiedenen MPI Implementierungen auf einem Dual Xeon Cluster

18. Matrizen 2: Gleichungssysteme, Gauß-Algorithmus

Ralf Kirsch Uwe Schmitt. Programmieren inc. Eine mathematikorientierte Einführung. Mit 24 Abbildungen und 13 Tabellen. Springer

38 Iterative Verfahren für lineare Gleichungssysteme

(45 Min) als auch schriftlich im Rahmen einer Ausarbeitung zu präsentieren. 1. Gusfield: Algorithms on strings, trees and sequences.

Inhaltsverzeichnis. Grundlagen

In haltsverzeich n is

Kapitel 2: Lineare Gleichungssysteme. 2.1 Motivation: Bildverarbeitung Sei B = (B(n, m)) ein N M stochastisches Feld mit ZVen

Numerische Mathematik

Iterative Löser: Einführung

VIII Inhaltsverzeichnis 4 Innere - Punkte - Methoden für Lineare Programme Exkurs: Newton -Verfahren,Konvergenzraten Anwendung:

Kapitel 5. Parallelverarbeitung. Formen der Parallelität

Speicherarchitektur (23) Suchen einer Seite:

Kapitel 2: Lineare Gleichungssysteme. 2.1 Motivation: Bildverarbeitung Sei B = (B(n, m)) ein N M stochastisches Feld mit ZVen

Numerische Mathematik 1

Nebenfach Mathematik im Informatik-Studium. Martin Gugat FAU: Friedrich-Alexander-Universität Erlangen-Nürnberg 26.

Mehrprozessorarchitekturen

Horst Niemeyer Edgar Wermuth. Lineare Algebra. Analytische und numerische Behandlung

Inhaltsverzeichnis. I Lineare Gleichungssysteme und Matrizen 1. Vorwort

Mathematik für die ersten Semester

Numerische Mathematik

Numerik für Ingenieure und Naturwissenschaftler

Mathematik. für die ersten Semester von Prof. Dr. Wolfgang Mückenheim. OldenbourgVerlag München

Lineare Gleichungssysteme

Lösung großer linearer Gleichungssysteme

LR Zerlegung. Michael Sagraloff

Ingenieurmathematik mit Computeralgebra-Systemen

Projektseminar Parallele Programmierung

Algorithmen und Datenstrukturen (für ET/IT)

Inhaltsverzeichnis. Grundlagen

Näherungsformeln für Spill Plumes in Atrien variabler Größe

Computer-Architektur. Sequentielle und parallele Algorithmen

Lineare Gleichungssysteme: direkte Verfahren

PCG Verfahren. B ist symmetrisch positiv definit. Eine Matrix-Vektor-Multiplikation mit B hat geringen Aufwand

Nebenfach Mathematik im Informatik-Studium. Martin Gugat FAU: Friedrich-Alexander-Universität Erlangen-Nürnberg 25.

Inhaltsverzeichnis. Teil I Lineare Programmierung

Algorithmik kontinuierlicher Systeme

Inhaltsverzeichnis Grundbegriffe der Programmierung Strukturelle Programmierung

Algorithmen und Datenstrukturen (für ET/IT)

Parallelisierung durch Gebietszerlegung

MATRIZEN. und Determinanten. und ihre Anwendung in Technik und Ökonomie. von Dr. rer. nat. Günter Dietrich und Prof. Dr.-Ing.

Rechenmethoden der Physik

3. Lineare Gleichungssysteme

Numerische Mathematik

OpenMP. Viktor Styrbul

Numerisches Rechnen. (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang. Institut für Geometrie und Praktische Mathematik RWTH Aachen

Grundlagen, Vorgehensweisen, Aufgaben, Beispiele

Institut für Numerische Simulation der Universität Bonn Prof. Dr. Mario Bebendorf

Mathematik 1. ^A Springer. Albert Fetzer Heiner Fränkel. Lehrbuch für ingenieurwissenschaftliche Studiengänge

Numerische Lineare Algebra

Inhaltsverzeichnis. Vorwort... v Vorwort zur ersten Auflage... vi Bezeichnungen... xiii

III. Iterative Löser. III.1 Direkte Löser und ihre Nachteile. III.2 Klassische Iterationsverfahren. III.3 GMRES und CG-Verfahren

Parallel Computing. Einsatzmöglichkeiten und Grenzen. Prof. Dr. Nikolaus Wulff

Numerisches Programmieren, Übungen

Numerische Lineare Algebra Spezielle Systeme

Mathematik für Ingenieure mit Maple

Informatik im Fokus. Herausgeber: Prof. Dr. O. Günther Prof. Dr. W. Karl Prof. Dr. R. Lienhart Prof. Dr. K. Zeppenfeld

III. Iterative Löser. III.1 Direkte Löser und ihre Nachteile. III.2 Klassische Iterationsverfahren

Abkürzungen. Kapitel 1 - Einleitung Stand der Automobilelektronik Historische Entwicklung Gegenwärtige Probleme 2

A 1 x = b, A 1 R m m, m := (n 1) 2, nh = 1, T I I T I. A 1 = 1 h 2 I T. T R (n 1) (n 1) und I ist die (n 1) (n 1)-Identitätsmatrix.

Architektur von Parallelrechnern 50

Universität Karlsruhe (TH)

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung

Multi-threaded Programming with Cilk

Einführung in die Programmiersprache C

Entwurf eines FPGA-Cores zur Simulationsbeschleunigung zeitkontinuierlicher Modelle im HiL Kontext

Mathematik I/II für Verkehrsingenieurwesen 2007/08/09

Grundlagen der Informatik. von Prof. Dr. Peter Pepper Technische Universität Berlin

Objektorientiertes Programmieren

Parallelverarbeitung

Transkript:

Thomas Rauber Gudula Rünger Parallele und verteilte Programmierung Mit 165 Abbildungen und 17 Tabellen Jp Springer

Inhaltsverzeichnis 1. Einleitung 1 Teil I. Architektur 2. Architektur von Parallelrechnern 7 2.1 Entwicklung von Mikroprozessoren 8 2.2 Parallelität auf Prozessorebene 11 2.3 Klassifizierung von Parallelrechnern 17 2.4 Speicherorganisation von Parallelrechnern 20 2.4.1 Rechner mit physikalisch verteiltem Speicher 21 2.4.2 Rechner mit physikalisch gemeinsamem Speicher 25 2.4.3 Reduktion der Speicherzugriffszeiten 28 2.5 Verbindungsnetzwerke von Parallelrechnern 33 2.5.1 Bewertungskriterien für Netzwerke 34 2.5.2 Direkte Verbindungsnetzwerke 37 2.5.3 Einbettungen 44 2.5.4 Dynamische Verbindungsnetzwerke 46 2.6 Routing- und Switching-Strategien 54 2.6.1 Routingalgorithmen 54 2.6.2 Switching 64 2.6.3 Flußkontrollmechanismen 73 2.7 Caches und Speicherhierarchien 74 2.7.1 Charakteristika von Cache-Speichern 75 2.7.2 Cache-Kohärenz 85 2.7.3 Speicherkonsistenz 93 2.8 Beispiele realer Parallelrechner 99 2.8.1 Busbasierte Systeme 100 2.8.2 Verteilter Adreßraum 102 2.8.3 Gemeinsamer Adreßraum: UMA 104 2.8.4 Gemeinsamer Adreßraum: NUMA 107 2.8.5 Gemeinsamer Adreßraum: CC-NUMA 109 2.8.6 Gemeinsamer Adreßraum: COMA 115 2.8.7 Clustermaschinen und Workstationnetze 118

X Inhaltsverzeichnis Teil II. Programmierung 3. Parallele Programmiermodelle 123 3.1 Modelle paralleler Rechnersysteme 124 3.2 Parallelisierung von Programmen 127 3.3 Ebenen der Parallelität 130 3.3.1 Parallelität auf Instruktionsebene 130 3.3.2 Datenparallelität 131 3.3.3 Parallele Schleifen 134 3.3.4 Funktionsparallelität 136 3.4 Explizite und implizite Darstellung der Parallelität 138 3.5 Strukturierung paralleler Programme 141 3.6 Datenverteilungen für Felder 143 3.7 Informationsaustausch 148 3.7.1 Gemeinsame Variablen 148 3.7.2 Kommunikationsoperationen 151 3.7.3 Parallele Matrix-Vektor-Multiplikation 159 4. Message-Passing-Programmierung 165 4.1 Einführung in MPI 166 4.1.1 Einzeltransferoperationen 168 4.1.2 Globale Kommunikationsoperationen 182 4.1.3 Auftreten von Deadlocks 195 4.1.4 Prozeßgruppen und Kommunikatoren 197 4.1.5 Prozeßtopologien 203 4.1.6 Zeitmessung und Abbruch der Ausführung 208 4.2 Einführung in PVM 209 4.2.1 Programmiermodell 209 4.2.2 Prozeßkontrolle 210 4.2.3 Austausch von Nachrichten 213 4.2.4 Verwaltung von Prozeßgruppen 215 4.3 Einführung in MPI-2 217 4.3.1 Prozeßerzeugung und -Verwaltung 218 4.3.2 Einseitige Kommunikation 220 5. Programmierung mit gemeinsamen Variablen 231 5.1 Thread-Programmierung 232 5.1.1 Begriffsklärung und Motivation 232 5.1.2 Programmiermodell und Grundlagen für Pthreads... 238 5.1.3 Erzeugung und Verwaltung von Pthreads 241 5.1.4 Koordination von Threads 243 5.1.5 Implementierung eines Taskpools 255 5.1.6 Steuerung und Abbruch von Threads 259

Inhaltsverzeichnis XI 5.2 OpenMP 273 5.2.1 Steuerung der parallelen Abarbeitung 274 5.2.2 Koordination von Threads 283 5.3 Einführung in p4 288 5.3.1 Monitore und gemeinsamer Adreßraum 291 5.3.2 Vordefinierte Monitore 292 6. Laufzeitanalyse paralleler Programme 299 6.1 Leistungsbewertung von Rechnersystemen 300 6.1.1 MIPS und MFLOPS 302 6.1.2 Leistung von Mikroprozessoren mit Cachespeichern... 304 6.1.3 Benchmarkprogramme 306 6.2 Parallele Leistungsmaße 310 6.3 Modellierung von Laufzeiten 314 6.3.1 Realisierung von Kommunikationsoperationen 316 6.3.2 Parameterbestimmung durch Ausgleichsrechnung 335 6.3.3 Laufzeitformeln für Kommunikationsoperationen 339 6.4 Analyse von Laufzeitformeln 342 6.4.1 Paralleles Skalarprodukt 343 6.4.2 Parallele Matrix-Vektor-Multiplikation 345 6.5 Parallele Berechnungsmodelle 347 6.5.1 PRAM-Modelle 348 6.5.2 BSP-Modell 349 6.5.3 LogP-Modell 352 Teil III. Algorithmen 7. Lösung von Linearen Gleichungssystemen 357 7.1 Gauß-Elimination 358 7.1.1 Beschreibung der Methode 358 7.1.2 Parallele zeilenzyklische Implementierung 362 7.1.3 Parallele gesamtzyklische Implementierung 366 7.1.4 Laufzeitanalyse der gesamtzyklischen Implementierung 372 7.2 Direkte Verfahren für Gleichungssysteme mit Bandstruktur.. 376 7.2.1 Diskretisierung der Poisson-Gleichung 377 7.2.2 Lösung von Tridiagonalsystemen 383 7.2.3 Verallgemeinerung auf beliebige Bandmatrizen 394 7.2.4 Anwendung auf die Poisson-Gleichung 396 7.3 Klassische Iterationsverfahren 399 7.3.1 Beschreibung iterativer Verfahren 399 7.3.2 Parallele Realisierung des Jacobi-Verfahrens 403 7.3.3 Parallele Realisierung des Gauß-Seidel-Verfahrens... 404 7.3.4 Rot-Schwarz-Anordnung 410

XII Inhaltsverzeichnis 7.4 Methode der konjugierten Gradienten 417 7.4.1 Herleitung der Methode 418 7.4.2 Parallelisierung des CG-Verfahrens 420 8. Nichtlineare Gleichungssysteme 425 8.1 Fixpunktiteration 426 8.2 Newton-Verfahren 429 8.3 Parallele Implementierung 432 8.3.1 Parallele zeilenzykliche Implementierung 434 8.3.2 Parallele gesamtzyklische Implementierung 436 9. Gewöhnliche Differentialgleichungssysteme 439 9.1 Explizite Runge-Kutta-Verfahren 443 9.2 Iterierte Runge-Kutta-Verfahren 449 9.3 Vergleich expliziter Verfahren 457 9.4 Implizite Runge-Kutta-Verfahren 464 9.4.1 Parallele Implementierung des Standardverfahrens... 465 9.4.2 Diagonal-implizit iteriertes RK-Verfahren 466 9.4.3 Parallele Implementierung des DIIRK-Verfahrens 470 9.5 Extrapolationsverfahren 484 9.5.1 Grundalgorithmus 484 9.5.2 Parallele Implementierung 487 9.5.3 Vergleich der Varianten.., 495 9.6 Zusammenfassung und Ausblick 496 10. Irreguläre Algorithmen 499 10.1 Cholesky-Faktorisierung für dünnbesetzte Matrizen 501 10.1.1 Sequentieller Algorithmus 501 10.1.2 Abspeicherungsschemata für dünnbesetzte Matrizen.. 507 10.1.3 Implementierung für gemeinsamen Adreßraum 510 10.2 Hierarchische Algorithmen 518 10.2.1 Klassisches Radiosity-Verfahren 519 10.2.2 Hierarchisches Radiosity-Verfahren 525 10.2.3 Strahlungsbasierte Zerlegung 529 10.2.4 Implementierung für gemeinsamen Adreßraum 532 Glossar 535 Literatur 545 Index 555