Parallele Algorithmen für H-Matrizen - Kriemann.name

15.04.2005 - ... I: der Clusterbaum. Beispiel (binäre Raumteilung). Gebiet Ω ..... 100. 120. Teilungsgrad. Anzahl der Prozessoren. LPT. Hilbertkurve. Parallele ...
622KB Größe 6 Downloads 91 Ansichten
Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Parallele Algorithmen f¨ur H-Matrizen Ronald Kriemann Max-Planck-Institut f¨ ur Mathematik in den Naturwissenschaften Leipzig

15.4.2005

Parallele Algorithmen f¨ ur H-Matrizen

1/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

¨ Uberblick

1 Einf¨ uhrung

Parallele Algorithmen f¨ ur H-Matrizen

2/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

¨ Uberblick

1 Einf¨ uhrung

2 H-Matrizen

Parallele Algorithmen f¨ ur H-Matrizen

2/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

¨ Uberblick

1 Einf¨ uhrung

2 H-Matrizen

3 Parallele H-Algebra

Parallele Algorithmen f¨ ur H-Matrizen

2/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

¨ Uberblick

1 Einf¨ uhrung

2 H-Matrizen

3 Parallele H-Algebra

4 Bemerkungen

Parallele Algorithmen f¨ ur H-Matrizen

2/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

¨ Uberblick

1 Einf¨ uhrung

2 H-Matrizen

3 Parallele H-Algebra

4 Bemerkungen

Parallele Algorithmen f¨ ur H-Matrizen

3/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Problemstellung Die numerische Behandlung von Differential- und Integralgleichungen f¨ uhrt h¨aufig zu linearen Gleichungssystemen A·x=y mit zu bestimmendem Vektor x der Dimension n.

Parallele Algorithmen f¨ ur H-Matrizen

Einf¨ uhrung

4/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Problemstellung Die numerische Behandlung von Differential- und Integralgleichungen f¨ uhrt h¨aufig zu linearen Gleichungssystemen A·x=y mit zu bestimmendem Vektor x der Dimension n. L¨osungswege Gauß-Elimination oder LU-Zerlegung:  • Aufwand O n3 , • geeignet f¨ ur kleine Systeme.

Iterationsverfahren: • Beispiele: Mehrgitterverfahren, Methode der konjugierten

Gradienten, • Aufwand bestimmt durch Kosten f¨ ur A · x. Parallele Algorithmen f¨ ur H-Matrizen

Einf¨ uhrung

4/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Approximation Vollbesetzte Matrizen  Anzahl der Eintr¨age und somit Aufwand f¨ ur A · x ist O n2 .

Parallele Algorithmen f¨ ur H-Matrizen

Einf¨ uhrung

5/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Approximation Vollbesetzte Matrizen  Anzahl der Eintr¨age und somit Aufwand f¨ ur A · x ist O n2 . Approximative Darstellung Durch numerische Behandlung entsteht typischerweise ein Diskretisierungsfehler ε ≥ 0. Deshalb gen¨ ugt approximative Matrixdarstellung A˜ mit ˜ ≤ ε1 kA − Ak Zu l¨osen ist damit: ˜x = b A˜

Parallele Algorithmen f¨ ur H-Matrizen

mit

kx − x ˜ k ≤ ε2

Einf¨ uhrung

5/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Approximation Vollbesetzte Matrizen  Anzahl der Eintr¨age und somit Aufwand f¨ ur A · x ist O n2 . Approximative Darstellung Durch numerische Behandlung entsteht typischerweise ein Diskretisierungsfehler ε ≥ 0. Deshalb gen¨ ugt approximative Matrixdarstellung A˜ mit ˜ ≤ ε1 kA − Ak Zu l¨osen ist damit: ˜x = b A˜

mit

kx − x ˜ k ≤ ε2

Approximationsverfahren Speicheraufwand Multipol-Methode: O (n logα n) Panel-Clustering: O n logβ n H-Matrizen: O (n logγ n) Parallele Algorithmen f¨ ur H-Matrizen

Einf¨ uhrung

Algebra MVM MVM MVM, Add., Mult., Inv. 5/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Numerik mit H-Matrizen L¨osung von Gleichungssystemen 1 2

