Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Parallele Matrix-Vektor-Multiplikation Annika Biermann Parallele Programmierung und Parallele Algorithmen: Matrix-Vektor-Multiplikation.

Ähnliche Präsentationen


Präsentation zum Thema: "Parallele Matrix-Vektor-Multiplikation Annika Biermann Parallele Programmierung und Parallele Algorithmen: Matrix-Vektor-Multiplikation."—  Präsentation transkript:

1 Parallele Matrix-Vektor-Multiplikation Annika Biermann Parallele Programmierung und Parallele Algorithmen: Matrix-Vektor-Multiplikation

2 1 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 2 Parallele Matrix-Vektor-Multiplikation 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

4 3 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 4 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 A Vektor x Vektor y m n

6 5 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: Θ(n 2 )

7 6 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 7 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 Zeilenweise Dekomposition Spaltenweise Dekomposition Blockweise Dekomposition

9 8 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

10 9 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 10 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 x x x y y1y1 Prozess 1 1) Skalarprodukt- berechnung 2) All-gather- Kommunikation

12 11 Parallele Matrix-Vektor-Multiplikation Parallele Algorithmen: Zeilenweise Dekomposition Implementierung nach Q UINN ( 2003 ): Hauptschritte: Implementierung (1/2)

13 12 Parallele Matrix-Vektor-Multiplikation Blockvektor replizieren: 1) Gemischte xfer Arrays erzeugen 2) All-gather-Kommunikation Parallele Algorithmen: Zeilenweise Dekomposition Implementierung (2/2)

14 13 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)

15 14 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 Dekomposition Analyse (2/2)

16 15 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 16 Parallele Matrix-Vektor-Multiplikation Parallele Algorithmen: Spaltenweise Dekomposition Algorithmus Jeder Prozess erhält: Zusammenhängende Spalten der Matrix A Zusammenhängende Elemente des Vektors x Hauptschritte des Algorithmus: Prozess 1 1. Spalte von A x1x1 x1x1 x1x1 x1x1 Teilskalar- produkte Summanden von y 1 y1y1 1) Teilskalarprodukt- berechnung 2) All-to-all- Austausch 3) Teil- ergebnisse summieren

18 17 Parallele Matrix-Vektor-Multiplikation Parallele Algorithmen: Spaltenweise Dekomposition Implementierung nach Q UINN ( 2003 ): Hauptschritte: Implementierung (1/2)

19 18 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 19 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)

21 20 Parallele Matrix-Vektor-Multiplikation 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!

22 21 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 22 Parallele Matrix-Vektor-Multiplikation 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: x A a i,j xixi xixi Teilskalarproduktergebnisse y 1) Vektor x umver- teilen 2) Matrix-Vektor- Multiplikation 3) Summen- Reduzierung

24 23 Parallele Matrix-Vektor-Multiplikation Parallele Algorithmen: Blockweise Dekomposition Implementierung nach Q UINN ( 2003 ): Hauptschritte: Implementierung (1/2)

25 24 Parallele Matrix-Vektor-Multiplikation Parallele Algorithmen: Blockweise Dekomposition Vektor umverteilen (für quadratisches p) : Implementierung (2/2)

26 25 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)

27 26 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 Dekomposition Analyse (2/2)

28 27 Parallele Matrix-Vektor-Multiplikation Analysevergleich der drei Algorithmen: Serieller Algorithmus: Θ(n 2 ) Blockweise Dekomposition liefert besten Algorithmus Parallele Algorithmen: Vergleichsüberblick ZeilenweiseSpaltenweiseBlockweise Zeit- komplexität nicht gut skalierbar besser skalierbar

29 28 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 29 Parallele Matrix-Vektor-Multiplikation Benchmarking-Werte nach Q UINN (2003) Benchmarking nach Q UINN ( 2003 ): Cluster mit 450 MHz Pentium II Prozessoren x Matrix, 100 Durchläufe Speedupergebnisse: Speedup Prozessoren

31 30 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 x Matrix, 50 Durchläufe Speedupergebnisse: Speedup Prozessoren

32 31 Parallele Matrix-Vektor-Multiplikation Benchmarking-Vergleich Mögliche Erklärungen: Anzahl Prozessoren für neue Hardware nicht groß genug Messfehler Q UINN (2003)Eigene Werte Beste Implementierung Blockweise Dekomposition Zeilen- und blockweise Dekomposition Schlechteste Implementierung Zeilen- und spaltenweise Dekomposition Spaltenweise Dekomposition

33 32 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 33 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 34 Parallele Matrix-Vektor-Multiplikation Fragen & Diskussion Hauptquelle: Michael J. Quinn: Parallel Programming in C with MPI and OpenMP, McGraw Hill Higher Education, 2003.

36 35 Parallele Matrix-Vektor-Multiplikation 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) = n 2 nicht sehr skalierbar!

37 36 Parallele Matrix-Vektor-Multiplikation 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!

38 37 Parallele Matrix-Vektor-Multiplikation Backup: Blockweise Dekomposition Analyse Gesamtkomplexität: Isoeffizienzfunktion: Overhead: Kommunikationskomplexität je Prozessor mit, Skalierbarkeitsfunktion: besser skalierbar!


Herunterladen ppt "Parallele Matrix-Vektor-Multiplikation Annika Biermann Parallele Programmierung und Parallele Algorithmen: Matrix-Vektor-Multiplikation."

Ähnliche Präsentationen


Google-Anzeigen