Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte...

81
Modellbildung: Semiring I/O Maschine Volumenschranken Zählschranken Algorithmen für die Speicherhierarchie Lineare Algebra: untere Schranken Riko Jacob Lehrstuhl für Effiziente Algorithmen Fakultät für Informatik Technische Universität München Vorlesung 12. November 2007 Riko Jacob Algorithmen für die Speicherhierarchie

Transcript of Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte...

Page 1: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen für die SpeicherhierarchieLineare Algebra: untere Schranken

Riko Jacob

Lehrstuhl für Effiziente AlgorithmenFakultät für Informatik

Technische Universität München

Vorlesung 12. November 2007

Riko Jacob Algorithmen für die Speicherhierarchie

Page 2: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Gliederung

1 Modellbildung: Semiring I/O Maschine

2 VolumenschrankenAlgorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

3 ZählschrankenAlgorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 3: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Zusätzliche Überlegungen

Erinnerung Permutieren

Elemente sind Atome (nur bewegen, kopieren, löschen)

Multiplikation erfordert mehr Modellbildung:Zwischenergebnisse nötigStruktur der Zahlen kann Aufgabe trivialisieren (0 oder R)

⇒ Semiring I/O-Maschine:

Nur Addieren und Multiplizieren, kein Minus oder geteilt(inverse Elemente)Rechnen nur im Hauptspeicher, wird nicht gezähltSpeicherplatz in Anzahl von ZahlenIndizes und Adressen für umsonst

Riko Jacob Algorithmen für die Speicherhierarchie

Page 4: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Zusätzliche Überlegungen

Erinnerung Permutieren

Elemente sind Atome (nur bewegen, kopieren, löschen)

Multiplikation erfordert mehr Modellbildung:Zwischenergebnisse nötigStruktur der Zahlen kann Aufgabe trivialisieren (0 oder R)

⇒ Semiring I/O-Maschine:

Nur Addieren und Multiplizieren, kein Minus oder geteilt(inverse Elemente)Rechnen nur im Hauptspeicher, wird nicht gezähltSpeicherplatz in Anzahl von ZahlenIndizes und Adressen für umsonst

Riko Jacob Algorithmen für die Speicherhierarchie

Page 5: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Zusätzliche Überlegungen

Erinnerung Permutieren

Elemente sind Atome (nur bewegen, kopieren, löschen)

Multiplikation erfordert mehr Modellbildung:Zwischenergebnisse nötigStruktur der Zahlen kann Aufgabe trivialisieren (0 oder R)

⇒ Semiring I/O-Maschine:

Nur Addieren und Multiplizieren, kein Minus oder geteilt(inverse Elemente)Rechnen nur im Hauptspeicher, wird nicht gezähltSpeicherplatz in Anzahl von ZahlenIndizes und Adressen für umsonst

Riko Jacob Algorithmen für die Speicherhierarchie

Page 6: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Zusätzliche Überlegungen

Erinnerung Permutieren

Elemente sind Atome (nur bewegen, kopieren, löschen)

Multiplikation erfordert mehr Modellbildung:Zwischenergebnisse nötigStruktur der Zahlen kann Aufgabe trivialisieren (0 oder R)

⇒ Semiring I/O-Maschine:

Nur Addieren und Multiplizieren, kein Minus oder geteilt(inverse Elemente)Rechnen nur im Hauptspeicher, wird nicht gezähltSpeicherplatz in Anzahl von ZahlenIndizes und Adressen für umsonst

Riko Jacob Algorithmen für die Speicherhierarchie

Page 7: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Diskussion Semiring I/O-Maschine

Alle Zwischenergebnisse haben FormMatrix-Vektor xi , aij , xj · aij ,

∑j∈S xj · aij

Matrix-Matrix aij , bij , aik · bkj ,∑

k∈S aik · bkjSkalarprodukt xi , yj , aij , xi · aij , aij · yj ,

∑xiaijyj

sind so klassifizierbarVerzweigungen im Programm helfen nichtIndizes sind Teil des Programms

Wie “I/O-Pebble Game / independent evaluation”[Hong, Kung 1981]

Fokus auf Datenfluss (statt Algebra)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 8: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Diskussion Semiring I/O-Maschine

Alle Zwischenergebnisse haben FormMatrix-Vektor xi , aij , xj · aij ,

∑j∈S xj · aij

Matrix-Matrix aij , bij , aik · bkj ,∑

k∈S aik · bkjSkalarprodukt xi , yj , aij , xi · aij , aij · yj ,

∑xiaijyj

sind so klassifizierbarVerzweigungen im Programm helfen nichtIndizes sind Teil des Programms

Wie “I/O-Pebble Game / independent evaluation”[Hong, Kung 1981]

Fokus auf Datenfluss (statt Algebra)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 9: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Diskussion Semiring I/O-Maschine

Alle Zwischenergebnisse haben FormMatrix-Vektor xi , aij , xj · aij ,

∑j∈S xj · aij

Matrix-Matrix aij , bij , aik · bkj ,∑

k∈S aik · bkjSkalarprodukt xi , yj , aij , xi · aij , aij · yj ,

∑xiaijyj

sind so klassifizierbarVerzweigungen im Programm helfen nichtIndizes sind Teil des Programms