Matrix A˜ wird mittels H-Matrix-Algebra invertiert. Berechnung von x ˜ = A˜−1 b in einem Schritt.

 ur schwach- und vollbesetzte Matrizen: O n log2 n . Aufwand f¨

Parallele Algorithmen f¨ ur H-Matrizen

Einf¨ uhrung

6/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Numerik mit H-Matrizen L¨osung von Gleichungssystemen 1 2

Matrix A˜ wird mittels H-Matrix-Algebra invertiert. Berechnung von x ˜ = A˜−1 b in einem Schritt.

 ur schwach- und vollbesetzte Matrizen: O n log2 n . Aufwand f¨ Problem Komplexit¨at der H-Matrix-Algebra mit großen Konstanten verbunden.

Parallele Algorithmen f¨ ur H-Matrizen

Einf¨ uhrung

6/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Numerik mit H-Matrizen L¨osung von Gleichungssystemen 1 2

Matrix A˜ wird mittels H-Matrix-Algebra invertiert. Berechnung von x ˜ = A˜−1 b in einem Schritt.

 ur schwach- und vollbesetzte Matrizen: O n log2 n . Aufwand f¨ Problem Komplexit¨at der H-Matrix-Algebra mit großen Konstanten verbunden. L¨osung • effizientere Algorithmen, z.B. H-LU-Zerlegung anstelle H-Inversion, • effizientere Approximation, z.B. mittels H2 -Matrizen, • Parallelisierung der H-Matrix-Algebra Parallele Algorithmen f¨ ur H-Matrizen

Einf¨ uhrung

6/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

¨ Uberblick

1 Einf¨ uhrung

2 H-Matrizen

3 Parallele H-Algebra

4 Bemerkungen

Parallele Algorithmen f¨ ur H-Matrizen

7/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Clusterb¨aume

R

Seien I eine Indexmenge mit |I| = n und A ∈ I×I . F¨ ur die N¨aherung A˜ werden Bl¨ ocke τ × σ ⊂ I × I gesucht, in denen A mit niedrigem Rang approximierbar ist. Eine Suche in P(I × I) ist zu aufw¨andig. Deshalb erfolgt eine hierarchische Zerlegung der Indexmenge I: der Clusterbaum.

Parallele Algorithmen f¨ ur H-Matrizen

H-Matrizen

8/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Clusterb¨aume

R

Seien I eine Indexmenge mit |I| = n und A ∈ I×I . F¨ ur die N¨aherung A˜ werden Bl¨ ocke τ × σ ⊂ I × I gesucht, in denen A mit niedrigem Rang approximierbar ist. Eine Suche in P(I × I) ist zu aufw¨andig. Deshalb erfolgt eine hierarchische Zerlegung der Indexmenge I: der Clusterbaum. Beispiel (bin¨are Raumteilung) Clusterbaum 01234567

Gebiet Ω

0

1

2

3

4

5

Parallele Algorithmen f¨ ur H-Matrizen

6

7

H-Matrizen

8/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Clusterb¨aume

R

Seien I eine Indexmenge mit |I| = n und A ∈ I×I . F¨ ur die N¨aherung A˜ werden Bl¨ ocke τ × σ ⊂ I × I gesucht, in denen A mit niedrigem Rang approximierbar ist. Eine Suche in P(I × I) ist zu aufw¨andig. Deshalb erfolgt eine hierarchische Zerlegung der Indexmenge I: der Clusterbaum. Beispiel (bin¨are Raumteilung) Clusterbaum 01234567 0123

4567

Gebiet Ω

0

1

2

3

4

5

Parallele Algorithmen f¨ ur H-Matrizen

6

7

H-Matrizen

8/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Clusterb¨aume

R

Seien I eine Indexmenge mit |I| = n und A ∈ I×I . F¨ ur die N¨aherung A˜ werden Bl¨ ocke τ × σ ⊂ I × I gesucht, in denen A mit niedrigem Rang approximierbar ist. Eine Suche in P(I × I) ist zu aufw¨andig. Deshalb erfolgt eine hierarchische Zerlegung der Indexmenge I: der Clusterbaum. Beispiel (bin¨are Raumteilung) Clusterbaum 01234567 0123

4567

Gebiet Ω 01 0

1

2

3

4

5

Parallele Algorithmen f¨ ur H-Matrizen

