Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Matrixmultiplikation

Ähnliche Präsentationen


Präsentation zum Thema: "Matrixmultiplikation"—  Präsentation transkript:

1 Matrixmultiplikation
im Rahmen des Seminars „Parallele und Verteilte Programmierung“ von Lutz Kramer

2 Beispiel A x B = C 2

3 Beispiel 1 x 8 = 8 A x B = C 2

4 Beispiel 1 x 8 = x 3 = 9 A x B = C 2

5 Beispiel 1 x 8 = x 3 = x 0 = 0 A x B = C 2

6 Beispiel 1 x 8 = x 3 = x 0 = x 1 = -2 A x B = C 2

7 Beispiel 1 x 8 = x 3 = x 0 = x 1 = -2 = A x B = C 2

8 Agenda Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus Strassen-Algorithmus Parallele Algorithmen Schleifenparallelisierung Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick Einführung über die Agenda geben weiterschalten 3

9 Agenda Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus Strassen-Algorithmus Parallele Algorithmen Schleifenparallelisierung Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick Kurzen Einblick über die Theoretischen Grundlagen 3

10 Theoretische Grundlagen
Matrix mit n Zeilen und m Spalten -> Ordnung (n,m) Kennzeichnung Großbuchstabe (z.B. A) und Größe n x m Quadratische Matrizen haben Ordnung (n,n) bzw. Größe n x n Es gilt: cij = Σaik * bkj für alle k x = 4

11 Agenda Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus Strassen-Algorithmus Parallele Algorithmen Schleifenparallelisierung Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick Inhaltlich über Sequentielle Algorithmen, kurzer Ausblick auf das Kapitel 5

12 Sequentielle Algorithmen - Intuitiver Algorithmus -
Intuitive, erste Lösung Lösung über 3 Schleifen Laufzeit: Θ(n3), für A(n x n) und B(n x n) Laufzeit für nicht quadratische Matrizen Θ(l * n * m) 6

13 Sequentielle Algorithmen - Strassen-Algorithmus -
Zerlegung der Matrix A in Submatrizen A11, A12, A21, A22 Gleiches Vorgehen bei Matrix B Berechnung von Zwischenmatrizen P1 bis P7 Berechnung von Teilergebnismatrizen C11, C12, C21, C22 aus P1 bis P7 Zusammensetzen der Endmatrix C 7

14 Sequentielle Algorithmen - Strassen-Algorithmus -
Zwischenmatrizen: P1 = (A11 + A22) x (B11 + B22) P2 = (A21 + A22) x B11 P3 = A11 x (B12 - B22) P4 = A22 x (B21 - B11) P5 = (A11 + A12) x B22 P6 = (A21 - A11) x (B11 + B12) P7 = (A12 - A22) x (B21 + B22) 8

15 Sequentielle Algorithmen - Strassen-Algorithmus -
Blöcke der Zielmatrix: C11 = P1 + P4 - P5 + P7 C12 = P3 + P5 C21 = P2 + P4 C22 = P1 + P3 – P2 + P6 9

16 Sequentielle Algorithmen - Strassen-Algorithmus -
Veröffentlicht im Jahr 1968 Bisher schnellster bekannter Algorithmus Laufzeit von ca. Ω(n2,81) bei quadratischen Matrizen 10

17 Agenda Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus Strassen-Algorithmus Parallele Algorithmen Generelle Annahmen Schleifenparallelisierung Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick Inhaltliche Zusammenfassung der Sequentiellen Algorithmen Ausblick auf die Parallelen Algorithmen 11

18 Parallele Algorithmen - Generelle Annahmen -
p verschiede Prozesse Auf unterschiedlichen Prozessoren Quadratische Matrizen der Ordnung (n,n) n ist ein Vielfache von √p Für das Beispiel gilt: n = und p = 4 12

19 Parallele Algorithmen - Schleifenparallelisierung -
Multiplikation eines (n / p) x (n / p) Blocks aus A mit einem (n / p) x n Block aus B Anzahl der Iterationen ist p Zeit für Multiplikation und Addition  Zeit für gesamte Berechnung für einzelnen Prozess:  * (n / p) * (n / p) * n * p =  * n3 / p Neben Berechnungszeit noch Kommunikationszeit Erklärung zur Formel!!!!!!!!!! 13

