1 / 49

Matrixmultiplikation

Matrixmultiplikation. im Rahmen des Seminars „Parallele und Verteilte Programmierung“ von Lutz Kramer. Beispiel. A x B = C. 2. Beispiel. 1 x 8 = 8. A x B = C. 2. Beispiel. 1 x 8 = 8 + 3 x 3 = 9. A x B = C. 2. Beispiel. 1 x 8 = 8 + 3 x 3 = 9 + -4 x 0 = 0.

gyala
Download Presentation

Matrixmultiplikation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 = 8 + 3 x 3 = 9 A x B = C 2

  5. Beispiel 1 x 8 = 8 + 3 x 3 = 9 + -4 x 0 = 0 A x B = C 2

  6. Beispiel 1 x 8 = 8 + 3 x 3 = 9 + -4 x 0 = 0 + -2 x 1 = -2 A x B = C 2

  7. Beispiel 1 x 8 = 8 + 3 x 3 = 9 + -4 x 0 = 0 + -2 x 1 = -2 = 15 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 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 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 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 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 = 4 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 13

  20. Parallele Algorithmen- Schleifenparallelisierung - Kommunikationszeit • Latenzzeit  • Übertragung von (n / p) x n aus Matrix B • Transaktionszeit  • Zeit pro Kommunikationsvorgang:  + (( n / p ) * n ) /  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) 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 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 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 *  )) 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 *  )) 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 Ziel • Überblick über Algorithmen der Matrixmultiplikation • Vergleich sequentieller und paralleler Algorithmen 26

  48. Zusammenfassung 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 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

More Related