6

23

45

67

7

H-Matrizen

8/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Clusterb¨aume

R

Seien I eine Indexmenge mit |I| = n und A ∈ I×I . F¨ ur die N¨aherung A˜ werden Bl¨ ocke τ × σ ⊂ I × I gesucht, in denen A mit niedrigem Rang approximierbar ist. Eine Suche in P(I × I) ist zu aufw¨andig. Deshalb erfolgt eine hierarchische Zerlegung der Indexmenge I: der Clusterbaum. Beispiel (bin¨are Raumteilung) Clusterbaum 01234567 0123

4567

Gebiet Ω 01 0

1

2

3

4

5

Parallele Algorithmen f¨ ur H-Matrizen

6

7

23

45

67

0 1 2 3 4 5 6 7 H-Matrizen

8/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Blockclusterbaum Durch Multiplikation zweier Clusterb¨aume entsteht der Blockclusterbaum u ¨ber I × I. Anstelle des vollst¨andigen Produktes werden zul¨assige Paare (τ, σ), mit approximierbarem Matrixblock A ∈ τ ×σ , zu Bl¨attern.

R

Standardzul¨assigkeit: min{diam(τ ), diam(σ)} ≤ η dist(τ, σ)

Parallele Algorithmen f¨ ur H-Matrizen

H-Matrizen

9/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Blockclusterbaum Durch Multiplikation zweier Clusterb¨aume entsteht der Blockclusterbaum u ¨ber I × I. Anstelle des vollst¨andigen Produktes werden zul¨assige Paare (τ, σ), mit approximierbarem Matrixblock A ∈ τ ×σ , zu Bl¨attern.

R

Standardzul¨assigkeit: min{diam(τ ), diam(σ)} ≤ η dist(τ, σ) Beispiel Clusterbaum

Blockclusterbaum 0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

Parallele Algorithmen f¨ ur H-Matrizen

0 1 2 3 4 5 6 7

H-Matrizen

I ×I

9/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Blockclusterbaum Durch Multiplikation zweier Clusterb¨aume entsteht der Blockclusterbaum u ¨ber I × I. Anstelle des vollst¨andigen Produktes werden zul¨assige Paare (τ, σ), mit approximierbarem Matrixblock A ∈ τ ×σ , zu Bl¨attern.

R

Standardzul¨assigkeit: min{diam(τ ), diam(σ)} ≤ η dist(τ, σ) Beispiel Clusterbaum

Blockclusterbaum 0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

Parallele Algorithmen f¨ ur H-Matrizen

0 1 2 3 4 5 6 7

I ×I I0 × I0 I0 × I1 I1 × I0 I1 × I1

H-Matrizen

9/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Blockclusterbaum Durch Multiplikation zweier Clusterb¨aume entsteht der Blockclusterbaum u ¨ber I × I. Anstelle des vollst¨andigen Produktes werden zul¨assige Paare (τ, σ), mit approximierbarem Matrixblock A ∈ τ ×σ , zu Bl¨attern.

R

Standardzul¨assigkeit: min{diam(τ ), diam(σ)} ≤ η dist(τ, σ) Beispiel Clusterbaum

Blockclusterbaum 0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

Parallele Algorithmen f¨ ur H-Matrizen

0 1 2 3 4 5 6 7

I ×I I0 × I0 I0 × I1 I1 × I0 I1 × I1 I00 × I10 I00 × I11 I01 × I10 I01 × I11

H-Matrizen

9/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Blockclusterbaum Durch Multiplikation zweier Clusterb¨aume entsteht der Blockclusterbaum u ¨ber I × I. Anstelle des vollst¨andigen Produktes werden zul¨assige Paare (τ, σ), mit approximierbarem Matrixblock A ∈ τ ×σ , zu Bl¨attern.

R

Standardzul¨assigkeit: min{diam(τ ), diam(σ)} ≤ η dist(τ, σ) Beispiel Clusterbaum

Blockclusterbaum 0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

Parallele Algorithmen f¨ ur H-Matrizen

0 1 2 3 4 5 6 7

I ×I I0 × I0 I0 × I1 I1 × I0 I1 × I1 I00 × I10 I00 × I11 I01 × I10 I01 × I11 {2} × {4}

H-Matrizen

{2} × {5}

