WIRTSCHAFTSINFORMATIK Westfälische Wilhelms-Universität Münster WIRTSCHAFTS INFORMATIK...

Preview:

Citation preview

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

Recommended