Wie “I/O-Pebble Game / independent evaluation”[Hong, Kung 1981]

Fokus auf Datenfluss (statt Algebra)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 10: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Vollbesetzte Matrix mal Vektor

Problem

y = A · x , yi =∑

k=1..N

aik · xk

Direkter Algorithmus

Total O(N2/B) I/Os

Annahmeaik ohne I/O verfügbar

Algorithm 2: Blockweiser Algorithmus

– Teile y in Blöcke der Größe s = M − B s5 6 7

9 10 11 12 13 14 15

17 18 19 20 21 22 23

25 26 27 28 29 30 31

33 34 35 36 37 38 39

41 42 43 44 45 46 4740

32

24

16

8

0 1 2 3 4

– Ns mal x scannen

O(N

MNB

)= O

(N2

MB

)I/Os

Riko Jacob Algorithmen für die Speicherhierarchie

Page 11: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Vollbesetzte Matrix mal Vektor

Problem

y = A · x , yi =∑

k=1..N

aik · xk

Direkter Algorithmus

Total O(N2/B) I/Os

Annahmeaik ohne I/O verfügbar

Algorithm 2: Blockweiser Algorithmus

– Teile y in Blöcke der Größe s = M − B s5 6 7

9 10 11 12 13 14 15

17 18 19 20 21 22 23

25 26 27 28 29 30 31

33 34 35 36 37 38 39

41 42 43 44 45 46 4740

32

24

16

8

0 1 2 3 4

– Ns mal x scannen

O(N

MNB

)= O

(N2

MB

)I/Os

Riko Jacob Algorithmen für die Speicherhierarchie

Page 12: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Vollbesetzte Matrix mal Vektor

Problem

y = A · x , yi =∑

k=1..N

aik · xk

Direkter Algorithmus

Total O(N2/B) I/Os

Annahmeaik ohne I/O verfügbar

Algorithm 2: Blockweiser Algorithmus

– Teile y in Blöcke der Größe s = M − B s5 6 7

9 10 11 12 13 14 15

17 18 19 20 21 22 23

25 26 27 28 29 30 31

33 34 35 36 37 38 39

41 42 43 44 45 46 4740

32

24

16

8

0 1 2 3 4

– Ns mal x scannen

O(N

MNB

)= O

(N2

MB

)I/Os

Riko Jacob Algorithmen für die Speicherhierarchie

Page 13: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Skalarprodukt mit Bandmatrix

Problem– Alle Einträge aij = 1 oder aij = 0– Band: unterer und oberer Rand monoton– k : Anzahl der 1-Einträge– Berechne yT Ax

Anwendung

Suche gemessene in synthetisierten Massenspektren[Roos, Jacob, Grossmann, Fischer, Buhmann, Gruissem, Baginsky, Widmayer, 2007]

Algorithmus

Arbeite in Streifen der Breite M − BO(

Nx+NyB + k

BM

)I/Os

Nx ist Dimension von x , Ny von y

Riko Jacob Algorithmen für die Speicherhierarchie

Page 14: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Skalarprodukt mit Bandmatrix

Problem– Alle Einträge aij = 1 oder aij = 0– Band: unterer und oberer Rand monoton– k : Anzahl der 1-Einträge– Berechne yT Ax

Anwendung

Suche gemessene in synthetisierten Massenspektren[Roos, Jacob, Grossmann, Fischer, Buhmann, Gruissem, Baginsky, Widmayer, 2007]

Algorithmus

Arbeite in Streifen der Breite M − BO(

Nx+NyB + k

BM

)I/Os

Nx ist Dimension von x , Ny von y

Riko Jacob Algorithmen für die Speicherhierarchie

Page 15: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Skalarprodukt mit Bandmatrix

Problem– Alle Einträge aij = 1 oder aij = 0– Band: unterer und oberer Rand monoton– k : Anzahl der 1-Einträge– Berechne yT Ax

Anwendung

Suche gemessene in synthetisierten Massenspektren[Roos, Jacob, Grossmann, Fischer, Buhmann, Gruissem, Baginsky, Widmayer, 2007]

Algorithmus

Arbeite in Streifen der Breite M − BO(

Nx+NyB + k

BM

)I/Os

Nx ist Dimension von x , Ny von y

Riko Jacob Algorithmen für die Speicherhierarchie

Page 16: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Skalarprodukt mit Bandmatrix

Problem– Alle Einträge aij = 1 oder aij = 0– Band: unterer und oberer Rand monoton– k : Anzahl der 1-Einträge– Berechne yT Ax

Anwendung

Suche gemessene in synthetisierten Massenspektren[Roos, Jacob, Grossmann, Fischer, Buhmann, Gruissem, Baginsky, Widmayer, 2007]

Algorithmus

Arbeite in Streifen der Breite M − BO(

Nx+NyB + k

BM

)I/Os

Nx ist Dimension von x , Ny von y

Riko Jacob Algorithmen für die Speicherhierarchie

Page 17: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Skalarprodukt mit Bandmatrix

Problem– Alle Einträge aij = 1 oder aij = 0– Band: unterer und oberer Rand monoton– k : Anzahl der 1-Einträge– Berechne yT Ax

Anwendung

Suche gemessene in synthetisierten Massenspektren[Roos, Jacob, Grossmann, Fischer, Buhmann, Gruissem, Baginsky, Widmayer, 2007]