{3} × {4}

{3} × {5}

9/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Beispiele Partielle Differentialgl. im

Parallele Algorithmen f¨ ur H-Matrizen

R2

Randintegralgleichung im

H-Matrizen

R3

10/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Rank-k-Matrizen Rang-k-Darstellung Niedrigrangmatrizen M ∈ durch A · BT

mit A ∈

Rn×m mit Rang k werden repr¨asentiert

Rn×k und B ∈ Rm×k .

Reduktion des Speicheraufwands von n·m auf k(n + m).

Parallele Algorithmen f¨ ur H-Matrizen

Rank-k-Matrizen

BT A

11/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Rank-k-Matrizen Rang-k-Darstellung Niedrigrangmatrizen M ∈ durch A · BT

mit A ∈

Rn×m mit Rang k werden repr¨asentiert

Rn×k und B ∈ Rm×k .

Reduktion des Speicheraufwands von n·m auf k(n + m).

BT A

Rang-k-Arithmetik Produkt AB T · M mit Matrix M besitzt Rang k. Summe A1 B1T + A2 B2T besitzt im allgemeinen Rang 2k. Daher Approximation der Summe mittels Singul¨arwertzerlegung.

Parallele Algorithmen f¨ ur H-Matrizen

Rank-k-Matrizen

11/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

H-Matrix-Algebra Algorithmen H-Algebra verwendet (rekursive) Algorithmen f¨ ur Blockmatrizen. Auftretende Additionen zwischen Rang-k-Matrizen werden approximativ berechnet. Komplexit¨at Speicher

O (n log n)

Matrix-Vektor-Multiplikation

O (n log n)

Matrix-Addition

O (n log n)

Matrix-Multiplikation

O n log2 n



Matrix-Inversion

O n log2 n



Parallele Algorithmen f¨ ur H-Matrizen

H-Matrix-Algebra

12/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

¨ Uberblick

1 Einf¨ uhrung

2 H-Matrizen

3 Parallele H-Algebra

4 Bemerkungen

Parallele Algorithmen f¨ ur H-Matrizen

13/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Aufbau Parallelisierung interessant z.B. bei Integralgleichungen, da h¨aufig aufw¨andige Quadraturen erforderlich sind. Idee Verteilung der Bl¨atter im Blockclusterbaum da hier die Arbeit erfolgt.

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Aufbau

Bl¨atter:

14/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Aufbau Parallelisierung interessant z.B. bei Integralgleichungen, da h¨aufig aufw¨andige Quadraturen erforderlich sind. Idee Verteilung der Bl¨atter im Blockclusterbaum da hier die Arbeit erfolgt. Lastbalancierung  Mittels LPT bei G¨ ute 34 −

Parallele Algorithmen f¨ ur H-Matrizen

1 3·p



Beispielverteilung:

.

Matrix-Aufbau

14/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Aufbau Parallelisierung interessant z.B. bei Integralgleichungen, da h¨aufig aufw¨andige Quadraturen erforderlich sind. Idee Verteilung der Bl¨atter im Blockclusterbaum da hier die Arbeit erfolgt. Lastbalancierung  Mittels LPT bei G¨ ute 34 −

1 3·p



Beispielverteilung:

.

Resultat   n Aufwand ohne Hierarchie: O n log p   n log n Aufwand mit Hierarchie: O + n p

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Aufbau

14/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Aufbau Parallelisierung interessant z.B. bei Integralgleichungen, da h¨aufig aufw¨andige Quadraturen erforderlich sind. Idee Verteilung der Bl¨atter im Blockclusterbaum da hier die Arbeit erfolgt. Lastbalancierung  Mittels LPT bei G¨ ute 34 −

1 3·p



Stufenweise Verteilung:

.

Resultat   n Aufwand ohne Hierarchie: O n log p   n log n Aufwand mit Hierarchie: O + n p Stufenweise Verteilung reduziert Komplexit¨at und erh¨oht Lokalit¨at. Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Aufbau

14/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Aufbau f¨ur Einfachschichtpotential

S=p n = 43680 n = 89400 n = 184040

30

Speedup

25

20

15

10

5

5

10

15

20

25

30

Anzahl der Prozessoren Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Aufbau

15/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation Ausgangssituation Mit H-Matrix A und x, y ∈

