WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK...
-
Upload
ilse-lauber -
Category
Documents
-
view
102 -
download
0
Transcript of WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK...
WIR
TS
CH
AF
TS
INF
OR
MA
TIK
WestfälischeWilhelms-Universität Münster
WIRTSCHAFTSINFORMATIK
MatrixmultiplikationMatrixmultiplikation
im Rahmen des Seminars
„Parallele und Verteilte Programmierung“
von Lutz Kramer
WIRTSCHAFTSINFORMATIK
BeispielBeispiel
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
A=
2
A x B = C
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
B=
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
C=
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
WIRTSCHAFTSINFORMATIK
BeispielBeispiel
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
A=
2
A x B = C
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
B=
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
C=
1 x 8 = 8
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
WIRTSCHAFTSINFORMATIK
BeispielBeispiel
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
A=
2
A x B = C
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
B=
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
C=
1 x 8 = 8 + 3 x 3 = 9
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
WIRTSCHAFTSINFORMATIK
BeispielBeispiel
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
A=
2
A x B = C
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
B=
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
C=
1 x 8 = 8 + 3 x 3 = 9 + -4 x 0 = 0
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
WIRTSCHAFTSINFORMATIK
BeispielBeispiel
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
A=
2
A x B = C
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
B=
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
C=
1 x 8 = 8 + 3 x 3 = 9 + -4 x 0 = 0 + -2 x 1 = -2
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
WIRTSCHAFTSINFORMATIK
BeispielBeispiel
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
A=
2
A x B = C
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
B=
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
C=
1 x 8 = 8 + 3 x 3 = 9 + -4 x 0 = 0 + -2 x 1 = -2 = 15
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
15
8
-10
-19
21
3
-5
1
-14
-4
18
-14
-2
-9
17
-12
WIRTSCHAFTSINFORMATIK
AgendaAgenda
Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus
Strassen-Algorithmus Parallele Algorithmen
Schleifenparallelisierung
Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick
3
WIRTSCHAFTSINFORMATIK
AgendaAgenda
Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus
Strassen-Algorithmus Parallele Algorithmen
Schleifenparallelisierung
Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick
3
WIRTSCHAFTSINFORMATIK
Theoretische GrundlagenTheoretische 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
4
1
m
ij ir rjr
c a b
1
m
ij ir rjr
c a b
a11
...
ai1
...
...
...
a1j
...
aij
...
...
...A(l x n)=
a1n
...
ain
...
al1 ... alj ... aln
b11
...
bi1
...
...
...
b1j
...
bij
...
...
...B(n x m)=
b1m
...
bim
...
bn1 ... bnj ... bnm
c11
...
ci1
...
...
...
c1j
...
cij
...
...
...C(l x m)=
c1m
...
cim
...
cl1 ... clj ... clm
x
=
WIRTSCHAFTSINFORMATIK
AgendaAgenda
Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus
Strassen-Algorithmus Parallele Algorithmen
Schleifenparallelisierung
Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick
5
WIRTSCHAFTSINFORMATIK
Sequentielle AlgorithmenSequentielle Algorithmen- Intuitiver Algorithmus -- Intuitiver Algorithmus -
01 public static Matrix SequentialMultiplication (Matrix A, Matrix B) throws Exception{02 Matrix C = new Matrix(A.getNumberOfRows(), B.getNumberOfColumns());03 for (int i = 0; i < A.getNumberOfRows(); i++){04 for (int j = 0; j < B.getNumberOfColumns(); i++){05 C.setField(i, j, 0);06 for (int k = 0; k < A.getNumberOfColumns(); k++){07 C.setField(i, j, (C.getField(i, j) + (A.getField(i, k) * B.getField(k, j))));08 }09 }10 }11 return C;12 }
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
WIRTSCHAFTSINFORMATIK
Sequentielle AlgorithmenSequentielle Algorithmen- Strassen-Algorithmus -- 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
1
1
-1
-3
3
1
-2
1
-4
-2
5
-2
-2
-3
4
2
A11=
A21=
A12=
A22=
7
8
3
0
1
3
10
2
2
0
2
6
-2
7
3
2
5
B11=
B21=
B12=
B22=
WIRTSCHAFTSINFORMATIK
Sequentielle AlgorithmenSequentielle Algorithmen- Strassen-Algorithmus -- Strassen-Algorithmus -
1
1
3
1
5
-2
4
2
8
3
3
10
6
-2
2
5+
91
-11
135
40=P1= x +
+38
-31
32
15=P2= x
-1
-3
-2
1
5
-2
4
2
8
3
3
10
-6
-2
-1
3=P3= x
1
1
3
1
0
2
7
3
6
-2
2
5
8
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)
--48
12
-37
-14=P4= x
5
-2
4
2
8
3
3
10
0
1
2
2
+-20
-2
-1
12=P5= x
1
1
3
1
-4
-2
-2
-3
6
-2
2
5
--41
-32
-85
-40=P6= x +
1
1
3
1
-1
-3
-2
1
8
3
3
10
0
2
7
3
--48
5
-78
-35=P7= x +
5
-2
4
2
-4
-2
-2
-3
0
1
2
2
6
-2
2
5
WIRTSCHAFTSINFORMATIK
Sequentielle AlgorithmenSequentielle Algorithmen- Strassen-Algorithmus -- Strassen-Algorithmus -
C11=15
8
21
3==
91
-11
135
40
-48
12
-37
-14
1
1
3
1
-48
5
-78
-35+ - +
C12=-14
-4
-2
-9=
6
-2
-1
3
1
1
3
1+
C21=-10
-19
-5
1=
38
-31
32
15
-48
12
-37
-14+
9
Blöcke der Zielmatrix:
C11 = P1 + P4 - P5 + P7
C12 = P3 + P5
C21 = P2 + P4
C22 = P1 + P3 – P2 + P6
C22=18
-14
17
-12=
91
-11
135
40
38
-31
32
15
6
-2
-1
3
-41
-32
-85
-40+ - +
WIRTSCHAFTSINFORMATIK
Sequentielle AlgorithmenSequentielle Algorithmen- Strassen-Algorithmus -- Strassen-Algorithmus -
C11=
C21=
C12=
C22=18
-14
17
-12
-10
-19
-5
1
15
8
21
3
-14
-4
-2
-9
Veröffentlicht im Jahr 1968 Bisher schnellster bekannter Algorithmus Laufzeit von ca. Ω(n2,81) bei quadratischen Matrizen
10
WIRTSCHAFTSINFORMATIK
AgendaAgenda
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
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Generelle Annahmen -- 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
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Schleifenparallelisierung -- Schleifenparallelisierung -
A
Prozess 1
B C
A
Prozess 2
B C
A
Prozess 3
B C
A
Prozess 1
B C
A
Prozess 2
B C
A
Prozess 3
B C
A
Prozess 1
B C
A
Prozess 2
B C
A
Prozess 3
B C
Erster Kommunikations-
schritt
ZweiterKommunikations-
schritt
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
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Schleifenparallelisierung -- Schleifenparallelisierung -
Kommunikationszeit Latenzzeit Übertragung von (n / p) x n aus Matrix B Transaktionszeit Zeit pro Kommunikationsvorgang:
+ (( n / p ) n ) /
14
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Schleifenparallelisierung -- 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
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- 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
B4,3
B3,3
B1,3
B2,3
A2,2 A2,3 A2,4 A2,1
B1,3
B4,3
B2,3
B3,3
A2,3 A2,4 A2,1 A2,2
B2,3
B1,3
B3,3
B4,3
A2,4 A2,1 A2,2 A2,3
B3,3
B2,3
B4,3
B1,3
A2,1 A2,2 A2,3 A2,4
15
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- Cannon‘s Algorithmus -
Prozess 2
A1,2
B1,2
Prozess 3 Prozess 4
Prozess 1
Prozess 1 Prozess 2
Prozess 3 Prozess 4
-1
-3
-2
1
5
-2
4
2
6
-2
2
5
0
2
7
3
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
A1,1
B1,1
B2,2B2,1
A2,2A2,1
16
WIRTSCHAFTSINFORMATIK
Prozess 2
A1,2
B1,2
Prozess 3 Prozess 4
Prozess 1
Prozess 1 Prozess 2
Prozess 3 Prozess 4
-1
-3
-2
1
5
-2
4
2
6
-2
2
5
0
2
7
3
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
A1,1
B1,1
B2,2B2,1
A2,2A2,1
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- Cannon‘s Algorithmus -
16
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- Cannon‘s Algorithmus -
Prozess 2
A1,2
B1,2
Prozess 3 Prozess 4
Prozess 1
Prozess 1 Prozess 2
Prozess 3 Prozess 4
-1
-3
-2
1
5
-2
4
2
6
-2
2
5
0
2
7
3
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
Prozess 1 Prozess 2
Prozess 3 Prozess 4
5
-2
4
2
-1
-3
-2
1
0
2
7
3
6
-2
2
5
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
A1,1
B1,1
B2,2B2,1
A2,2A2,1
Prozess 2
A1,2
B2,2
Prozess 3 Prozess 4
Prozess 1
A1,1
B1,1
B1,2B2,1
A2,1A2,2
16
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- Cannon‘s Algorithmus -
Prozess 2
A1,2
B1,2
Prozess 3 Prozess 4
Prozess 1
Prozess 1 Prozess 2
Prozess 3 Prozess 4
-1
-3
-2
1
5
-2
4
2
6
-2
2
5
0
2
7
3
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
17
11
33
13
Prozess 1
-14
-4
-2
-9
Prozess 2
4
2
18
0
Prozess 3
-4
2
-13
18
Prozess 4
5
-2
4
2
-1
-3
-2
1
0
2
7
3
6
-2
2
5
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
A1,1
B1,1
B2,2B2,1
A2,2A2,1
Prozess 2
A1,2
B2,2
Prozess 3 Prozess 4
Prozess 1
A1,1
B1,1
B1,2B2,1
A2,1A2,2
16
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- Cannon‘s Algorithmus -
Prozess 2
A1,2
B1,2
Prozess 3 Prozess 4
Prozess 1
Prozess 1 Prozess 2
Prozess 3 Prozess 4
-1
-3
-2
1
5
-2
4
2
6
-2
2
5
0
2
7
3
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
17
11
33
13
Prozess 1
-14
-4
-2
-9
Prozess 2
4
2
18
0
Prozess 3
-4
2
-13
18
Prozess 4
5
-2
4
2
-1
-3
-2
1
0
2
7
3
6
-2
2
5
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
A1,1
B1,1
B2,2B2,1
A2,2A2,1
Prozess 2
A1,2
B2,2
Prozess 3 Prozess 4
Prozess 1
A1,1
B1,1
B1,2B2,1
A2,1A2,2
16
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- Cannon‘s Algorithmus -
Prozess 2
A1,2
B1,2
Prozess 3 Prozess 4
Prozess 1
17
11
33
13
Prozess 1
-14
-4
-2
-9
Prozess 2
4
2
18
0
Prozess 3
-4
2
-13
18
Prozess 4
-1
-3
-2
1
5
-2
4
2
6
-2
2
5
0
2
7
3
-4
-2
-2
-3
1
1
3
1
8
3
3
10
0
1
2
2
Prozess 1 Prozess 2
Prozess 3 Prozess 4
-1
-3
-2
1
5
-2
4
2
6
-2
2
5
0
2
7
3
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
17
11
33
13
Prozess 1
-14
-4
-2
-9
Prozess 2
4
2
18
0
Prozess 3
-4
2
-13
18
Prozess 4
5
-2
4
2
-1
-3
-2
1
0
2
7
3
6
-2
2
5
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
A1,1
B1,1
B2,2B2,1
A2,2A2,1
Prozess 2
A1,2
B2,2
Prozess 3 Prozess 4
Prozess 1
A1,1
B1,1
B1,2B2,1
A2,1A2,2
Prozess 2
A1,1
B1,2
Prozess 3 Prozess 4
Prozess 1
A1,2
B2,1
B2,2B1,1
A2,2A2,1
16
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- Cannon‘s Algorithmus -
Prozess 2
A1,2
B1,2
Prozess 3 Prozess 4
Prozess 1
15
8
21
3
Prozess 1
-14
-4
-2
-9
Prozess 2
-10
-19
-5
1
Prozess 3
18
-14
17
-12
Prozess 4
-1
-3
-2
1
5
-2
4
2
6
-2
2
5
0
2
7
3
-4
-2
-2
-3
1
1
3
1
8
3
3
10
0
1
2
2
Prozess 1 Prozess 2
Prozess 3 Prozess 4
-1
-3
-2
1
5
-2
4
2
6
-2
2
5
0
2
7
3
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
17
11
33
13
Prozess 1
-14
-4
-2
-9
Prozess 2
4
2
18
0
Prozess 3
-4
2
-13
18
Prozess 4
5
-2
4
2
-1
-3
-2
1
0
2
7
3
6
-2
2
5
1
1
3
1
-4
-2
-2
-3
0
1
2
2
8
3
3
10
A1,1
B1,1
B2,2B2,1
A2,2A2,1
Prozess 2
A1,2
B2,2
Prozess 3 Prozess 4
Prozess 1
A1,1
B1,1
B1,2B2,1
A2,1A2,2
Prozess 2
A1,1
B1,2
Prozess 3 Prozess 4
Prozess 1
A1,2
B2,1
B2,2B1,1
A2,2A2,1
16
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- 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
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- 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
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- 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
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen- Cannon‘s Algorithmus -- 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
WIRTSCHAFTSINFORMATIK
AgendaAgenda
Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus
Strassen-Algorithmus Parallele Algorithmen
Schleifenparallelisierung
Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick
19
WIRTSCHAFTSINFORMATIK
Sequentielle AlgorithmenSequentielle 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
20
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
WIRTSCHAFTSINFORMATIK
Sequentielle AlgorithmenSequentielle 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
20
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
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele 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 /
21
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 ))
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen
p + n2 / > 2 ( √p + 1 ) ( + n2 / ( p ))
22
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen
p + n2 / > 2 ( √p + 1 ) ( + n2 / ( p ))
p > 2 ( √p + 1 ) p > 2 ( √p + 1 )
22
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele Algorithmen
p + n2 / > 2 ( √p + 1 ) ( + n2 / ( p ))
p > 2 ( √p + 1 ) p > 2 ( √p + 1 )
n2 / > 2 ( √p + 1 ) n2 / ( p ))
22
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele 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
WIRTSCHAFTSINFORMATIK
Parallele AlgorithmenParallele 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 /
23
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 ))
WIRTSCHAFTSINFORMATIK
Sequentielle vs. Parallele AlgorithmenSequentielle vs. Parallele Algorithmen
Strassen-Algorithmus Aufteilungsprinzip Schnellste Berechnungszeit Keine Kommunikationszeit
benötigt
24
Cannon‘s Algorithmus Aufteilungsprinzip Verbesserung der Bearbeitungs-
zeit durch Aufteilung der Berechnungszeit
Kommunikation kann parallel zur Berechnung erfolgen, sofern genug Speicher vorhanden
WIRTSCHAFTSINFORMATIK
Sequentielle vs. Parallele AlgorithmenSequentielle vs. Parallele Algorithmen
Strassen-Algorithmus Aufteilungsprinzip Schnellste Berechnungszeit Keine Kommunikationszeit
benötigt
24
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
WIRTSCHAFTSINFORMATIK
Sequentielle vs. Parallele AlgorithmenSequentielle vs. Parallele Algorithmen
Strassen-Algorithmus Aufteilungsprinzip Schnellste Berechnungszeit Keine Kommunikationszeit
benötigt
24
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
WIRTSCHAFTSINFORMATIK
AgendaAgenda
Theoretische Grundlagen Sequentielle Algorithmen
Intuitiver Algorithmus
Strassen-Algorithmus Parallele Algorithmen
Schleifenparallelisierung
Cannon‘s Algorithmus Vergleich der Algorithmen Kritische Würdigung und Ausblick
25
WIRTSCHAFTSINFORMATIK
ZusammenfassungZusammenfassung
26
Überblick über Algorithmen der Matrixmultiplikation
Vergleich sequentieller und paralleler Algorithmen
Ziel
WIRTSCHAFTSINFORMATIK
ZusammenfassungZusammenfassung
26
Ü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
Ziel Vorgehen
WIRTSCHAFTSINFORMATIK
ZusammenfassungZusammenfassung
26
Ü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
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)
Ziel Vorgehen
Ergebnis