Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Ilma Gegenheimer Geändert vor über 11 Jahren
0
Parallele Programmierung und Parallele Algorithmen: Matrix-Vektor-Multiplikation
1
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit
2
Motivation Matrix-Vektor-Multiplikation:
Kernoperation in vielen Berechnungen In unterschiedlichsten Anwendungsgebieten Naturwissenschaften, Wirtschaft, Computergrafik, … Hohe Bedeutung & Häufigkeit Parallele Datenverarbeitung: Mehrkernprozessoren bereits im privaten Sektor etabliert Gegenwart & Zukunft Parallele Matrix-Vektor-Multiplikation Höhere Leistung & Effizienz als serieller Ablauf
3
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit
4
Grundlagen: Serielle Matrix-Vektor-Multiplikation (1/2)
Matrix-Vektor-Multiplikation: A ∙ x = y Beispiel: Ablauf: Folge von Skalarprodukten von Vektor x mit Zeilenvektoren von A Vektor x m x n Matrix A Vektor y m n
5
Grundlagen: Serielle Matrix-Vektor-Multiplikation (2/2)
Zeitkomplexität: Skalarprodukt von zwei Vektoren der Länge n: n Multiplikationen n-1 Additionen Θ(n) Serielle Matrix-Vektor-Multiplikation: m Skalarprodukte Θ(m·n), für m = n: Θ(n2)
6
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit
7
Grundlagen: Daten-Dekomposition beim Parallelisieren (1/2)
Parallelisieren der Matrix-Vektor-Multiplikation Dekomposition von m x n Matrix A (und Vektor x) auf p Prozesse Beispiele für p = 4: Bestimmt Anzahl benötigter Kommunikations- und Rechenoperationen Schlüsselentscheidung Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition
8
Grundlagen: Daten-Dekomposition beim Parallelisieren (2/2)
Möglichst ausgeglichene Dekomposition hohe Leistung & Effizienz Aufteilung von Matrix A in Teilstücke mit: Zeilenweise: oder benachbarten Zeilen Spaltenweise: oder benachbarten Spalten Blockweise: zwischen und großen Matrixblöcken
9
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit
10
Parallele Algorithmen: Zeilenweise Dekomposition
Algorithmus Jeder Prozess erhält: Zusammenhängende Zeilen der Matrix A Kopie des Vektors x Hauptschritte des Algorithmus: x 1) Skalarprodukt- berechnung 1. Zeile von A x 1. Zeile von A y1 Prozess 1 x 1. Zeile von A y Prozess 1 2) All-gather- Kommunikation Prozess 1
11
Parallele Algorithmen: Zeilenweise Dekomposition
Implementierung (1/2) Implementierung nach Quinn(2003): Hauptschritte:
12
Parallele Algorithmen: Zeilenweise Dekomposition
Implementierung (2/2) Blockvektor replizieren: 1) Gemischte xfer Arrays erzeugen 2) All-gather-Kommunikation
13
Parallele Algorithmen: Zeilenweise Dekomposition
Analyse (1/2) Zeitkomplexität (unter der Annahme m = n): Kommunikationskomplexität: All-gather-Kommunikation (in einem Hypercube-Netzwerk ) Jeder Prozess sendet Nachrichten (durch paarweisen Datenaustausch zwischen den Prozessen) Elemente je Nachricht nehmen zu (in Schritt i: Elemente) Elemente insgesamt
14
Parallele Algorithmen: Zeilenweise Dekomposition
Analyse (2/2) Berechnungskomplexität: Je Prozess höchstens Zeilen Je Zeile eine Skalarproduktberechnung mit Θ(n) Gesamtkomplexität: Algorithmus ist nicht sehr gut skalierbar!
15
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit
16
Parallele Algorithmen: Spaltenweise Dekomposition
Algorithmus Jeder Prozess erhält: Zusammenhängende Spalten der Matrix A Zusammenhängende Elemente des Vektors x Hauptschritte des Algorithmus: 1) Teilskalarprodukt- berechnung 1. Spalte von A x1 Teilskalar- produkte 1. Spalte von A 2) All-to-all- Austausch Prozess 1 x1 Summanden von y1 1. Spalte von A x1 Prozess 1 1. Spalte von A y1 Prozess 1 3) Teil- ergebnisse summieren x1 Prozess 1
17
Parallele Algorithmen: Spaltenweise Dekomposition
Implementierung (1/2) Implementierung nach Quinn(2003): Hauptschritte:
18
Parallele Algorithmen: Spaltenweise Dekomposition
Implementierung (2/2) Teilskalarproduktergebnisse verteilen: 1) Gemischte xfer Arrays erzeugen ( Senden) 2) Gleichförmige xfer Arrays erzeugen ( Empfangen) Wie gemischte xfer Arrays, aber mit gleichen Count Array-Einträgen 3) All-to-all-Kommunikation
19
Parallele Algorithmen: Spaltenweise Dekomposition
Analyse (1/2) Zeitkomplexität (unter der Annahme m = n): Kommunikationskomplexität: All-to-all-Kommunikation Jeder Prozess sendet Nachricht an anderen Prozess p –1 Nachrichten insgesamt Jeder Prozess erhält nur die von ihm benötigten Elemente maximal n Elemente insgesamt
20
Parallele Algorithmen: Spaltenweise Dekomposition
Analyse (2/2) Berechnungskomplexität: Je Prozess höchstens Spalten mit je n Einträgen Je Spalteneintrag Multiplikation mit Vektorelement Gesamtkomplexität: Algorithmus ist nicht sehr gut skalierbar!
21
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit
22
Parallele Algorithmen: Blockweise Dekomposition
Algorithmus Jeder Prozess erhält: Zusammenhängende Elementblöcke der Matrix A Zusammenhängende Elemente des Vektors x Hauptschritte des Algorithmus: 1) Vektor x umver- teilen x A xi xi ai,j ai,j 2) Matrix-Vektor- Multiplikation Teilskalarproduktergebnisse y 3) Summen- Reduzierung
23
Parallele Algorithmen: Blockweise Dekomposition
Implementierung (1/2) Implementierung nach Quinn(2003): Hauptschritte:
24
Parallele Algorithmen: Blockweise Dekomposition
Implementierung (2/2) Vektor umverteilen (für quadratisches p):
25
Parallele Algorithmen: Blockweise Dekomposition
Analyse (1/2) Zeitkomplexität (unter den Annahmen m = n und p ist quadratisch): Kommunikationskomplexität: Vektor x umverteilen & Summen-Reduzierung: Jeder Prozess der 1. Spalte sendet Vektorblock ( Elemente) an 1. Zeile-Prozess Spaltenverteilung & Summen-Reduzierung: je
26
Parallele Algorithmen: Blockweise Dekomposition
Analyse (2/2) Berechnungskomplexität: Je Prozess höchstens Matrixelemente Je Element Multiplikation mit Vektorelement Gesamtkomplexität: Algorithmus ist besser skalierbar!
27
Parallele Algorithmen: Vergleichsüberblick
Analysevergleich der drei Algorithmen: Serieller Algorithmus: Θ(n2) Blockweise Dekomposition liefert besten Algorithmus Zeilenweise Spaltenweise Blockweise Zeit-komplexität nicht gut skalierbar besser skalierbar
28
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit
29
Benchmarking-Werte nach Quinn(2003)
Benchmarking nach Quinn(2003): Cluster mit 450 MHz Pentium II Prozessoren 1.000 x Matrix, 100 Durchläufe Speedupergebnisse: Speedup Prozessoren
30
Eigene Benchmarking-Werte
Eigenes Benchmarking: Cluster mit Dual Quad Core Twin Servern mit je zwei 2,1 GHz Quad Core AMD Opteron CPUs x Matrix, 50 Durchläufe Speedupergebnisse: Speedup Prozessoren
31
Benchmarking-Vergleich
Quinn(2003) Eigene Werte Beste Implementierung Blockweise Dekomposition Zeilen- und blockweise Dekomposition Schlechteste Implementierung Zeilen- und spaltenweise Dekomposition Spaltenweise Dekomposition Mögliche Erklärungen: Anzahl Prozessoren für neue Hardware nicht groß genug Messfehler
32
Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation
Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition Benchmarking Fazit
33
Zusammenfassung & Fazit
Matrix-Vektor-Multiplikation sehr verbreitet & wichtig Parallelisieren Daten-Dekomposition: Zeilenweise Matrix-Dekomposition Spaltenweise Matrix-Dekomposition Blockweise Matrix-Dekomposition Resultierende Algorithmen, deren Analyse & mgl. Implementierung Benchmarking Theorie: Blockweise Dekomposition liefert besten Algorithmus Eigene Praxis: Zeilenweise Dekomposition ebenfalls sehr gut Abgrenzung: Parallele Matrix-Vektor-Multiplikation sehr einfach & elementar Nur vollbesetzte Matrizen (ohne Sonderfall dünnbesetzte Matrizen)
34
Fragen & Diskussion Hauptquelle:
Michael J. Quinn: Parallel Programming in C with MPI and OpenMP, McGraw Hill Higher Education, 2003.
35
Backup: Zeilenweise Dekomposition
Analyse Gesamtkomplexität: Isoeffizienzfunktion: Overhead: All-gather-Kommunikation Für großes n: Eigentliche Kommunikationszeit übersteigt Latenzzeit Kommunikationskomplexität vereinfacht: Θ(n) mit , , Skalierbarkeitsfunktion: Speicherauslastungsfunktion für n x n Matrix: M(n) = n2 nicht sehr skalierbar!
36
Backup: Spaltenweise Dekomposition
Analyse Gesamtkomplexität: Isoeffizienzfunktion: Overhead: All-to-all-Kommunikation Für großes n: Eigentliche Kommunikationszeit übersteigt Latenzzeit Kommunikationskomplexität vereinfacht: Θ(n) mit , , Skalierbarkeitsfunktion: Gleiche Isoeffizienzfunktion wie bei zeilenweiser Dekomposition Gleiche Skalierbarkeitsfunktion nicht sehr skalierbar!
37
Backup: Blockweise Dekomposition
Analyse Gesamtkomplexität: Isoeffizienzfunktion: Overhead: Kommunikationskomplexität je Prozessor mit , Skalierbarkeitsfunktion: besser skalierbar!
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.