Rn sei zu berechnen: xi

A·x=y Datenverteilung Vektoren xi , yi enthalten n/p Elemente von x bzw. y.

Ai

Ai enthalte Matrixbl¨ocke von A auf Prozessor i.

Parallele Algorithmen f¨ ur H-Matrizen

yi

Matrix-Vektor-Multiplikation

16/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation Ausgangssituation Mit H-Matrix A und x, y ∈

Rn sei zu berechnen: xi

A·x=y

x0

Datenverteilung Vektoren xi , yi enthalten n/p Elemente von x bzw. y.

y0

Ai enthalte Matrixbl¨ocke von A auf Prozessor i. Algorithmus 1 Sende xi an alle Prozessoren. 2 Berechne lokal Ai x0 = y 0 . 3 Sende y 0 und summiere yi .

Ai

yi

O (dsh · n/p) O ((n log n)/p) O (|y 0 | + dsh · n/p)

Teilungsgrad dsh : Anzahl von Prozessoren pro Index. Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Vektor-Multiplikation

16/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Verteilung der Matrix Beispielverteilungen

LPT

Stufenweises LPT

Problem unstiger Verteilung von A ist dsh ∼ O (p) und somit der Bei ung¨ Aufwand   n log n O +n p

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Vektor-Multiplikation

17/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Verteilung der Matrix Beispielverteilungen

LPT

Stufenweises LPT

Problem unstiger Verteilung von A ist dsh ∼ O (p) und somit der Bei ung¨ Aufwand   n log n O +n p Gesucht ist kompakte Verteilung von A, so dass dsh ∼ O (1). Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Vektor-Multiplikation

17/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Lastbalancierung mit raumf¨ullenden Kurven Hilbertkurve im

R2

Rekursive Konstruktion entspricht Blockclusterbaum u ¨ber bin¨arem Clusterbaum.

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Vektor-Multiplikation

18/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Lastbalancierung mit raumf¨ullenden Kurven Hilbertkurve im

R2

Rekursive Konstruktion entspricht Blockclusterbaum u ¨ber bin¨arem Clusterbaum. Lastbalancierung 1

Anordnung der Matrixbl¨ ocke mittels raumf¨ ullender Kurve.

2

Sequenzpartitionierung der so definierten Liste.

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Vektor-Multiplikation

18/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation mit raumf¨ullenden Kurven 80

LPT Hilbertkurve

70

Teilungsgrad

60 50 40 30 20 10 20

40

60

80

100

120

Anzahl der Prozessoren

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Vektor-Multiplikation

19/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation mit raumf¨ullenden Kurven 18

Hilbert-Kurve 1.343 √ p

16

Teilungsgrad

14 12 10 8 6 4 2 20

40

60

80

100

120

Anzahl der Prozessoren

Bei Verwendung von raumf¨ ullenden Kurven ergibt sich Aufwand   n log n n O + √ +n p p Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Vektor-Multiplikation

19/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation f¨ur Einfachschichtpotential

S=p n = 43680 n = 89400 n = 184040

30

Speedup

25 20 15 10 5

5

10

15

20

25

30

Anzahl der Prozessoren Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Vektor-Multiplikation

20/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Multiplikation Situation Berechnung von       A00 A01 B00 B01 C00 C01 · = A10 A11 B10 B11 C10 C11 auf Rechnersystem mit gemeinsamem Speicher Erster Ansatz Lastbalancierung auf Menge der Einzelmultiplikationen {C00 = A00 B00 , C00 = A01 B10 , C01 = A00 B01 , · · · , C11 = A11 B11 }

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Multiplikation

21/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Multiplikation Situation Berechnung von       A00 A01 B00 B01 C00 C01 · = A10 A11 B10 B11 C10 C11 auf Rechnersystem mit gemeinsamem Speicher Erster Ansatz Lastbalancierung auf Menge der Einzelmultiplikationen {C00 = A00 B00 , C00 = A01 B10 , C01 = A00 B01 , · · · , C11 = A11 B11 }

Problem Mehrere Multiplikationen haben gleiche Zielmatrix. Dadurch Gefahr von Kollisionen. Verwendung von Semaphoren reduziert aber parallele Effizienz. Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Multiplikation