20 Parallele Algorithmen - Schleifenparallelisierung -
Kommunikationszeit Latenzzeit  Übertragung von (n / p) x n aus Matrix B Transaktionszeit  Zeit pro Kommunikationsvorgang:  + (( n / p ) * n ) /  Latenzzeit = Zeit für die Vorbereitung der Übertragung (Nach Fremdwörterbuch auch Inkubationszeit) Transaktionszeit = Byte / Sekunde 14

21 Parallele Algorithmen - Schleifenparallelisierung -
Kommunikationszeit Latenzzeit  Übertragung von (n / p) x n aus Matrix B Transaktionszeit  Zeit pro Kommunikationsvorgang:  + (( n / p ) * n ) /  Bearbeitungszeit Berechnungszeit + Zeit p. Kommunikationsvorgang * Anzahl Vorgänge Anzahl der Vorgänge p Gesamtbearbeitungszeit:  * n3 / p + p *  + n2 /  Berechnungszeit: Θ(n3), Kommunikationszeit: Θ(n2) Latenzzeit = Zeit für die Vorbereitung der Übertragung (Nach Fremdwörterbuch auch Inkubationszeit) Transaktionszeit = Byte / Sekunde 14

22 Parallele Algorithmen - Cannon‘s Algorithmus -
Aufteilung in Submatrizen, ähnlich denen von Strassen Submatrizen haben Ordnung (b,b) mit b = n / √p Pro Block (Submatrix) aus C ein Prozess Blöcke von A werde nach Links, Blöcke von B nach Rechts weitergegeben Dabei Multiplikation und Aufsummierung Problem: Anfangsaufteilung 15

23 Parallele Algorithmen - Cannon‘s Algorithmus -
16

24 Parallele Algorithmen - Cannon‘s Algorithmus -
16

25 Parallele Algorithmen - Cannon‘s Algorithmus -
16

26 Parallele Algorithmen - Cannon‘s Algorithmus -
16

27 Parallele Algorithmen - Cannon‘s Algorithmus -
16

28 Parallele Algorithmen - Cannon‘s Algorithmus -
16

29 Parallele Algorithmen - Cannon‘s Algorithmus -
16

30 Parallele Algorithmen - Cannon‘s Algorithmus -
Berechnungszeit Multiplikation von ( n / √p ) x ( n / √p ) Elemente aus Matrix A mit ( n / √p ) x ( n / √p ) aus Matrix B pro Iteration Anzahl der Iterationen √p Zeit für Multiplikation und Addition  Gesamte Berechnungszeit pro Prozess:  * ( n / √p )3 * √p =  * n3 / p 17

31 Parallele Algorithmen - Cannon‘s Algorithmus -
Berechnungszeit Multiplikation von ( n / √p ) x ( n / √p ) Elemente aus Matrix A mit ( n / √p ) x ( n / √p ) aus Matrix B pro Iteration Anzahl der Iterationen √p Zeit für Multiplikation und Addition  Gesamte Berechnungszeit pro Prozess:  * ( n / √p )3 * √p =  * n3 / p Anfangs-Aufteilungszeit Zeit zur Übertragung eines Matrixelements 1 /  Zeit für Anfangs-Aufteilung 2 * ( + n2 / ( p *  )) 17

32 Parallele Algorithmen - Cannon‘s Algorithmus -
Kommunikationszeit Empfang und Versand eines Blockes von A und B bei jeder der √p Iterationen Benötigte Zeit: √p * 2 * ( + n2 / ( p *  )) 18

33 Parallele Algorithmen - Cannon‘s Algorithmus -
Kommunikationszeit Empfang und Versand eines Blockes von A und B bei jeder der √p Iterationen Benötigte Zeit: √p * 2 * ( + n2 / ( p *  )) Bearbeitungszeit Anfangszeit + Berechnungszeit + Kommunikationszeit Gesamtbearbeitungszeit  * n3 / p + 2 * ( √p + 1 ) * ( + n2 / ( p *  )) 18