Algorithmus

Arbeite in Streifen der Breite M − BO(

Nx+NyB + k

BM

)I/Os

Nx ist Dimension von x , Ny von y

Riko Jacob Algorithmen für die Speicherhierarchie

Page 18: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Skalarprodukt mit Bandmatrix

Problem– Alle Einträge aij = 1 oder aij = 0– Band: unterer und oberer Rand monoton– k : Anzahl der 1-Einträge– Berechne yT Ax

Anwendung

Suche gemessene in synthetisierten Massenspektren[Roos, Jacob, Grossmann, Fischer, Buhmann, Gruissem, Baginsky, Widmayer, 2007]

Algorithmus

Arbeite in Streifen der Breite M − BO(

Nx+NyB + k

BM

)I/Os

Nx ist Dimension von x , Ny von y

Riko Jacob Algorithmen für die Speicherhierarchie

Page 19: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Gradschranke

AnnahmeAlle elementaren Produkte haben Grad ≤ D

Ein elementares Produkt ist D-Tupel von Eingabevariablen.Nach einem Input sind B neue Variablen im Speicher, dieseerlauben höchstens MD−1B neue Tupel zu bilden.

BeispielBandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alleelementaren Produkte haben Grad 2Nach einem I/O höchstens MB neue ⇒ Ω

( kMB

)I/Os

Zusammen mit Scanning-Bound:vorgestellte Algorithmen sind optimal

Riko Jacob Algorithmen für die Speicherhierarchie

Page 20: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Matrix Multiplikation

Problem

C = A · B , cij =∑

k=1..N

aik · bkj

Layout von Matrizen

61 62 6356

48

40

32

24

16

8

0

12

40

36

32

44 45 46 47

41 42 43

37 38 39

33 34 35

9 10 118

4 5 6 7

1 2 30 1917 1816

20 21 22 23

25 26 2724

29 30 312813 14 15

49 50 5148

52 53 54 55

57 58 5956

60 61 62 63

0 1

2 3

4 5

6 7

8 9

10 11

12 13

14 15

16 17

18 19

20 21

22 23

24 25

26 27

28 29

30 31

32 33

34 35

36 37

38 39

40 41

43

44 45

46 47

48 49

50 51

52 53

54 55

56 57

58 59

60 61

6242 63

0

1

2

3

4

5

6

8 16 24 32 40 48

9

10

11

12

13

14

15

17

18

19

20

21

22

23

25

26

27

28

29

30

31

33

34

35

36

37

38

39

41

42

43

44

45

46

47

49

50

51

52

53

54

55

56

57

58

59

60

61

62

637

1 2 3 4 5 6 7

9 10 11 12 13 14 15

17 18 19 20 21 22 23

25 26 27 28 29 30 31

33 34 35 36 37 38 39

41 42 43 44 45 46 47

49 50 51 52 53 54 55

57 58 59 60

Zeilen Spalten 4× 4-Blöcke Bit interleaved

Riko Jacob Algorithmen für die Speicherhierarchie

Page 21: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Vollbesetzte Matrix mal MatrixAlgorithmus 1: Nested loops– Zeilen Layout for i = 1 to N

for j = 1 to Ncij = 0for k = 1 to N

cij = cij + aik · bkj

– Lesen einer Spalte von Bbenötigt N I/Os

– Total O(N3) I/Os

Algorithm 2: Blockweiser Algorithmus– Teile A und B in s × s Blöcke

s

s

23

25 26 27 28 29 30 31

33 34 35 36 37 38 39

41 42 43 44 45 46 47

49 50 51 52 53 54 55

57 58 59

1

61 62 6356

48

40

32

24

16

8

0

60

2 3 4 5 6 7

9 10 11 12 13 14 15

17 18 19 20 21 22mit s = Θ(

√M)

– Algorithm 1 für die Ns ×

Ns Matrizen

Elemente sind s × s Matrizen– s × s-Blöcke oder

(Zeilen und M = Ω(B2)

)O((N

s

)3 · s2

B

)= O

(N3

s·B

)= O

(N3

B√

M

)I/Os

Riko Jacob Algorithmen für die Speicherhierarchie

Page 22: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Vollbesetzte Matrix mal MatrixAlgorithmus 1: Nested loops– Zeilen Layout for i = 1 to N

for j = 1 to Ncij = 0for k = 1 to N

cij = cij + aik · bkj

– Lesen einer Spalte von Bbenötigt N I/Os

– Total O(N3) I/Os

Algorithm 2: Blockweiser Algorithmus– Teile A und B in s × s Blöcke

s

s

23

25 26 27 28 29 30 31

33 34 35 36 37 38 39

41 42 43 44 45 46 47

49 50 51 52 53 54 55

57 58 59

1

61 62 6356

48

40

32

24

16

8

0

60

2 3 4 5 6 7

9 10 11 12 13 14 15

17 18 19 20 21 22mit s = Θ(

√M)

– Algorithm 1 für die Ns ×

Ns Matrizen

Elemente sind s × s Matrizen– s × s-Blöcke oder

(Zeilen und M = Ω(B2)

)O((N

s

)3 · s2

B

)= O

(N3

s·B

)= O