21/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Multiplikation Reduktion der Kollisionen Identifikation von Multiplikationen mit gleicher Zielmatrix C

A

B

=

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Multiplikation

22/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Multiplikation Reduktion der Kollisionen Identifikation von Multiplikationen mit gleicher Zielmatrix C

A

B

=

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Multiplikation

22/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Multiplikation Reduktion der Kollisionen Identifikation von Multiplikationen mit gleicher Zielmatrix C

A

B

=

Lastbalancierung auf Menge der Zielmatrixbl¨ ocke.

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Multiplikation

22/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Multiplikation Reduktion der Kollisionen Identifikation von Multiplikationen mit gleicher Zielmatrix C

A

B

=

Lastbalancierung auf Menge der Zielmatrixbl¨ ocke. Schedulingvarianten Online-Scheduling: schnelles Verfahren aber nur G¨ ute 2 − p1 . Offline-Scheduling: Kostenbestimmung sehr aufw¨andig Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Multiplikation

22/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Multiplikation f¨ur Einfachschichtpotential

S=p n = 7920 n = 19320 n = 43680 n = 89400

30

Speedup

25

20

15

10

5

5

10

15

20

25

30

Anzahl der Prozessoren Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Multiplikation

23/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Inversion Algorithmus Sequentielle Gauß-Elimination f¨ ur 

A00 A10

A01 A11



 f¨ uhrt zu

−1 −1 A−1 A10 A−1 00 + A00 A01 S 00 −1 −1 −S A10 A00

 −1 −A−1 00 A01 S , S −1

S = A11 − A10 A−1 00 A01 ,

mit rekursivem Aufruf f¨ ur A00 und A11 bzw. S und MatrixMultiplikationen.

Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Inversion

24/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Inversion Algorithmus Sequentielle Gauß-Elimination f¨ ur 

A00 A10

A01 A11



 f¨ uhrt zu

−1 −1 A−1 A10 A−1 00 + A00 A01 S 00 −1 −1 −S A10 A00

 −1 −A−1 00 A01 S , S −1

S = A11 − A10 A−1 00 A01 ,

mit rekursivem Aufruf f¨ ur A00 und A11 bzw. S und MatrixMultiplikationen. Parallelisierungsansatz Benutze parallele Multiplikation (Online- oder Offline-Scheduling). Diagonale wird strikt sequentiell behandelt. Komplexit¨at der Inversion hierdurch:   n log2 n O +n p Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Inversion

24/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Matrix-Inversion f¨ur Laplace-Gleichung im

S=p n = 4096 n = 32768 n = 262144

30

25

Speedup

R

Bemerkungen

3

20

15

10

5

5

10

15

20

25

30

Anzahl der Prozessoren Parallele Algorithmen f¨ ur H-Matrizen

Matrix-Inversion

25/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

¨ Uberblick

1 Einf¨ uhrung

2 H-Matrizen

3 Parallele H-Algebra

4 Bemerkungen

Parallele Algorithmen f¨ ur H-Matrizen

26/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Gebietszerlegung F¨ ur partielle Differentialgleichungen bietet sich die Technik der Gebietszerlegung an: Gebiet

Matrix 

Ω0

Ω1 Σ

Ω2

Ω3

A00 A11

  A=  

A22 AΣ,0

AΣ,1

AΣ,2

A33 AΣ,3

 A0,Σ A1,Σ   A2,Σ   A3,Σ  AΣ,Σ

Bei Inversion lassen sich Aii , AΣ,i und Ai,Σ parallel behandeln. P −1 Dabei tritt Schurkomplement AΣ,Σ − p−1 i=0 AΣ,i Aii Ai,Σ auf.

R

Mit H-Matrix-Arithmetik ergibt sich im d Aufwand:   1 1 n 2 n 1− log + p d n d log p log n O p p Parallele Algorithmen f¨ ur H-Matrizen

Gebietszerlegung

27/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Einfluss der Speicherverwaltung ur H-Multiplikation (10 GB Speicher) Parallele Laufzeit f¨ p SUNmalloc MTmalloc PTmalloc

1 15305.2 s 34244.0 s 185079.4 s

4 4210.3 s 3635.6 s 9360.6 s

8 3201.4 s 1858.4 s 3404.9 s

16 3536.1 s 967.2 s 1689.2 s

