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