(N3

B√

M

)I/Os

Riko Jacob Algorithmen für die Speicherhierarchie

Page 23: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Vollbesetzte Matrix mal MatrixAlgorithmus 1: Nested loops– Zeilen Layout for i = 1 to N

for j = 1 to Ncij = 0for k = 1 to N

cij = cij + aik · bkj

– Lesen einer Spalte von Bbenötigt N I/Os

– Total O(N3) I/Os

Algorithm 2: Blockweiser Algorithmus– Teile A und B in s × s Blöcke

s

s

23

25 26 27 28 29 30 31

33 34 35 36 37 38 39

41 42 43 44 45 46 47

49 50 51 52 53 54 55

57 58 59

1

61 62 6356

48

40

32

24

16

8

0

60

2 3 4 5 6 7

9 10 11 12 13 14 15

17 18 19 20 21 22mit s = Θ(

√M)

– Algorithm 1 für die Ns ×

Ns Matrizen

Elemente sind s × s Matrizen– s × s-Blöcke oder

(Zeilen und M = Ω(B2)

)O((N

s

)3 · s2

B

)= O

(N3

s·B

)= O

(N3

B√

M

)I/Os

Riko Jacob Algorithmen für die Speicherhierarchie

Page 24: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

Vollbesetzte Matrix–MatrixBerechnung in Runden [Hong, Kung 1981]

Für jede (M, B)-I/O Berechnung mit ` I/Os gibt es eine(2M, B)-I/O Berechnung mit höchstens 2` I/Os, der Gestalt(Speicher leer, laden, speichern, Speicher leer)∗

untere Schranke: elementare Produkte pro Runde– Sei c #Ergebnisse (C, Output)

A

B

C

– ai # Elemente in Spalte i von A– bi # Elemente in Zeile i von B– Speicher: c,

∑i ai + bi ≤ M

– Produkte:∑

i minai · bi , c– Maximal für ai = bi =

√M, c = M

#Produkte ≤ M√

M

Riko Jacob Algorithmen für die Speicherhierarchie

Page 25: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmen: Vollbesetzte Matrix mal VektorGradschrankeAlgorithmus: Vollbesetzte Matrix mal MatrixUntere Schranke: Vollbesetzte Matrix mal Matrix

untere Schranke: vollbesetzte Matrix–Matrix

Theorem [Hong, Kung 1981]

Ein Semiring I/O Programm, dass eine vollbesetzte N1 × N2 miteiner N2 × N3 Matrix multipliziert benötigt

Ω

(N1N2N3

B√

M

)

Beweis:Es gibt N1N2N3 elementare Produkte, also (vorige Folie)Ω(

N1N2N3M√

M

)Runden.

Eine Runde hat M/B I/Os.

Riko Jacob Algorithmen für die Speicherhierarchie

Page 26: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne

Ax =: y,

xA =: y

A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 27: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

xA =: y

A ist N × N Matrix

mit kN Einträgen 6= 0.(1 ≤ k ≤

√N)

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 28: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x

A =: y

A ist N × N Matrix

mit kN Einträgen 6= 0.(1 ≤ k ≤

√N)

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 29: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x

A =: y

A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 30: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x

A =: ya54 a59 y5

x9x4 A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

yi =∑N

j=1 aijxj

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 31: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Anwendungen

dünn besetzte Matrizen:Diskretisierung von DifferentialgleichungenModifikation von digitalen BildernAdjazenzmatrix eines Graphen

Operationen:Iteratives Lösen eines GleichungssystemsEigenwerte und EigenvektorenGoogles PageRank

Programmierung:Software Bibliothek: “Sparse Matrix Kernel”Googles “MapReduce”

Riko Jacob Algorithmen für die Speicherhierarchie

Page 32: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplikations-ProgrammeDirekt x 7→ Ax

for i = 1 to N doyi := 0;for i = 1 to N do

yi := yi + aijxj ;end

end

A ist Liste L =[(i , j , aij)

]for i = 1 to N do

yi := 0;endfor (i , j , aij) ∈ L do

yi := yi + aijxj ;end

Kontrollstruktur hängt nur von A ab⇒ Eigentlich ein langes Programm ohne Verzweigung

i , j sind dann Konstanten

Riko Jacob Algorithmen für die Speicherhierarchie

Page 33: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplikations-ProgrammeDirekt x 7→ Ax

for i = 1 to N doyi := 0;for i = 1 to N do

if aij 6= 0 thenyi := yi + aijxj ;

endend

end

A ist Liste L =[(i , j , aij)

]for i = 1 to N do

yi := 0;endfor (i , j , aij) ∈ L do

yi := yi + aijxj ;end

Kontrollstruktur hängt nur von A ab⇒ Eigentlich ein langes Programm ohne Verzweigung

i , j sind dann Konstanten

Riko Jacob Algorithmen für die Speicherhierarchie

Page 34: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplikations-ProgrammeDirekt x 7→ Ax

for i = 1 to N doyi := 0;for i = 1 to N do

if aij 6= 0 thenyi := yi + aijxj ;

endend

end

A ist Liste L =[(i , j , aij)

]for i = 1 to N do

yi := 0;endfor (i , j , aij) ∈ L do

yi := yi + aijxj ;end