Sequentielle Laufzeit f¨ ur H-Inversion (5 GB Speicher) n SUNmalloc MTmalloc PTmalloc

Parallele Algorithmen f¨ ur H-Matrizen

4096 13.0 s 13.0 s 12.9 s

16384 115.8 s 117.8 s 122.4 s

65536 818.0 s 924.6 s 1268.9 s

Speicherverwaltung

262144 5257.6 s 8488.3 s 30556.7 s

28/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Einfluss der Speicherverwaltung ur H-Multiplikation (10 GB Speicher) Parallele Laufzeit f¨ p SUNmalloc MTmalloc PTmalloc Rmalloc

1 15305.2 34244.0 185079.4 15111.9

s s s s

4 4210.3 3635.6 9360.6 3649.5

s s s s

8 3201.4 1858.4 3404.9 1853.9

s s s s

16 3536.1 967.2 1689.2 954.7

s s s s

Sequentielle Laufzeit f¨ ur H-Inversion (5 GB Speicher) n SUNmalloc MTmalloc PTmalloc Rmalloc Parallele Algorithmen f¨ ur H-Matrizen

4096 13.0 s 13.0 s 12.9 s 12.9 s

16384 115.8 s 117.8 s 122.4 s 114.8 s

65536 818.0 s 924.6 s 1268.9 s 800.7 s

Speicherverwaltung

262144 5257.6 s 8488.3 s 30556.7 s 5003.5 s 28/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

PHI – Parallele H-Matrix Implementierung Implementierung der parallelen H-MatrixAlgorithmen f¨ ur Systeme mit gemeinsamem und verteiltem Speicher. Verwendung von POSIX-Threads bzw. BSPBibliothek zur Parallelisierung. utzung verschiedener Rechnerarchitekturen: Unterst¨ x86, UltraSparc, Alpha, POWER, Itanium, PA-RISC, MIPS und Betriebssysteme: Linux, Solaris, AIX, HP-UX, IRIX, Darwin, Tru64. Verf¨ ugbar unter http://www.mis.mpg.de/scicomp/ Parallele Algorithmen f¨ ur H-Matrizen

libPHI

29/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Zusatz 1

Rang-k-Teilung

2

Rmalloc

Parallele Algorithmen f¨ ur H-Matrizen

libPHI

30/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation mit Rang-k-Teilung Problem Kommunikation dominiert durch große Bl¨ ocke der Dimension O (n) da Matrixbl¨ocke atomare Einheiten der Lastbalancierung bilden. 0

1 BT

0

A

1

Parallele Algorithmen f¨ ur H-Matrizen

libPHI

31/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation mit Rang-k-Teilung Problem Kommunikation dominiert durch große Bl¨ ocke der Dimension O (n) da Matrixbl¨ocke atomare Einheiten der Lastbalancierung bilden. 0

1

t

BT

BT

0

A

A

1 : t = B T x1 0 : y0 = At

1

Alternative Aufteilung der Multiplikation y = AB T x bei Niedrigrangmatrizen in t = B T x und y = At. Kommunikation somit anstelle von O (n) nur noch O (k). Parallele Algorithmen f¨ ur H-Matrizen

libPHI

31/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation mit Rang-k-Teilung Aufteilung der H-Matrix Zerlegung in Blockspalten und -zeilen jeweils der Dimension O (n/p). F¨ ur Matrizen R = AB T Zuweisung der Matrix B zu Blockspalte bzw. A zu Blockzeile:

Algorithmus Multiplikation von ti = B T xi f¨ ur alle Rang-kMatrizen. 2 Senden von ti an entsprechende Prozessoren. 3 Multiplikation von yi = Ati .

1

Parallele Algorithmen f¨ ur H-Matrizen

libPHI

32/ 29

Einf¨ uhrung

H-Matrizen

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation mit Rang-k-Teilung Aufteilung der H-Matrix Zerlegung in Blockspalten und -zeilen jeweils der Dimension O (n/p). F¨ ur Matrizen R = AB T Zuweisung der Matrix B zu Blockspalte bzw. A zu Blockzeile:

Algorithmus

Komplexit¨at T

Multiplikation von ti = B xi f¨ ur alle Rang-kMatrizen. 2 Senden von ti an entsprechende Prozessoren. 3 Multiplikation von yi = Ati .

