21
SPARSE DIRECT METHODS Building blocks for sparse direct solvers SPD case. Sparse Column Cholesky/ Elimination Trees - Symbolic factorization

SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

SPARSE DIRECT METHODS

• Building blocks for sparse direct solvers

• SPD case. Sparse Column Cholesky/

• Elimination Trees - Symbolic factorization

Page 2: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Direct Sparse Matrix Methods

Problem addressed: Linear systems

Ax = b

ä We will consider mostly Cholesky –

ä We will consider some implementation details and tricks used todevelop efficient solvers

Basic principles:

• Separate computation of structure from rest [symbolic factoriza-tion]

• Do as much work as possible statically

• Take advantage of clique formation (supernodes, mass-elimination).8-2 Davis: Chap. 4 – Direct

Page 3: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Sparse Column Cholesky

For j = 1, . . . , n Do:l(j : n, j) = a(j : n, j)For k = 1, . . . , j − 1 Do:

// cmod(k,j):lj:n,j := lj:n,j − lj,k ∗ lj:n,k

EndDo// cdiv (j) [Scale]lj,j =

√lj,j

lj+1:n,j := lj+1:n,j/ljjEndDo

L

L1

T

1

2L

A

8-3 Davis: Chap. 4 – Direct

Page 4: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

The four essential stages of a solve

1. Reordering: A −→ A := PAP T

ä Preprocessing: uses graph [Min. deg, AMD, Nested Dissection]

2. Symbolic Factorization: Build static data structure.

ä Exploits ’elimination tree’, uses graph only.

ä Also: ’supernodes’

3. Numerical Factorization: Actual factorization A = LLT

ä Pattern of L is known. Uses static data structure. Exploitssupernodes (blas3)

4. Triangular solves: Solve Ly = b then LTx = y

8-4 Davis: Chap. 4 – Direct

Page 5: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

ELIMINATION TREES

Page 6: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

The notion of elimination tree

ä Elimination trees are useful in many different ways [theory, sym-bolic factorization, etc..]

ä For a matrix whose graph is a tree, parent of column j < n isdefined by

Parent(j) = i, where aij 6= 0 and i >j

ä For a general matrix matrix, consider A = LLT , and GF =‘filled’ graph = graph of L + LT . Then

Parent(j) = min(i) s.t. aij 6= 0 and i>j

ä Defines a tree rooted at column n (Elimintion tree).

8-6 Davis: Chap. 4 – Direct

Page 7: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Example: Original matrix and Graph

1 ? ? ?? 2 ?

3 ? ?4 ? ?

? ? 5 ?? ? 6

? 7 ?? ? ? ? 8

1

2

6

4 7

8

5

3

8-7 Davis: Chap. 4 – Direct

Page 8: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Filled matrix+graph

1 ? ? ?? 2 ?

3 ? ?4 ? ?

? ? 5 ?? ? 6

? 7 ?? ? ? ? 8

1

2

6

4 7

8

5

3

8-8 Davis: Chap. 4 – Direct

Page 9: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Corresponding Elimination Tree

1

2

6

4 7

8

5

3

−→

8

7

6

45

3

1

2

ä Parent(i) = ’first nonzero entry in L(i+1:n,i)’

ä Parent(i) = min {j > i | j ∈ AdjGF(i)}

8-9 Davis: Chap. 4 – Direct

Page 10: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Where does the elimination tree come from?

ä Answer in the form of an excercise.

Consider the elimination steps for theprevious example. A directed edgemeans a row (column) modification. Itshows the task dependencies. There areunnecessary dependencies. For example:1 → 5 can be removed because it issubsumed by the path 1→ 2→ 5.

1

2

6

4 7

8

5

3

1

1

2

2 3

3

1

4

6

5

1

4

7

5

6

To do: Remove all the redundant dependencies.. What is theresult?

8-10 Davis: Chap. 4 – Direct

Page 11: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Facts about elimination trees

ä Elimination Tree defines dependencies between columns.

ä The root of a subtree cannot be used as pivot before any of itsdescendents is processed.

ä Elimination tree depends on ordering;

ä Can be used to define ‘parallel’ tasks.

ä For parallelism: flat and wide trees→ good; thin and tall (e.g.of tridiagonal systems)→ Bad.

ä For parallel executions, Nested Dissection gives better trees thanMinimun Degree ordering.

8-11 Davis: Chap. 4 – Direct

Page 12: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Elim. tree depends on ordering (Not just the graph)

Example: 3× 3 grid for 5-point stencil [natural ordering]

����

����

����

����

����

����

����

����

����

����

����

����

����

����

����

