View
34
Download
0
Category
Preview:
DESCRIPTION
Parallele Programmierung und Parallele Algorithmen : Matrix- Vektor - Multiplikation. Agenda. Motivation Grundlagen der Matrix-Vektor-Multiplikation Serieller Algorithmus Parallelisieren: Daten-Dekomposition Parallele Matrix-Vektor-Multiplikations-Algorithmen Zeilenweise Dekomposition - PowerPoint PPT Presentation
Citation preview
Parallele Matrix-Vektor-Multiplikation
Annika Biermann
Parallele Programmierung undParallele Algorithmen:
Matrix-Vektor-Multiplikation
2
Parallele Matrix-Vektor-Multiplikation
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
3
Parallele Matrix-Vektor-Multiplikation
Motivation
Matrix-Vektor-Multiplikation:
Kernoperation in vielen Berechnungen
In unterschiedlichsten AnwendungsgebietenNaturwissenschaften, 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
4
Parallele Matrix-Vektor-Multiplikation
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
5
Parallele Matrix-Vektor-Multiplikation
Matrix-Vektor-Multiplikation: A ∙ x = y
Beispiel:
Ablauf: Folge von Skalarprodukten von Vektor x mit Zeilenvektoren von A
Grundlagen: Serielle Matrix-Vektor-Multiplikation (1/2)
m x n Matrix AVektor x
Vektor y
m
n
IN)nm, mit
IR y,IR x,IR(A mnnm
6
Parallele Matrix-Vektor-Multiplikation
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)
7
Parallele Matrix-Vektor-Multiplikation
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
8
Parallele Matrix-Vektor-Multiplikation
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
ZeilenweiseDekomposition
SpaltenweiseDekomposition
BlockweiseDekomposition
9
Parallele Matrix-Vektor-Multiplikation
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
pm
pm
pn
pn
p
n
p
m
p
n
p
m
10
Parallele Matrix-Vektor-Multiplikation
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
11
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Zeilenweise Dekomposition
Jeder Prozess erhält:
Zusammenhängende Zeilen der Matrix A
Kopie des Vektors x
Hauptschritte des Algorithmus:
Algorithmus
1. Zeile von A
1. Zeile von A
1. Zeile von A
x
x
xy
y1
Prozess 1
Prozess 1
Prozess 1
1) Skalarprodukt-berechnung
2) All-gather-Kommunikation
12
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Zeilenweise Dekomposition
Implementierung nach QUINN(2003):
Hauptschritte:
Implementierung (1/2)
13
Parallele Matrix-Vektor-Multiplikation
Blockvektor replizieren:
1) Gemischte xfer Arrays erzeugen
2) All-gather-Kommunikation
Parallele Algorithmen: Zeilenweise DekompositionImplementierung (2/2)
14
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Zeilenweise Dekomposition
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
Analyse (1/2)
n p logΘ
IN x ,2 p x
p log2
pn
2 1i-
p
1)(pn
p
n 2
p log
1i
1-i2
15
Parallele Matrix-Vektor-Multiplikation
Berechnungskomplexität:
Je Prozess höchstens Zeilen
Je Zeile eine Skalarproduktberechnung mit Θ(n)
Gesamtkomplexität:
Algorithmus ist nicht sehr gut skalierbar!
Parallele Algorithmen: Zeilenweise DekompositionAnalyse (2/2)
n p log
pn
Θ2
pn
pn
Θ pn
nΘ2
16
Parallele Matrix-Vektor-Multiplikation
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
17
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Spaltenweise DekompositionAlgorithmus
Jeder Prozess erhält:
Zusammenhängende Spalten der Matrix A
Zusammenhängende Elemente des Vektors x
Hauptschritte des Algorithmus:
Prozess 1
Prozess 1
Prozess 1
Prozess 1
1. Spalte von A
1. Spalte von A
1. Spalte von A
1. Spalte von A
x1
x1
x1
x1
Teilskalar-produkte
Summandenvon y1
y1
1) Teilskalarprodukt-berechnung
2) All-to-all-Austausch
3) Teil-ergebnissesummieren
18
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Spaltenweise Dekomposition
Implementierung nach QUINN(2003):
Hauptschritte:
Implementierung (1/2)
19
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Spaltenweise Dekomposition
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
Implementierung (2/2)
20
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Spaltenweise Dekomposition
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
Analyse (1/2)
n) Θ(p
21
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Spaltenweise DekompositionAnalyse (2/2)
p n
pn
Θ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!
pn
pn
Θ pn
nΘ2
22
Parallele Matrix-Vektor-Multiplikation
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
23
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Blockweise DekompositionAlgorithmus
Jeder Prozess erhält:
Zusammenhängende Elementblöcke der Matrix A
Zusammenhängende Elemente des Vektors x
Hauptschritte des Algorithmus:
x A ai,jxi ai,j
xi
Teilskalarproduktergebnisse
y
1) Vektor x umver-teilen
2) Matrix-Vektor-Multiplikation
3) Summen-Reduzierung
24
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Blockweise Dekomposition
Implementierung nach QUINN(2003):
Hauptschritte:
Implementierung (1/2)
25
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Blockweise Dekomposition
Vektor umverteilen (für quadratisches p):
Implementierung (2/2)
26
Parallele Matrix-Vektor-Multiplikation
Parallele Algorithmen: Blockweise Dekomposition
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
Analyse (1/2)
p
n
p
n p logΘ
p
p log nΘ
27
Parallele Matrix-Vektor-Multiplikation
Berechnungskomplexität:
Je Prozess höchstens Matrixelemente
Je Element Multiplikation mit Vektorelement
Gesamtkomplexität:
Algorithmus ist besser skalierbar!
Parallele Algorithmen: Blockweise DekompositionAnalyse (2/2)
p
p log n
pn
Θ2
p
n
p
n
pn
Θ p
n
p
nΘ
2
28
Parallele Matrix-Vektor-Multiplikation
Analysevergleich der drei Algorithmen:
Serieller Algorithmus: Θ(n2)
Blockweise Dekomposition liefert besten Algorithmus
Parallele Algorithmen: Vergleichsüberblick
Zeilenweise Spaltenweise Blockweise
Zeit-
komplexität
nicht gut skalierbar nicht gut skalierbar besser skalierbar
p
p log np
nΘ
2
n p
pn
Θ2
np log
pn
Θ2
29
Parallele Matrix-Vektor-Multiplikation
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
30
Parallele Matrix-Vektor-Multiplikation
Benchmarking-Werte nach QUINN(2003)
Benchmarking nach QUINN(2003):
Cluster mit 450 MHz Pentium II Prozessoren
1.000 x 1.000 Matrix, 100 Durchläufe
Speedupergebnisse:
0 1 2 3 4 5 6 7 8 9 101112131415160
2
4
6
8
10
12
14
16
Zeilenweise
Spaltenweise
Blockweise
Speedup
Prozessoren
31
Parallele Matrix-Vektor-Multiplikation
Eigene Benchmarking-Werte
Eigenes Benchmarking:
Cluster mit Dual Quad Core Twin Servern mit je zwei 2,1 GHz Quad Core AMD Opteron CPUs
10.000 x 10.000 Matrix, 50 Durchläufe
Speedupergebnisse:
0 1 2 3 4 5 6 7 8 9 101112131415160
2
4
6
8
10
12
14
16
ZeilenweiseSpaltenweiseBlockweise
Speedup
Prozessoren
32
Parallele Matrix-Vektor-Multiplikation
Benchmarking-Vergleich
Mögliche Erklärungen:Anzahl Prozessoren für neue Hardware nicht groß genug
Messfehler
QUINN(2003) Eigene Werte
Beste
Implementierung
Blockweise
Dekomposition
Zeilen- und blockweise
Dekomposition
Schlechteste
Implementierung
Zeilen- und spaltenweise
Dekomposition
Spaltenweise
Dekomposition
33
Parallele Matrix-Vektor-Multiplikation
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
34
Parallele Matrix-Vektor-Multiplikation
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)
35
Parallele Matrix-Vektor-Multiplikation
Fragen & Diskussion
Hauptquelle:
Michael J. Quinn: Parallel Programming in C with MPI and OpenMP, McGraw Hill Higher Education, 2003.
36
Parallele Matrix-Vektor-Multiplikation
Backup: Zeilenweise DekompositionAnalyse
n p log
pn
Θ2
Gesamtkomplexität:
Isoeffizienzfunktion:
Overhead: All-gather-KommunikationFür großes n: Eigentliche Kommunikationszeit übersteigt Latenzzeit
Kommunikationskomplexität vereinfacht: Θ(n)
mit , ,
Skalierbarkeitsfunktion:
Speicherauslastungsfunktion für n x n Matrix: M(n) = n2
pC n npC n2 Effizienz 1
Effizienz C
pSpeedup
Effizienz
us Algorithmparalleler Laufzeitus Algorithmserieller Laufzeit
Speedup
pC ppC
p
p)M(C 222
nicht sehr skalierbar!
37
Parallele Matrix-Vektor-Multiplikation
Backup: Spaltenweise DekompositionAnalyse
p n
pn
Θ2
Gesamtkomplexität:
Isoeffizienzfunktion:
Overhead: All-to-all-KommunikationFür großes n: Eigentliche Kommunikationszeit übersteigt Latenzzeit
Kommunikationskomplexität vereinfacht: Θ(n)
mit , ,
Skalierbarkeitsfunktion:
Gleiche Isoeffizienzfunktion wie bei zeilenweiser Dekomposition
Gleiche Skalierbarkeitsfunktion
pC n npC n2 Effizienz 1
Effizienz C
pSpeedup
Effizienz
us Algorithmparalleler Laufzeitus Algorithmserieller Laufzeit
Speedup
nicht sehr skalierbar!
38
Parallele Matrix-Vektor-Multiplikation
Backup: Blockweise DekompositionAnalyse
Gesamtkomplexität:
Isoeffizienzfunktion:
Overhead: Kommunikationskomplexität je Prozessor
mit ,
Skalierbarkeitsfunktion:
p log p C n p log p n C n22
2 Effizienz 1
Effizienz C
, p
Speedup Effizienz
us Algorithmparalleler Laufzeitus Algorithmserieller Laufzeit
Speedup
besser skalierbar!
p
p log n
pn
Θ2
p log p p p
p log n2
2
p log C p
p log p C
p
p) logpM(C 22
222
22
Recommended