Kontrollstruktur hängt nur von A ab⇒ Eigentlich ein langes Programm ohne Verzweigung

i , j sind dann Konstanten

Riko Jacob Algorithmen für die Speicherhierarchie

Page 35: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplikations-ProgrammeDirekt x 7→ Ax

for i = 1 to N doyi := 0;for i = 1 to N do

if aij 6= 0 thenyi := yi + aijxj ;

endend

end

A ist Liste L =[(i , j , aij)

]for i = 1 to N do

yi := 0;endfor (i , j , aij) ∈ L do

yi := yi + aijxj ;end

Kontrollstruktur hängt nur von A ab⇒ Eigentlich ein langes Programm ohne Verzweigung

i , j sind dann Konstanten

Riko Jacob Algorithmen für die Speicherhierarchie

Page 36: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplikations-ProgrammeDirekt x 7→ Ax

for i = 1 to N doyi := 0;for i = 1 to N do

if aij 6= 0 thenyi := yi + aijxj ;

endend

end

A ist Liste L =[(i , j , aij)

]for i = 1 to N do

yi := 0;endfor (i , j , aij) ∈ L do

yi := yi + aijxj ;end

Kontrollstruktur hängt nur von A ab⇒ Eigentlich ein langes Programm ohne Verzweigung

i , j sind dann Konstanten

Riko Jacob Algorithmen für die Speicherhierarchie

Page 37: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x

A =: y

A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 38: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x

A =: y

A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 39: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x

A =: y

A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Row-major Layout

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 40: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

A =: y

1 1 1 1 1 1111 1 1 1A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Row-major LayoutZeilensummen

Θ(kN/B) I/Os

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 41: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x

A =: y

A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Row-major LayoutDirekter Alg.

Θ(kN) I/Os

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 42: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x

A =: y

A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 43: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 44: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

y

A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Einträge sindProdukte aijxj

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 45: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

A =: y

1 1 1 1 1 1111 1 1 1A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Row-major LayoutZeilensummen

Θ(kN/B) I/Os

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 46: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Sortierbasiertes Multiplizieren

A ist Liste L =[(i , j , aij)

], Z ist gleichartige Liste

for i = 1 to N do yi := 0;Sortiere L nach Spalten (j);for (i , j , aij) ∈ L do zij := aijxj ; // j aufsteigendSortiere Z nach Zeilen (i);for (i , j , zij) ∈ Z do yi := yi + zij ; // i aufsteigend

Riko Jacob Algorithmen für die Speicherhierarchie

Page 47: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Analyse des Sortierbasierten Programms

Multiplikationen und Additionen: O(kN)

I/Os:

O(

kNB

log MB

kNM

)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 48: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Sortierbasiertes MultiplizierenBlock Layout

A ist Liste L =[(i , j , aij)

], Z ist gleichartige Liste

for i = 1 to N do yi := 0;Sortiere L nach Spalten (j); L ist in Block-Row-Major Layoutfor (i , j , aij) ∈ L do zij := aijxj ; // j aufsteigendSortiere Z nach Zeilen (i);for (i , j , zij) ∈ Z do yi := yi + zij ; // i aufsteigend

Riko Jacob Algorithmen für die Speicherhierarchie

Page 49: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Multiplizieren mit einer dünn besetzten Matrix

Berechne Ax =: y,

x

A =: y

A ist N × N Matrixmit kN Einträgen 6= 0.

(1 ≤ k ≤√

N)

Block-Column-majorLayout

Permutieren ist Spezialfall:k = 1, eine 1 pro Zeile und pro Spalte

Riko Jacob Algorithmen für die Speicherhierarchie

Page 50: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Analyse des Sortierbasierten Programms

Multiplikationen und Additionen: O(kN)

I/Os:

O(

kNB

log MB

kNM

)

O(

kNB

log MB

NM

)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 51: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Sortierbasiertes MultiplizierenBlock Layout und Addieren beim Sortieren

A ist Liste L =[(i , j , aij)

], Z ist gleichartige Liste

for i = 1 to N do yi := 0;Sortiere L nach Spalten (j); L ist in Block-Row-Major Layoutfor (i , j , aij) ∈ L do zij := aijxj ; // j aufsteigendSortiere Z nach Zeilen (i);begin Beim Sortieren von Z nach Zeilen

if (i , j , zij) und (i , h, zih) zugleich im Speicher thenzij := zij + zih, werfe zih weg;

endendfor (i , j , zij) ∈ Z do yi := yi + zij ; // i aufsteigend

Riko Jacob Algorithmen für die Speicherhierarchie

Page 52: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Analyse des Sortierbasierten Programms

Multiplikationen und Additionen: O(kN)

I/Os:

O(

kNB

log MB

kNM

)

O(

kNB

log MB

NM

)

O(

kNB

log MB

NkM

)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 53: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Dünnbesetzte Matrizen

k -Dünnbesetzte MatrixDie N × N Matrix A hat kN Nicht-Null-Einträge, also im Schnittk Einträge pro Spalte.

Bekannt: [Aggarwal, Vitter 1988]

Permutationsmatrizen sind Spezialfall:

Ω

(min

NB

(1 + logM/B

NM

), N)

Somit Faktor k schwächer als Algorithmen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 54: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Aussage der unteren Schranken