1

Parallele Algorithmen f¨ ur H-Matrizen

libPHI

 O

n log n n + p p



32/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Matrix-Vektor-Multiplikation f¨ur Einfachschichtpotential

S=p n = 89400 (Block) n = 184040 (Block) n = 89400 (Rk) n = 184040 (Rk)

30

Speedup

25

20

15

10

5

5

10

15

20

25

30

Anzahl der Prozessoren Parallele Algorithmen f¨ ur H-Matrizen

libPHI

33/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Rmalloc Eigenschaften 1

Jeder Prozessor besitzt eigene Speicherverwaltung: • gr¨ oßtes Mass an Parallelit¨at, • Vermeidung von False-Sharing.

Parallele Algorithmen f¨ ur H-Matrizen

libPHI

34/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Rmalloc Eigenschaften 1

Jeder Prozessor besitzt eigene Speicherverwaltung: • gr¨ oßtes Mass an Parallelit¨at, • Vermeidung von False-Sharing.

2

Jeder Speicherblock ist an einen Prozessor gekoppelt: • Vermeidung von unbeschr¨ anktem Speicherverbrauch.

Parallele Algorithmen f¨ ur H-Matrizen

libPHI

34/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Rmalloc Eigenschaften 1

Jeder Prozessor besitzt eigene Speicherverwaltung: • gr¨ oßtes Mass an Parallelit¨at, • Vermeidung von False-Sharing.

2

Jeder Speicherblock ist an einen Prozessor gekoppelt: • Vermeidung von unbeschr¨ anktem Speicherverbrauch.

3

Klassifizierung von Speichergr¨ oßen durch exponentielle Folge: • schnelle Suche nach freien Speicherbl¨ ocken

Parallele Algorithmen f¨ ur H-Matrizen

libPHI

34/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Rmalloc Eigenschaften 1

Jeder Prozessor besitzt eigene Speicherverwaltung: • gr¨ oßtes Mass an Parallelit¨at, • Vermeidung von False-Sharing.

2

Jeder Speicherblock ist an einen Prozessor gekoppelt: • Vermeidung von unbeschr¨ anktem Speicherverbrauch.

3

Klassifizierung von Speichergr¨ oßen durch exponentielle Folge: • schnelle Suche nach freien Speicherbl¨ ocken

4

Spezielle Verwaltung kleiner Bl¨ ocke mittels Kontainertechnik: • Zugriff in O (1), • Reduktion des Speicheroverheads.

Parallele Algorithmen f¨ ur H-Matrizen

libPHI

34/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Rmalloc Eigenschaften 1

Jeder Prozessor besitzt eigene Speicherverwaltung: • gr¨ oßtes Mass an Parallelit¨at, • Vermeidung von False-Sharing.

2

Jeder Speicherblock ist an einen Prozessor gekoppelt: • Vermeidung von unbeschr¨ anktem Speicherverbrauch.

3

Klassifizierung von Speichergr¨ oßen durch exponentielle Folge: • schnelle Suche nach freien Speicherbl¨ ocken

4

Spezielle Verwaltung kleiner Bl¨ ocke mittels Kontainertechnik: • Zugriff in O (1), • Reduktion des Speicheroverheads.

5

Dynamische Pr¨aallokation von Speicher: • Reduktion von teuren Systemaufrufen.

Parallele Algorithmen f¨ ur H-Matrizen

libPHI

34/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Fragmentierung H-Multiplikation Rmalloc LKmalloc PTmalloc Hoard Sun MTmalloc

Fragmentierungsgrad

1.8

1.6

1.4

1.2

1.0 2

4

6

8

10

12

14

16

Anzahl der Prozessoren Parallele Algorithmen f¨ ur H-Matrizen

libPHI

35/ 29

H-Matrizen

Einf¨ uhrung

Parallele H-Algebra

Bemerkungen

Fragmentierung H-Inversion Rmalloc LKmalloc PTmalloc Hoard Sun MTmalloc

Fragmentierungsgrad

1.6 1.5 1.4 1.3 1.2 1.1 1.0 2

4

6

8

10

12

14

16

Anzahl der Prozessoren Parallele Algorithmen f¨ ur H-Matrizen

libPHI

35/ 29