����

����

����

31

7 98

2

5 64

+++++++

+ +++++++

+++++++

+++++

+++++

+++++++

+ +++++++

+++++++

+++++

+++++

9

8

7

6

5

4

3

2

1

9

8

7

6

5

4

3

2

1

8-12 Davis: Chap. 4 – Direct

Page 13: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

ä Same example with nested dissection ordering

����

����

����

����

����

����

����

����

����

,,,,

@@@

SSS

���

AAA

���

++

++

+

+

+

++

+

++

++

+

+

+ +++

++

++

++

++

++

++

+

9

8

7

65

43

21

1

9

8

7

5 6

3 2 4

8-13 Davis: Chap. 4 – Direct

Page 14: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Properties

ä The elimination tree is a spanning tree of the filled graph [a treecontaining all vertices] - obtained by removing edges.

ä If lik 6= 0 then i is anancestor of k in the tree- In the previous exam-ple: follow the creation ofthe fill-in (6,8).

k

parent(k)

i

parent (k)

parent (k) 3

2

In particular: if aik 6= 0, k < i then i k

ä Consequence: no fill-in between branches of the same subtree

8-14 Davis: Chap. 4 – Direct

Page 15: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Elimination trees and the pattern of L

ä It is easy to determine the sparsity pattern of L because thepattern of a given column is “inherited” by the ancestors in the tree.

Theorem: For i > j, lij 6=0 iff j is an ancestor of somek ∈ AdjA(i) in the elimina-tion tree.

k

parent(k)

i

parent (k)

parent (k) 3

2

j

j

In other words:

lij 6= 0, i > j iff∃k ∈ AdjA(i)s.t.j k

Page 16: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

In theory: To construct thepattern of L, go up thetree and accumulate thepatterns of the columns.Initially L has the samepattern as TRIL(A).

8

7

6

45

3

1

2

nz(L:5) := nz(L:5)

U U nz(L:3)

nz(L:2)

ä However: Let us assume tree is not available ahead of time

ä Solution: Parents can be obtained dynamically as the pattern isbeing built.

ä This is the basis of symbolic factorization.

8-16 Davis: Chap. 4 – Direct

Page 17: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Notation :

ä nz(X) is the pattern of X (matrix or column, or row). A setof pairs (i, j)

ä tril(X) = Lower triangular part of pattern [matlab notation]{(i, j) ∈ X |i > j}

ä Idea: dynamically create the list of nodes needed to update L:,j.

8-17 Davis: Chap. 4 – Direct

Page 18: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

ALGORITHM : 1 Symbolic factorization

1. Set: nz(L) = tril(nz(A)),2. Set: list(j) = ∅, j = 1, · · · , n3. For j = 1 : n4. for k ∈ list(j) do5. nz(L:,j) := nz(L:,j) ∪ nz(L:,k)6. end7. p = min{i > j | Li,j 6= 0}8. list(p) := list(p) ∪ {j}9. End

8-18 Davis: Chap. 4 – Direct

Page 19: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

Example: Considerthe earlier example:

1

2

6

4 7

8

5

3

1

2

6

4 7

8

5

3List={1}

List=empty

L={2,5,8},p=21

2

6

4 7

8

5

3

List={2}

List={1} L={5,6,8}p = 5

L: = {2,5,8} p= 2

List= empty

Page 20: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

List=empty

L={5,8}

p={5}

1

2

6

4 7

8

5

3

List={2,3}

L={5,6,8}p = 5

List= emptyL = {2,5,8} , p = 2

List = {1}

List=empty

L={6,7}

p=6

1

2

6

4 7

8

5

3

L={5,6,8}

p = 5

List={2,3}

List={4}

List=emptyL={5,8},p=5

List= emptyL={2,6,8} , p = 2

List={1}

Page 21: SPARSE DIRECT METHODSDirect Sparse Matrix Methods Problem addressed: Linear systems Ax = b ä We will consider mostly Cholesky { ä We will consider some implementation details and

1

2

6

4 7

8

5

3

L={5,6,8}

List=empty

L:={5,8}

p=5p = 5

List={4,5}

List={2,3},L={6,8}, p=6

L={6,7}

List=empty

List= emptyL={2,5,8} , p = 2

List={1}

p = 6

1

2

6

4 7

8

5

3

L={6,7}

L={5,6,8}p = 5

List=empty

p = 6

List={4,5}

L={7,8}

p=7 List={6}

List= empty

List={1}

L={2,5,8} , p = 2List={2,3},L={6,8},p=6

List=emptyL:={5,8}p=5

8-21 Davis: Chap. 4 – Direct