. Column-Major LayoutB > 2, M ≥ 4B und k ≤ N1−ε

Θ

(min

kNB

(1 + logM/B

Nmaxk , M

), kN

). Freies Layout

B ≥ 6, M ≥ 3B und k ≤ 3√

N

Θ

(min

kNB

(1 + logM/B

NkM

), kN

)Gilt für k > 5 auch wenn Eingabe- und Ausgabe-Vektor inbeliebiger Form gespeichert werden können.

Riko Jacob Algorithmen für die Speicherhierarchie

Page 55: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Beweisidee Untere Schranken

Wie [Aggarwal, Vitter 1988]: Vergleiche Anzahl schnellerProgramme mit Anzahl von AufgabenNormalisieren der Programme:

Mengen statt ListenErgebnisse rückwärts (nur Zeile statt auch Teilmenge vonSpalten)Berechnung so früh wie möglich

⇒ kurze, eindeutige Beschreibung jedes ProgrammsSorgfältiges Auflösen der entstehenden Ungleichung

Riko Jacob Algorithmen für die Speicherhierarchie

Page 56: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Eine ungewöhnliche Aufgabe

Aufgabe Gegeben y1, . . . , yN , erzeuge eine Liste der Länge kN,interpretiert als N Blöcke von k Variablen.

(y1, y2, y3) ([y1, y3], [y1, y2], [y2, y3]) ≡

( y1 y1y2 y2

y3 y3

)

Ziel: Erzeuge alle k -regulären Matrizen in Column MajorLayout.

Annahme: Variablen können nur bewegt, kopiert odergelöscht werden.Normalisiere: Ordnung im Speicher/Blöcken ist unwichtig⇒ Mengen von IndizesDies ist Zeit-umgekehrt die AufgabeZeilen-Summen zu berechnen (x = 1).

Riko Jacob Algorithmen für die Speicherhierarchie

Page 57: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Eine ungewöhnliche Aufgabe

Aufgabe Gegeben y1, . . . , yN , erzeuge eine Liste der Länge kN,interpretiert als N Blöcke von k Variablen.

(1, 2, 3) (1, 3, 1, 2, 2, 3) ≡

( y1 y1y2 y2

y3 y3

)

Ziel: Erzeuge alle k -regulären Matrizen in Column MajorLayout.

Annahme: Variablen können nur bewegt, kopiert odergelöscht werden.Normalisiere: Ordnung im Speicher/Blöcken ist unwichtig⇒ Mengen von IndizesDies ist Zeit-umgekehrt die AufgabeZeilen-Summen zu berechnen (x = 1).

Riko Jacob Algorithmen für die Speicherhierarchie

Page 58: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Eine ungewöhnliche Aufgabe

Aufgabe Gegeben y1, . . . , yN , erzeuge eine Liste der Länge kN,interpretiert als N Blöcke von k Variablen.

(1, 2, 3) (1, 3, 1, 2, 2, 3) ≡

( y1 y1y2 y2

y3 y3

)

Ziel: Erzeuge alle k -regulären Matrizen in Column MajorLayout.

Annahme: Variablen können nur bewegt, kopiert odergelöscht werden.Normalisiere: Ordnung im Speicher/Blöcken ist unwichtig⇒ Mengen von IndizesDies ist Zeit-umgekehrt die AufgabeZeilen-Summen zu berechnen (x = 1).

Riko Jacob Algorithmen für die Speicherhierarchie

Page 59: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Matrizen ErzeugenIdeen

Symbolische Representation: Zahlen ↔ Indizes vonVariablenM⊂ [N], |M| ≤ M; Ti ⊂ [N], |Ti | ≤ B.Verfolge die Bewegung der VariablenEindeutige Anfangskonfiguration M = ∅,T1 = 1, ..., B, . . . , TN/B = N − B + 1, ..., NEndkonfiguration bestimmt die Gestalt der Matrixbis auf Anordnung in den Mengen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 60: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Matrizen ErzeugenIdeen

Symbolische Representation: Zahlen ↔ Indizes vonVariablenM⊂ [N], |M| ≤ M; Ti ⊂ [N], |Ti | ≤ B.Verfolge die Bewegung der VariablenEindeutige Anfangskonfiguration M = ∅,T1 = 1, ..., B, . . . , TN/B = N − B + 1, ..., NEndkonfiguration bestimmt die Gestalt der Matrixbis auf Anordnung in den Mengen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 61: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Matrizen ErzeugenIdeen

Symbolische Representation: Zahlen ↔ Indizes vonVariablenM⊂ [N], |M| ≤ M; Ti ⊂ [N], |Ti | ≤ B.Verfolge die Bewegung der VariablenEindeutige Anfangskonfiguration M = ∅,T1 = 1, ..., B, . . . , TN/B = N − B + 1, ..., NEndkonfiguration bestimmt die Gestalt der Matrixbis auf Anordnung in den Mengen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 62: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Matrizen ErzeugenIdeen

Symbolische Representation: Zahlen ↔ Indizes vonVariablenM⊂ [N], |M| ≤ M; Ti ⊂ [N], |Ti | ≤ B.Verfolge die Bewegung der VariablenEindeutige Anfangskonfiguration M = ∅,T1 = 1, ..., B, . . . , TN/B = N − B + 1, ..., NEndkonfiguration bestimmt die Gestalt der Matrixbis auf Anordnung in den Mengen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 63: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Matrizen ErzeugenIdeen