34 Agenda Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus Strassen-Algorithmus Parallele Algorithmen Schleifenparallelisierung Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick 19

35 Sequentielle Algorithmen
Intuitiver Algorithmus Prinzip: 3 Schleifen Leicht zu implementieren Verständlich Laufzeit: Θ(n3) Vergleichszeit für andere Algorithmen Auch in rekursiver Variante Möglich, dadurch aber keine andere Laufzeit Strassen-Algorithmus Veröffentlicht: 1968 Prinzip: Aufteilung in Submatrizen und geschickte Addition, Subtraktion und Multiplikation Laufzeit: Ω(n2,81) Algorithmus mit der schnellsten bekannten Berechnungszeit Für Ein-Prozessor-Rechner bisher ideal Laufzeit immer für quadratische Matrizen 20

36 Sequentielle Algorithmen
Intuitiver Algorithmus Prinzip: 3 Schleifen Leicht zu implementieren Verständlich Laufzeit: Θ(n3) Vergleichszeit für andere Algorithmen Auch in rekursiver Variante Möglich, dadurch aber keine andere Laufzeit Strassen-Algorithmus Veröffentlicht: 1968 Prinzip: Aufteilung in Submatrizen und geschickte Addition, Subtraktion und Multiplikation Laufzeit: Ω(n2,81) Algorithmus mit der schnellsten bekannten Berechnungszeit Für Ein-Prozessor-Rechner bisher ideal Laufzeit immer für quadratische Matrizen 20

37 Parallele Algorithmen
Schleifenparallelisierung Prinzip: Multiplikation eines (n / p) x (n / p) Blocks mit einem (n / p) x n Block pro Iteration Anzahl Iterationen p Berechnungszeit Θ(n3)  * n3 / p Kommunikationszeit Θ(n2) p *  + n2 /  Cannon‘s Algorithmus Prinzip: Multiplikation eines (n / √ p) x (n / √ p) Blocks mit einem (n / √ p) x (n / √ p) Block pro Iteration Anzahl Iterationen √p Berechnungszeit Θ(n3)  * n3 / p Kommunikationszeit Θ(n2) 2 * ( √p + 1 ) * ( + n2 / ( p *  )) Kommunikationszeit bei Cannon‘s Algorithmus besteht aus Aufteilungszeit und Kommunikationszeit während der Berechnung 21

38 Parallele Algorithmen
p *  + n2 /  > 2 * ( √p + 1 ) * ( + n2 / ( p *  )) 22

39 Parallele Algorithmen
p *  + n2 /  > 2 * ( √p + 1 ) * ( + n2 / ( p *  )) p *  > 2 * ( √p + 1 ) *   p > 2 * ( √p + 1 ) 22

40 Parallele Algorithmen
p *  + n2 /  > 2 * ( √p + 1 ) * ( + n2 / ( p *  )) p *  > 2 * ( √p + 1 ) *   p > 2 * ( √p + 1 ) n2 /  > 2 * ( √p + 1 ) * n2 / ( p *  )) 22

41 Parallele Algorithmen
p *  + n2 /  > 2 * ( √p + 1 ) * ( + n2 / ( p *  )) p *  > 2 * ( √p + 1 ) *   p > 2 * ( √p + 1 ) n2 /  > 2 * ( √p + 1 ) * n2 / ( p *  )) Gilt, sofern p > 2 * √3 + 4 ≈ 7,46410 und  > 0 und  > 0 ist. Damit ist Cannon‘s Algorithmus ab 8 parallelen Prozessens besser. 22

42 Parallele Algorithmen
Schleifenparallelisierung Prinzip: Multiplikation eines (n / p) x (n / p) Blocks mit einem (n / p) x n Block pro Iteration Anzahl Iterationen p Berechnungszeit Θ(n3)  * n3 / p2 Kommunikationszeit Θ(n2) p *  + n2 /  Cannon‘s Algorithmus Prinzip: Multiplikation eines (n / √ p) x (n / √ p) Blocks mit einem (n / √ p) x (n / √ p) Block pro Iteration Anzahl Iterationen √p Berechnungszeit Θ(n3)  * n3 / p Kommunikationszeit Θ(n2) 2 * ( √p + 1 ) * ( + n2 / ( p *  )) Kommunikationszeit bei Cannon‘s Algorithmus besteht aus Aufteilungszeit und Kommunikationszeit während der Berechnung 23

