Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation

Ähnliche Präsentationen


Präsentation zum Thema: "Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation"—  Präsentation transkript:

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!


Herunterladen ppt "Agenda Motivation Grundlagen der Matrix-Vektor-Multiplikation"

Ähnliche Präsentationen


Google-Anzeigen