Symbolische Representation: Zahlen ↔ Indizes vonVariablenM⊂ [N], |M| ≤ M; Ti ⊂ [N], |Ti | ≤ B.Verfolge die Bewegung der VariablenEindeutige Anfangskonfiguration M = ∅,T1 = 1, ..., B, . . . , TN/B = N − B + 1, ..., NEndkonfiguration bestimmt die Gestalt der Matrixbis auf Anordnung in den Mengen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 64: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zählen

EndkonfigurationEine Endkonfiguration entspricht einer bestimmten Anzahl vonverschiedenen Matrizen.Mehrdeutigkeit:

3kN , B < k1, B = k(2eB/k)kN , B > k

Anzahl verschiedener Programme (Datenfluss-Spur)Anzahl Nachfolgekonfigurationen pro I/O-Operation:

`

(M + B

B

)Riko Jacob Algorithmen für die Speicherhierarchie

Page 65: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zählen

EndkonfigurationEine Endkonfiguration entspricht einer bestimmten Anzahl vonverschiedenen Matrizen.Mehrdeutigkeit:

3kN , B < k1, B = k(2eB/k)kN , B > k

Anzahl verschiedener Programme (Datenfluss-Spur)Anzahl Nachfolgekonfigurationen pro I/O-Operation:

`

(M + B

B

)Riko Jacob Algorithmen für die Speicherhierarchie

Page 66: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Theorem: Matrizen Erzeugen

Lemma

Für B > 2, M ≥ 4B und k ≤ N1−ε gilt

`(k , N) ≥ min

κ(ε)kNB

logM/BN

maxk , M,

18κ′(ε)kN

.

Proof.Ergibt sich aus:(

Nk

)N

≤((

M + BB

)`

)`

·max3, 2eB/kkN

Riko Jacob Algorithmen für die Speicherhierarchie

Page 67: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Theorem: Matrizen Erzeugen

Lemma

Für B > 2, M ≥ 4B und k ≤ N1−ε gilt

`(k , N) ≥ min

κ(ε)kNB

logM/BN

maxk , M,

18κ′(ε)kN

.

Proof.Ergibt sich aus:(

Nk

)N