43 Sequentielle vs. Parallele Algorithmen
Strassen-Algorithmus Aufteilungsprinzip Schnellste Berechnungszeit Keine Kommunikationszeit benötigt Cannon‘s Algorithmus Aufteilungsprinzip Verbesserung der Bearbeitungs-zeit durch Aufteilung der Berechnungszeit Kommunikation kann parallel zur Berechnung erfolgen, sofern genug Speicher vorhanden 24

44 Sequentielle vs. Parallele Algorithmen
Strassen-Algorithmus Aufteilungsprinzip Schnellste Berechnungszeit Keine Kommunikationszeit benötigt Cannon‘s Algorithmus Aufteilungsprinzip Verbesserung der Bearbeitungs-zeit durch Aufteilung der Berechnungszeit Kommunikation kann parallel zur Berechnung erfolgen, sofern genug Speicher vorhanden Bearbeitungszeit bei Cannon‘s Algorithmus < Berechnungszeit beim Strassen-Algorithmus 24

45 Sequentielle vs. Parallele Algorithmen
Strassen-Algorithmus Aufteilungsprinzip Schnellste Berechnungszeit Keine Kommunikationszeit benötigt Cannon‘s Algorithmus Aufteilungsprinzip Verbesserung der Bearbeitungs-zeit durch Aufteilung der Berechnungszeit Kommunikation kann parallel zur Berechnung erfolgen, sofern genug Speicher vorhanden Bearbeitungszeit bei Cannon‘s Algorithmus < Berechnungszeit beim Strassen-Algorithmus 24

46 Agenda Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus Strassen-Algorithmus Parallele Algorithmen Schleifenparallelisierung Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick 25

47 Zusammenfassung Überblick über Algorithmen der Matrixmultiplikation
Ziel Überblick über Algorithmen der Matrixmultiplikation Vergleich sequentieller und paralleler Algorithmen 26

48 Zusammenfassung Überblick über Algorithmen der Matrixmultiplikation
Ziel Vorgehen Überblick über Algorithmen der Matrixmultiplikation Vergleich sequentieller und paralleler Algorithmen Vorstellung von zwei sequentiellen Algorithmen: Intuitiv und Strassen Vorstellung von zwei parallelen Algorithmen: Schleifen-parallelisierung und Cannon 26

49 Zusammenfassung Überblick über Algorithmen der Matrixmultiplikation
Ziel Vorgehen Überblick über Algorithmen der Matrixmultiplikation Vergleich sequentieller und paralleler Algorithmen Vorstellung von zwei sequentiellen Algorithmen: Intuitiv und Strassen Vorstellung von zwei parallelen Algorithmen: Schleifen-parallelisierung und Cannon Ergebnis Bei Paralleler Verarbeitung: Cannon, sofern mehr als acht parallele Prozesse vorhanden sind Ohne Parallele Verarbeitung: Strassen ABER: „Bester“ Algorithmus für die Multiplikation von Matrizen ist noch immer nicht gefunden worden. (Sedgewick, S. 604) 26

50 Quellen Freemann, L.; Philips, C.: Parallel numerical algorithms.
Hofer, E.; Lunderstädt, R.: Numerische Methoden der Optimierung. Pacheco, P. S.: Parallel programming with MPI. Quinn, M. J.: Parallel computing: theory and practice. Quinn, M. J.: Prallel programming in C with MPI and OpenMP. Rauber, T.; Rünger, G.: Parallele Programmierung. Schwandt, H.: Parallele Numerik: eine Einführung. Sedgewick, R.: Algorithmen. Sydsæter, K.; Hammond, P.; Böker, F.: Mathematik für Wirtschafts-wissenschaftler. 27


Herunterladen ppt "Matrixmultiplikation"

Ähnliche Präsentationen


Google-Anzeigen