Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.