≤((

M + BB

)`

)`

·max3, 2eB/kkN

Riko Jacob Algorithmen für die Speicherhierarchie

Page 68: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Theorem: Column Major Layout

Theorem

Für B > 2, M ≥ 4B und k ≤ N1−ε gilt

`(k , N) ≥ min

κ(ε)kNB

logM/BN

maxk , M,

18κ′(ε)kN

.

Proof.Multiplizieren mit dem 1-Vektor ist Zeit invers zum Erzeugenvon Matrizen(Teilsummen statt Variablen)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 69: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Theorem: Column Major Layout

Theorem

Für B > 2, M ≥ 4B und k ≤ N1−ε gilt

`(k , N) ≥ min

κ(ε)kNB

logM/BN

maxk , M,

18κ′(ε)kN

.

Proof.Multiplizieren mit dem 1-Vektor ist Zeit invers zum Erzeugenvon Matrizen(Teilsummen statt Variablen)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 70: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Erweiterung zu freiem Layout

Mehr Information nötig, um ein Programm zu beschreiben:Verfolge Zeit-vorwärts die Bewegung der Variablen (xj );Verfolge Zeit-rückwärts die Bewegung von Teilsummen;Beobachte Multiplikationen (aijxj ) im Hauptspeicher.

. Dies bestimmt die Gestalt der Matrix.

Ω(

min

kNB

(1 + logM/B

NkM

), kN

)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 71: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Erweiterung zu freiem Layout

Mehr Information nötig, um ein Programm zu beschreiben:Verfolge Zeit-vorwärts die Bewegung der Variablen (xj );Verfolge Zeit-rückwärts die Bewegung von Teilsummen;Beobachte Multiplikationen (aijxj ) im Hauptspeicher.

. Dies bestimmt die Gestalt der Matrix.

Ω(

min

kNB

(1 + logM/B

NkM

), kN

)

Riko Jacob Algorithmen für die Speicherhierarchie

Page 72: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Ungleichung für freies Layout

Normalisieren: Elementare Produkte werden sofort erzeugt(ersetzen aij ). Somit:(

Nk

)N

≤((

M + BB

)`

)2`

·(

2`BMkN

).

Löse nach ` mithilfe von

LemmaSeien b ≥ 2 und s, t > 0 mit s · t > 1. Dann gilt für alle positivenreellen Zahlen x, dass x ≥ logb(s/x)

t ⇒ x ≥ 12

logb(s·t)t

Riko Jacob Algorithmen für die Speicherhierarchie

Page 73: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Aussage der unteren Schranken

. Column-Major LayoutB > 2, M ≥ 4B und k ≤ N1−ε

Θ

(min

kNB

(1 + logM/B

Nmaxk , M

), kN

). Freies Layout

B ≥ 6, M ≥ 3B und k ≤ 3√

N

Θ

(min

kNB

(1 + logM/B

NkM

), kN

)Gilt für k > 5 auch wenn Eingabe- und Ausgabe-Vektor inbeliebiger Form gespeichert werden können.

Riko Jacob Algorithmen für die Speicherhierarchie

Page 74: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zusammenfassung der neuen Ergebnisse

Es gibt dünn besetzte Matrizen, für die das sortierbasierteProgramm optimal ist (bis auf eine Konstante)Fast alle dünn besetzten Matrizen sind schwierigEine gleichverteilt zufällig gewählte Matrix ist schwierig

Erweiterungen:nicht quadratische MatrizenSkalarprodukteParallelrechner mit Block-Kommunikation (statt I/O-Modell)

Offen:mit mehreren Vektoren gleichzeitig MultiplizierenGestaltabhängige optimale Algorithmen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 75: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zusammenfassung der neuen Ergebnisse

Es gibt dünn besetzte Matrizen, für die das sortierbasierteProgramm optimal ist (bis auf eine Konstante)Fast alle dünn besetzten Matrizen sind schwierigEine gleichverteilt zufällig gewählte Matrix ist schwierig

Erweiterungen:nicht quadratische MatrizenSkalarprodukteParallelrechner mit Block-Kommunikation (statt I/O-Modell)

Offen:mit mehreren Vektoren gleichzeitig MultiplizierenGestaltabhängige optimale Algorithmen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 76: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zusammenfassung der neuen Ergebnisse

Es gibt dünn besetzte Matrizen, für die das sortierbasierteProgramm optimal ist (bis auf eine Konstante)Fast alle dünn besetzten Matrizen sind schwierigEine gleichverteilt zufällig gewählte Matrix ist schwierig

Erweiterungen:nicht quadratische MatrizenSkalarprodukteParallelrechner mit Block-Kommunikation (statt I/O-Modell)

Offen:mit mehreren Vektoren gleichzeitig MultiplizierenGestaltabhängige optimale Algorithmen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 77: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zusammenfassung der neuen Ergebnisse

Es gibt dünn besetzte Matrizen, für die das sortierbasierteProgramm optimal ist (bis auf eine Konstante)Fast alle dünn besetzten Matrizen sind schwierigEine gleichverteilt zufällig gewählte Matrix ist schwierig

Erweiterungen:nicht quadratische MatrizenSkalarprodukteParallelrechner mit Block-Kommunikation (statt I/O-Modell)

Offen:mit mehreren Vektoren gleichzeitig MultiplizierenGestaltabhängige optimale Algorithmen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 78: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zusammenfassung der neuen Ergebnisse

Es gibt dünn besetzte Matrizen, für die das sortierbasierteProgramm optimal ist (bis auf eine Konstante)Fast alle dünn besetzten Matrizen sind schwierigEine gleichverteilt zufällig gewählte Matrix ist schwierig

Erweiterungen:nicht quadratische MatrizenSkalarprodukteParallelrechner mit Block-Kommunikation (statt I/O-Modell)

Offen:mit mehreren Vektoren gleichzeitig MultiplizierenGestaltabhängige optimale Algorithmen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 79: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zusammenfassung der neuen Ergebnisse

Es gibt dünn besetzte Matrizen, für die das sortierbasierteProgramm optimal ist (bis auf eine Konstante)Fast alle dünn besetzten Matrizen sind schwierigEine gleichverteilt zufällig gewählte Matrix ist schwierig

Erweiterungen:nicht quadratische MatrizenSkalarprodukteParallelrechner mit Block-Kommunikation (statt I/O-Modell)

Offen:mit mehreren Vektoren gleichzeitig MultiplizierenGestaltabhängige optimale Algorithmen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 80: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zusammenfassung der neuen Ergebnisse

Es gibt dünn besetzte Matrizen, für die das sortierbasierteProgramm optimal ist (bis auf eine Konstante)Fast alle dünn besetzten Matrizen sind schwierigEine gleichverteilt zufällig gewählte Matrix ist schwierig

Erweiterungen:nicht quadratische MatrizenSkalarprodukteParallelrechner mit Block-Kommunikation (statt I/O-Modell)

Offen:mit mehreren Vektoren gleichzeitig MultiplizierenGestaltabhängige optimale Algorithmen

Riko Jacob Algorithmen für die Speicherhierarchie

Page 81: Lineare Algebra: untere Schranken · Beispiel Bandmatrix Skalarprodukt / Vollbesetzte Matrix–Vektor Alle elementaren Produkte haben Grad 2 Nach einem I/O höchstens MB neue ⇒

Modellbildung: Semiring I/O MaschineVolumenschranken

Zählschranken

Algorithmus: Dünnbesetzte Matrix mal VektorUntere Schranke: Dünnbesetzte Matrizen

Zusammenfassung der neuen Ergebnisse

Es gibt dünn besetzte Matrizen, für die das sortierbasierteProgramm optimal ist (bis auf eine Konstante)Fast alle dünn besetzten Matrizen sind schwierigEine gleichverteilt zufällig gewählte Matrix ist schwierig

Erweiterungen:nicht quadratische MatrizenSkalarprodukteParallelrechner mit Block-Kommunikation (statt I/O-Modell)

Offen:mit mehreren Vektoren gleichzeitig MultiplizierenGestaltabhängige optimale Algorithmen

Riko Jacob Algorithmen für die Speicherhierarchie