A Sup erno dal Approach to Sparse Partial Pivoting

 y z

James W. Demmel Stanley C. Eisenstat John R. Gilb ert

 x

XiaoyeS.Li Joseph W. H. Liu

July 10, 1995

Abstract

Weinvestigate several ways to improve the p erformance of sparse LU factorization with partial

pivoting, as used to solve unsymmetric linear systems. To p erform most of the numerical

computation in dense kernels, weintro duce the notion of unsymmetric sup erno des. To

b etter exploit the memory hierarchy,weintro duce unsymmetric sup erno de-panel up dates and

two-dimensional data partitioning. To sp eed up symb olic factorization, we use Gilb ert and

Peierls's depth- rst search with Eisenstat and Liu's symmetric structural reductions. Wehave

implemented a sparse LU co de using all these ideas. We present exp eriments demonstrating

that it is signi cantly faster than earlier partial pivoting co des. We also compare p erformance

with Umfpack , which uses a multifrontal approach; our co de is usually faster.

Keywords: ; unsymmetric linear systems; sup erno des; column elimi-

nation tree; partial pivoting.

AMSMOS sub ject classi cations: 65F05, 65F50.

Computing Reviews descriptors: G.1.3 [Numerical Analysis]:

| Linear systems direct and iterative methods, Sparse and very large systems.



Computer Science Division, University of California, Berkeley, CA 94720 fdemmel,[email protected] erkel ey.edu.

The research of these authors was supp orted in part by NSF grant ASC{9313958, DOE grant DE{FG03{94ER25219,

UT Sub contract No. ORA4466 from ARPA Contract No. DAAL03{91{C0047, DOE grant DE{FG03{94ER25206,

and NSF Infrastructure grants CDA{8722788 and CDA{9401156.

y

Department of Computer Science, Yale University, P.O. Box 208285, New Haven, CT 06520-8285

[email protected]. The research of this author was supp orted in part by NSF grant CCR-9400921.

z

XeroxPalo Alto Research Center, 3333 Coyote Hill Road, Palo Alto, California 94304 gilb [email protected]. The

research of this author was supp orted in part by the Institute for Mathematics and Its Application s at the University

c

of Minnesota. Copyright 1994, 1995 by Xerox Corp oration. All rights reserved.

x

Department of Computer Science, York University, North York, Ontario, Canada M3J 1P3 [email protected].

The research of this author was supp orted in part by the Natural Sciences and Engineering Research Council of

Canada under grant A5509. 1

for column j =1 to n do

f = A: ;j;

Symb olic factor: determine which columns of L will up date f ;

for each up dating column r

Col-col up date: f = f f r   L: ;r;

end for;

Pivot: interchange f j  and f k , where jf k j = max jf j : nj;

Separate L and U : U 1: j; j = f1: j ; Lj : n; j = fj:n;

Divide: L: ;j= L: ;j=Lj; j ;

Prune symb olic structure based on column j ;

end for;

Figure 1: LU factorization with column-column up dates.

1 Intro duction

The problem of solving sparse symmetric p ositive de nite systems of linear equations on sequential

and vector pro cessors is fairly well understo o d. Normally, the solution pro cess is broken into two

phases:

 First, symb olic factorization to determine the nonzero structure of the Cholesky factor;

 Second, numeric factorization and solution.

Elimination trees [24] and compressed subscripts [30] reduce the time and space for symb olic

factorization to a low-order term. Sup erno dal [5] and multifrontal [11] elimination allow the use of

dense vector op erations for nearly all of the oating-p oint computation, thus reducing the symb olic

overhead in numeric factorization to a low-order term. Overall, the mega op rates of mo dern sparse

Cholesky co des are nearly comparable to those of dense solvers [26].

For unsymmetric systems, where pivoting is required to maintain , progress

has b een less satisfactory. Recent research has concentrated on two basic approaches: submatrix-

based metho ds and column-based or row-based metho ds. Submatrix metho ds typically use some

form of Markowitz pivoting, in which each stage's pivot elementischosen from the uneliminated

submatrix by criteria that attempt to balance numerical quality and preservation of sparsity. Recent

submatrix co des include Ma48 from the Harwell subroutine library [10], and Davis and Du 's

unsymmetric multifrontalcode Umfpack [6].

1

Column metho ds, by contrast, typically use ordinary partial pivoting. The pivot is chosen from

the current column according to numerical considerations alone; the columns may b e preordered

b efore factorization to preserve sparsity. Figure 1 sketches a generic left-lo oking column LU fac-

torization. Notice that the bulk of the numeric computation o ccurs in column-column up dates, or,

to use Blas terminology [8], in sparse Axpy s.

Column metho ds have the advantage that the preordering for sparsity is completely separate

from the factorization, just as in the symmetric case. However, symb olic factorization cannot b e

1

Row metho ds are exactly analogous to column metho ds, and co des of b oth sorts exist. We will use column

terminology; those who prefer rows mayinterchange the terms throughout the pap er. 2

separated from numeric factorization, b ecause the nonzero structures of the factors dep end on the

numerical pivoting choices. Thus column co des must do some symb olic factorization at each stage;

typically this amounts to predicting the structure of each column of the factors immediately b efore

computing it. George and Ng [14,15] describ ed ways to obtain upp er b ounds on the structure of

the factors based only on the nonzero structure of the original matrix.

An early example of such a co de is Sherman's Nspiv [31] which is actually a row co de.

Gilb ert and Peierls [20] showed how to use depth- rst search and top ological ordering to get the

structure of each factor column. This gives a column co de that runs in total time prop ortional to

the numb er of nonzero oating-p oint op erations, unlike the other partial pivoting co des. Eisenstat

and Liu [13] designed a pruning technique to reduce the amount of structural information required

for the symb olic factorization, as we describ e further in Section 4. The result was that the time

and space for symb olic factorization were in practice reduced to a low order term.

In view of the success of sup erno dal techniques for symmetric matrices, it is natural to con-

sider the use of sup erno des to enhance the p erformance of unsymmetric solvers. One dicultyis

that, unlike the symmetric case, sup erno dal structure cannot b e determined in advance but rather

emerges dep ending on pivoting choices during the factorization.

In this pap er, we generalize sup erno des to unsymmetric matrices, and we give ecient algo-

rithms for lo cating and using unsymmetric sup erno des during a column-based LU factorization. We

describ e a new co de called SuperLU that uses depth- rst search and symmetric pruning to sp eed

up symb olic factorization, and uses unsymmetric sup erno des to sp eed up numeric factorization.

The rest of the pap er is organized as follows. Section 2 intro duces the to ols we use: unsymmetric

sup erno des, panels, and the column elimination tree. Section 3 describ es the sup erno dal numeric

factorization. Section 4 describ es the sup erno dal symb olic factorization. In Section 5, we present

exp erimental results: we b enchmark our co de on several test matrices, we compare its p erformance

to other column and submatrix co des, and weinvestigate its cache b ehavior in some detail. Finally,

Section 6 presents conclusions and op en questions.

2 Unsymmetric sup erno des

The idea of a sup erno de is to group together columns with the same nonzero structure, so they

can b e treated as a dense matrix for storage and computation. Sup erno des were originally used

for symmetric sparse Cholesky factorization; the rst published results are by Ashcraft, Grimes,

T

Lewis, Peyton, and Simon [5]. In the factorization A = LL , a sup erno de is a range r : sof

columns of L with the same nonzero structure b elow the diagonal; that is, Lr : s; r : s is full lower

2

triangular and every rowofLs:n; r : s is either full or zero. Columns of Cholesky sup erno des

need not b e contiguous, but we will consider only contiguous sup erno des.

Ng and Peyton [26] analyzed the e ect of sup erno des in Cholesky factorization on mo dern

unipro cessor machines with memory hierarchies and vector or sup erscalar hardware. All the up dates

from columns of a sup erno de are summed into a dense vector b efore the sparse up date is p erformed.

This reduces indirect addressing, and allows the inner lo ops to b e unrolled. In e ect, a sequence

of column-column up dates is replaced by a sup erno de-column up date. The sup-col up date can b e

implemented using a call to a standard dense Blas-2 matrix-vector multiplication kernel. This

idea can b e further extended to sup erno de-sup erno de up dates, which can b e implemented using

a Blas-3 dense matrix-matrix kernel. This can reduce memory trac by an order of magnitude,

2

We use Matlab notation for integer ranges and submatrices: r : s or r : s is the vector of integers r;r +1;:::; s.

If I and J are vectors of integers, then AI; J  is the submatrix of A with rows whose indices are from I and with

columns whose indices are from J . A:;J abbreviates A1 : n; J . nnz A denotes the numb er of nonzeros in A. 3 T1 T2 T3 T4

Columns have same structure Rows have same structure Dense

Figure 2: Four p ossible typ es of unsymmetric sup erno des.

b ecause a sup erno de in the cache can participate in multiple column up dates. Ng and Peyton

rep orted that a sparse Cholesky based on sup-sup up dates typically runs 2.5 to 4.5 times

as fast as a col-col algorithm. Indeed, sup erno des have b ecome a standard to ol in sparse Cholesky

factorization [5, 26, 27, 32].

To sum up, sup erno des as the source of up dates help b ecause:

1. The inner lo op over rows has no indirect addressing. Sparse Blas-1 is replaced by dense

Blas-1.

2. The outer lo op over columns in the sup erno de can b e unrolled to save memory references.

Blas-1 is replaced by Blas-2.

Sup erno des as the destination of up dates help b ecause:

3. Elements of the source sup erno de can b e reused in multiple columns of the destination sup er-

no de to reduce cache misses. Blas-2 is replaced by Blas-3.

Sup erno des in sparse Cholesky can b e determined during symb olic factorization, b efore the

numeric factorization b egins. However, in sparse LU, the nonzero structure cannot b e predicted

b efore numeric factorization, so wemust identify sup erno des on the y.Furthermore, since the

factors L and U are no longer transp oses of each other, wemust generalize the de nition of a

sup erno de.

2.1 De nition of unsymmetric sup erno des

We considered several p ossible ways to generalize the symmetric de nition of sup erno des to un-

symmetric factorization. We de ne F = L + U I to b e the l led matrix containing b oth L

and U .

T1. Same row and column structures: A sup erno de is a range r : s of columns of L and rows

of U , such that the diagonal blo ck F r : s; r : s is full, and outside that blo ck all the columns

of L in the range have the same structure and all the rows of U in the range have the same

structure. T1 sup erno des make it p ossible to do sup-sup up dates, realizing all three b ene ts. 4

T1 T2 T3 T4

median 0.236 0.345 0.326 0.006

0.284 0.365 0.342 0.052 mean

Table 1: Fraction of nonzeros not in rst column of sup erno de.

T2. Same column structure in L: A sup erno de is a range r : s of columns of L with full triangular

diagonal blo ck and the same structure b elow the diagonal blo ck. T2 sup erno des allow sup-col

up dates, realizing the rst two b ene ts.

T3. Same column structure in L, full diagonal blo ckin U: A sup erno de is a range r : s of columns

of L and U , such that the diagonal blo ck F r : s; r : s is full, and b elow the diagonal blo ck

the columns of L have the same structure. T3 sup erno des allow sup-col up dates, like T2. In

addition, if the storage for a sup erno de is laid out as for a two-dimensional array for Blas-2

or Blas-3 calls, T3 sup erno des do not waste any space in the diagonal blo ckofU.

T4. Same column structure in L and U : A sup erno de is a range r : s of columns of L and U

with identical structure. Since the diagonal is nonzero, the diagonal blo ckmust b e full.

T4 sup erno des allow sup-col up dates, and also simplify storage of L and U .

T

T5. Sup erno des of A A: A sup erno de is a range r : s of columns of L corresp onding to a Cholesky

T

sup erno de of the A A. T5 sup erno des are motivated by George and

Ng's observation [14] that with suitable representations the structures of L and U in the

unsymmetric factorization PA = LU are contained in the structure of the Cholesky factor

T

of A A. In unsymmetric LU, these sup erno des themselves are sparse, so wewould waste time

and space op erating on them. Thus we do not consider them further.

Figure 2 is a schematic of de nitions T1 through T4.

Sup erno des are only useful if they actually o ccur in practice. The o ccurrence of symmetric

sup erno des is related to the clique structure of the chordal graph of the Cholesky factor, which arises

b ecause of ll during the factorization. Unsymmetric sup erno des seem harder to characterize, but

they also are related to dense submatrices arising from ll. We measured the sup erno des according

to each de nition for 126 unsymmetric matrices from the Harwell-Bo eing sparse matrix library [9]

under various column orderings. Table 1 shows, for each de nition, the fraction of nonzeros of L

that are not in the rst column of a sup erno de; this measures howmuchrow index storage is

saved by using sup erno des. Corresp onding values for symmetric sup erno des for the symmetric

Harwell-Bo eing structural analysis problems usually range from ab out 0.5 to 0.9. Larger numb ers

are b etter, indicating larger sup erno des. We reject T4 sup erno des as b eing to o rare to make up for

the simplicity of their storage scheme. T1 sup erno des allow Blas-3 up dates, but as we will see in

Section 3.2 we can get most of their cache advantage with the more common T2 or T3 sup erno des

by using sup-panel up dates. Thus we conclude that either T2 or T3 is the de nition of choice. Our

co de uses T2, which gives slightly larger sup erno des than T3 at a small extra cost in storage.

Figure 3 shows a sample matrix, and the nonzero structure of its factors with no pivoting. Using

de nition T2, this matrix has four sup erno des: f1; 2g, f3g, f4; 5; 6g, and f7; 8; 9; 10g.For example,

in columns 4, 5, and 6 the diagonal blo cks of L and U are full, and the columns of L all have

nonzeros in rows 8 and 9. By de nition T3, the matrix has ve sup erno des: f1; 2g, f3g, f4; 5; 6g,

f7g, and f8; 9; 10g. Column 7 fails to join f8; 9; 10g as a T3 sup erno de b ecause u is zero.

78 5

0 1 0 1

1   1  

B C B C

 2   2  

B C B C

B C B C

3  3 

B C B C

B C B C

B C B C

4  4 

B C B C

B C B C

  5 

B C B C

B C B C

 6  6

B C B C

B C B C

7   7  

B C B C

B C B C

B C B C

  8 

B C B C

@ A @ A

  9    9 

   10  10

Original matrix A Factors F = L + U I

Figure 3: A sample matrix and its LU factors. Diagonal elements a and a are zero.

55 88

2.2 Storage of sup erno des

A standard waytolay out storage for a sparse matrix is a one-dimensional array of nonzero values

in column ma jor order, plus integer arrays giving rownumb ers and column starting p ositions. We

use this layout for b oth L and U , but with a slight mo di cation: we store the entire square diagonal

blo ck of each sup erno de as part of L, including b oth the strict lower triangle of values from L and

the upp er triangle of values from U .We store this square blo ckasifitwere completely full it is

full in T3 sup erno des, but its upp er triangle may contain zeros in T2 sup erno des. This allows us

to address each sup erno de as a two-dimensional array in calls to Blas routines. In other words, if

columns r : s form a sup erno de, then all the nonzeros in F r : n; r : s are stored as a single dense

two-dimensional array. This also lets us save some storage for row indices: only the indices of

nonzero rows outside the diagonal blo ck need b e stored, and the structures of all columns within

a sup erno de can b e describ ed by one set of row indices. This is similar to the e ect of compressed

subscripts in the symmetric case [30].

We represent the part of U outside the sup erno dal blo cks with a standard sparse structure: the

values are stored by columns, with a companion integer array the same size to store row indices;

another arrayof n integers indicates the start of each column.

Figure 4 shows the structure of the factors in the example from Figure 3, with s denoting

k

a nonzero in the k -th sup erno de and u denoting a nonzero in the k -th column of U outside the

k

sup erno dal blo ck. Figure 5 shows the storage layout. We omit the indexing vectors that p ointto

the b eginning of each sup erno de and the b eginning of each column of U .

2.3 The column elimination tree

Since our de nition requires the columns of a sup erno de to b e contiguous, we should get larger

sup erno des if we bring together columns of L with the same nonzero structure. But the column

ordering is xed, for sparsity, b efore numeric factorization; what can we do?

In symmetric Cholesky factorization, the so-called fundamental sup erno des can b e made con-

tiguous by p ermuting the matrix symmetrically according to a p ostorder on its elimination tree [4].

This p ostorder is an example of what Liu calls an equivalent reordering [24], which do es not change

the sparsity of the factor. The p ostordered elimination tree can also b e used to lo cate the sup er- 6

1 0

1 s s u u

1 1 3 6

C B

2 s s u u u u

1 1 3 4 6 8

C B

C B

s u u 3

C B

2 7 8

C B

C B

s s s u 4

3 3 3 9

C B

C B

s s s u u 5

3 3 3 7 9

C B

C B

s s s s s s u u u 6

1 1 2 3 3 3 7 8 9

C B

C B

s s s 7

C B

4 4 4

C B

C B

s s s s s s s s s s 8

1 1 2 3 3 3 4 4 4 4

C B

A @

s s s s s s s 9

3 3 3 4 4 4 4

s s s s s 10

2 4 4 4 4

Figure 4: Sup erno dal structure by de nition T2 of the factors of the sample matrix.

45 6

0 1

12 3 78910

0 1 0 1 0 1

s s s

3 3 3

s s s s 0 s s

1 1 2 4 4 4

B C

s s s

3 3 3

B B C B C C B C

s s 6 s s s s s

B B C B C C B C

1 1 2 4 4 4 4

s s s

B B C B C C B C

3 3 3

B C

@ A @ A @ A

6 s s 8 s s s s s

1 1 2 4 4 4 4

@ A

8 s s s

3 3 3

8 s s 10 s s s s s

1 1 2 4 4 4 4

9 s s s

3 3 3

Sup erno dal blo cks stored in column-ma jor order

Row

1 2 2 1 2 3 5 6 2 3 6 4 5 6

Subscripts

u u u u u u u u u u u u u u

3 3 4 6 6 7 7 7 8 8 8 9 9 9

O -sup erno dal nonzeros in columns of U

Figure 5: Storage layout for factors of the sample matrix, using T2 sup erno des. 7

no des b efore the numeric factorization.

We pro ceed similarly for the unsymmetric case. Here the appropriate analog of the symmetric

elimination tree is the column elimination tree, or column etree for short. The vertices of this

tree are the integers 1 through n, representing the columns of A. The column etree of A is the

symmetric elimination tree of the column intersection graph of A, or equivalently the elimination

T T

tree of A A provided there is no cancellation in computing A A. See Gilb ert and Ng [19] for

complete de nitions. The column etree can b e computed from A in time almost linear in the

numb er of nonzeros of A byavariation of an algorithm of Liu [24].

The following theorem says that the column etree represents p otential dep endencies among

columns in LU factorization, and that for strong Hall matrices no stronger information is obtain-

able from the nonzero structure of A. Note that column i up dates column j in LU factorization if

and only if u 6=0.

ij

Theorem 1 Column Elimination Tree [19] Let A be a square, nonsingular, possibly unsym-

metric matrix, and let PA = LU be any factorization of A with pivoting by row interchanges. Let

T be the column elimination treeof A.

1. If vertex i is an ancestor of vertex j in T , then i  j .

2. If l 6=0, then vertex i is an ancestor of vertex j in T .

ij

3. If u 6=0, then vertex j is an ancestor of vertex i in T .

ij

4. Suppose in addition that A is strong Hal l that is, A cannot bepermuted to a nontrivial block

triangular form. If vertex j is the parent of vertex i in T , then there is some choice of values

for the nonzeros of A that makes u 6=0 when the factorization PA = LU is computed with

ij

partial pivoting.

Just as a p ostorder on the symmetric elimination tree brings together symmetric sup erno des,

we exp ect a p ostorder on the column etree to bring together unsymmetric sup erno des. Thus, b efore

we factor the matrix, we compute its column etree and p ermute the matrix columns according to

a p ostorder on the tree. Wenow show that this do es not change the factorization in any essential

way.

Theorem 2 Let A be a matrix with column etree T .Let  beapermutation such that whenever

 i is an ancestor of  j  in T , we have i  j . Let P be the permutation matrix such that

T T



 = P  1: n .Let A = PAP .



1. A = A; .

  

2. The column etree T of A is isomorphic to T ;inparticular, relabeling each node i of T as  i

yields T .

T

    

LP 3. Suppose in addition that A has an LU factorization without pivoting, A = LU . Then P

T T T

  

UP  LP P UP arerespectively unit lower triangular and upper triangular, so A =P and P

is also an LU factorization.

Remark: Liu [24] attributes to F. Peters a result similar to part 3 for the symmetric p ositive

de nite case, concerning the Cholesky factor and the usual, symmetric elimination tree. 8

Pro of: Part 1 is immediate from the de nition of P .Part 2 follows from Corollary 6.2 in

Liu [24], with the symmetric structure of the column intersection graph of our matrix A taking

the place of Liu's symmetric matrix A. Liu exhibits the isomorphism explicitly in the pro of of his

Theorem 6.1.

T T

 

Nowwe prove part 3. Wehavea =a for all i and j .Write L = P LP and U = P UP ,

ij

ij



so that l = l and u =u . Then A = LU ;we need only show that L and U are

ij ij

 i j   i j 

triangular.

  

Consider a nonzero u of U . In the triangular factorization A = LU , elementu is equal

ij

 i j 



to u and is therefore nonzero. By part 3 of Theorem 1, then, j is an ancestor of i in T .

 i j 



By the isomorphism b etween T and T , this implies that  j  is an ancestor of  iin T. Then

it follows from part 1 of Theorem 1 that  j    i. Thus every nonzero of U is on or ab ove

the diagonal, so U is upp er triangular. A similar argument shows that every nonzero of L is on

or b elow the diagonal, so L is lower triangular. The diagonal elements of L are a p ermutation of



those of L, so they are all equal to 1. 2

T

Since the triangular factors of A are just p ermutations of the triangular factors of PAP , they

have the same sparsity. Indeed, they require the same arithmetic to compute; the only p ossible

di erence is the order of up dates. If addition for up dates is commutative and asso ciative, this



implies that with partial pivoting i; j  is a legal pivot in A i  i;j is a legal pivot in

A. In oating-p oint arithmetic, the di erent order of up dates could conceivably change the pivot

sequence. Thus wehave the following corollary.

Corollary 1 Let  bea postorder on the column elimination treeofA, let P be any permutation

1

T T

matrix, and let P be the permutation matrix with  = P  1: n .IfPAP = LU is an LU

2 2 1

2

T T T

factorization, then so is P P A =P LP P UP . In exact arithmetic, the former is an LU

1 2 2

2 2 2

T

factorization with partial pivoting of AP if and only if the latter is an LU factorization with partial

2

pivoting of A.

This corollary says that an LU co de can p ermute the columns of its input matrix by p ostorder

on the column etree, and then fold the column p ermutation into the row p ermutation on output.

Thus our SuperLU co de has the option of returning either four matrices P , P , L, and U with

1 2

T T T T

P AP = LU , or just the three matrices P P , P LP , and P UP , whicharearow p ermutation

1 1 2 2

2 2 2 2

and two triangular matrices. The advantage of returning all four matrices is that the columns of

each sup erno de are contiguous in L, which p ermits the use of a Blas-2 sup erno dal triangular solve

for the forward-substitution phase of a linear system solver. The sup erno des are not contiguous in

T

P LP .

2

2

2.4 Relaxed sup erno des

Wehave explored various ways of relaxing the denseness of a sup erno de. We exp erimented with b oth

T2 and T3 sup erno des, and found that T2 sup erno des those with only nested column structures

in L give slightly b etter p erformance.

We observe that, for most matrices, the average size of a sup erno de is only ab out 2 to 3 columns

though a few sup erno des are much larger. A large p ercentage of sup erno des consist of only a

single column, many of which are leaves of the column etree. Therefore wehave devised a scheme

to merge groups of columns at the fringe of the etree into arti cial supernodes regardless of their

row structures. A parameter r controls the granularity of the merge. Our merge rule is: no de i

is merged with its parentnode j when the subtree ro oted at j has at most r no des. In practice, 9

1. for column j =1 to n do

2. f = A: ;j;

3. Symb olic factor: determine which sup erno des of L will up date f ;

4. Determine whether j b elongs to the same sup erno de as j 1;

5. for each up dating sup erno de r : s

6. Apply sup erno de-column up date to column j :

1

7. f r : s= Lr:s; r : s  f r : s;

8. f s +1:n= fs+1:nLs+1:n; r : s  f r : s;

9. end for;

10. Pivot: interchange f j  and f k , where jf k j = max jf j : nj;

11. Separate L and U : U 1: j; j = f1: j ; Lj : n; j = fj:n;

12. Divide: L: ;j= L: ;j=Lj; j ;

13. Prune symb olic structure based on column j ;

14. end for;

Figure 6: LU factorization with sup erno de-column up dates.

the b est values of r are generally b etween 4 and 8, and yield improvements in running time of 5

to 15.

Arti cial sup erno des are a sp ecial case of relaxed supernodes, which Ashcraft and Grimes have

used in the context of multifrontal metho ds for symmetric systems [4]. Ashcraft and Grimes allow

a small numb er of nonzeros in the structure of any sup erno de, thus relaxing the condition that

the columns must have strictly nested structures. It would b e p ossible to use this idea in the

unsymmetric co de as well, though wehave not exp erimented with it. Relaxed sup erno des could

b e constructed either on the y by relaxing the nonzero count condition describ ed in Section 4.3

b elow, or by prepro cessing the column etree to identify small subtrees that wewould merge into

sup erno des.

3 Sup erno dal numeric factorization

Nowwe showhow to mo dify the column-column algorithm to use sup erno de-column up dates and

sup erno de-panel up dates. This section describ es the numerical computation involved in the up-

dates. Section 4 describ es the symb olic factorization that determines which sup erno des up date

which columns, and also the detection of b oundaries b etween sup erno des.

3.1 Sup erno de-column up dates

Figure 6 sketches the sup erno de-column algorithm. The only di erence from the column-column

algorithm is that all the up dates to a column from a single sup erno de are done together. Consider

a sup erno de r : s that up dates column j . The co ecients of the up dates are the values from a

segment of column j of U , namely U r : s; j . The nonzero structure of such a segment is particularly

simple: all the nonzeros are contiguous, and follow all the zeros as proved in Corollary 2 b elow.

Thus, if k is the index of the rst nonzero rowinUr:s; j , the up dates to column j from sup erno de

r : s come from columns k through s. Since the sup erno de is stored as a dense matrix, these 10

up dates can b e p erformed by a dense lower triangular solve with the matrix Lk : s; k : s and a

dense matrix-vector multiplication with the matrix Ls +1: n; k : s. As describ ed in Section 4, the

symb olic phase determines the value of k , that is, the p osition of the rst nonzero in the segment

U r : s; j .

The advantages of using sup erno de-column up dates are similar to those in the symmetric

case [26]. Ecient Blas-2 matrix-vector kernels can b e used for the triangular solve and matrix-

vector multiply.Furthermore, all the up dates from the sup erno dal columns can b e collected in

a dense vector b efore doing a single scatter into the target vector. This reduces the amountof

indirect addressing.

3.2 Sup erno de-panel up dates

We can improve the sup erno de-column algorithm further on machines with a memory hierarchy

bychanging the data access pattern. The data we are accessing in the inner lo op lines 5{9 of

Figure 6 include the destination column j and all the up dating sup erno des r : s to the left of

column j . Column j is accessed many times, while each sup erno de r : s is used only once. In

practice, the numb er of nonzero elements in column j is much less than that in the up dating

sup erno des. Therefore, the access pattern given by this lo op provides little opp ortunity to reuse

cached data. In particular, the same sup erno de r : smay b e needed to up date b oth columns j and

j + 1. But when we factor the j + 1-st column in the next iteration of the outer lo op, we will

have to fetch sup erno de r : s again from memory, instead of from cache unless the sup erno des are

small compared to the cache.

To exploit memory lo cality,we factor several columns say w of them at a time in the outer lo op,

so that one up dating sup erno de r : s can b e used to up date as many of the w columns as p ossible.

We refer to these w consecutive columns as a panel, to di erentiate them from a sup erno de; the

row structures of these columns may not b e correlated in any fashion, and the b oundaries b etween

panels may b e di erent from those b etween sup erno des. The new metho d requires rewriting the

doubly nested lo op as the triple lo op shown in Figure 7. This is analogous to lo op tiling techniques

used in optimizing compilers to improve cache b ehavior for two-dimensional arrays with regular

stride. It is also somewhat analogous to the sup erno de-sup erno de up dates that Ng and Peyton [26],

and Rothb erg and Gupta [27]have used in symmetric Cholesky factorization.

The structure of each sup erno de-column up date is the same as in the sup erno de-column algo-

rithm. For each sup erno de r : s to the left of column j ,ifu 6= 0 for some r  k  s, then

kj

u 6= 0 for all k  i  s. Therefore, the nonzero structure of the panel of U consists of dense

ij

column segments that are row-wise separated by sup erno dal b oundaries, as in Figure 7. Thus, it is

sucient for the symb olic factorization algorithm to record only the rst nonzero p osition of each

column segment. As detailed in Section 4.4, symb olic factorization is applied to all the columns in

a panel at once, outside the numeric-factorization lo op over up dating sup erno des.

In dense factorization, the entire sup erno de-panel up date in lines 3{7 of Figure 7 would b e

implemented as two Blas-3 calls: a dense triangular solve with w right-hand sides, followed by

a dense matrix-matrixmultiply. In the sparse case, this is not p ossible, b ecause the di erent

sup erno de-column up dates b egin at di erent p ositions k within the sup erno de, and the submatrix

U r : s; j : j + w 1 is not dense. Thus the sparse sup erno de-panel algorithm still calls the level-2

Blas.However, we get the similar cache b ene ts as the level-3 Blas, at the cost of doing the

1

" lo op reorganization ourselves. Thus we sometimes call the kernel of this algorithm a \Blas-2

2

metho d.

In the double lo op nest 3{7, the ideal circumstance is that all w columns in the panel require 11

1. for column j =1 to n step w do

2. Symb olic factor: determine which sup erno des will up date anyofL: ;j:j + w 1;

3. for each up dating sup erno de r : s

4. for column jj = j to j + w 1 do

5. Apply sup erno de-column up date to column jj;

6. end for;

7. end for;

8. Inner factorization: apply the sup-col algorithm to the panel;

9. end for;

j j+w-1

r

UJ J s

LJ J row j

Lj:n J

r s

W

Figure 7: The sup erno de-panel algorithm, with column-wise blo cking. J =1:j1. 12

up dates from sup erno de r : s. Then this sup erno de will b e used w times b efore it is forced out of

the cache. There is a trade-o b etween the value of w and the size of cache. For this scheme to

work eciently,we need to ensure that the nonzeros in the w columns do not cause cache thrashing.

That is, wemust keep w small enough that all the data accessed in this doubly nested lo op t in

cache. Otherwise, the cache cross-interference b etween the source sup erno de and the destination

panel can o set the b ene t of the new algorithm.

3.2.1 Outer and inner factorization

At the end of the sup erno de-panel up date line 7, columns j through j + w 1of L and U

have received all their up dates from columns to the left of j .We call this the outer factorization.

What remains is to apply up dates that come from columns within the panel. This amounts to

forming the LU factorization of the panel itself in columns j : j + w 1, and rows j : n. This

inner factorization is p erformed by the sup erno de-column algorithm, almost exactly as shown in

Figure 6. The inner factorization includes a columnwise symb olic factorization just as in the

sup erno de-column algorithm. The inner factorization also includes the sup erno de identi cation,

partial pivoting, and symmetric structure reduction for the entire algorithm.

3.2.2 Reducing cache misses byrow-wise blo cking

Our rst exp eriments with the sup erno de-panel algorithm showed sp eedups for some medium-sized

problems of around 20{30. However, the improvement for large matrices was often only a few

p ercent. Wenow study the reasons and remedies for this.

To implement lo ops 3{7 of Figure 7, we rst expand the nonzeros of the panel columns

of A into an n by w full working array, called the SPA for sparse accumulator [18]. This allows

random access to the entries of the active panel. A temp orary array stores the results of the Blas

op erations, and the up dates are scattered into the SPA.At the end of panel factorization, the data

in the SPA are copied into storage for L and U . Although increasing the panel size w gives more

opp ortunity for data reuse, it also increases the size of the active data set that must t into cache.

The sup erno de-panel up date lo op accesses the following data:

 the nonzeros in the up dating sup erno de Lr : n; r : s.

 the SPA data structure, consisting of an n by w full array and a temp orary store of size n.

By instrumenting the co de, we found that the working sets of large matrices are much larger than

the cache size. Hence, cache thrashing limits p erformance.

We exp erimented with a scheme suggested by Rothb erg [28], in which the SPA has only as many

rows as the numb er of nonzero rows in the panel as predicted by symb olic factorization, and an

extra indirection array of size n is used to address the SPA. Unfortunately, the cost incurred by

double indirection is not negligible, and this scheme was not as e ective as the two-dimensional

blo cking metho d wenow describ e.

We implemented a row-wise blo cking scheme on top of the column-wise blo cking in the sup erno de-

panel up date. The 2-D blo cking adds another level of lo oping b etween the two lo ops in lines 3 and 4

of Figure 7. This partitions the sup erno des and the SPA structure into blo ckrows. Then each

blo ckrow of the up dating sup erno de is used for up to w partial matrix-vector multiplies, which

are pushed all the way through into the SPA b efore the next blo ckrow of the sup erno de is ac-

cessed. The active data set accessed in the inner lo ops is thus much smaller than in the 1-D scheme.

The 2-D blo cking algorithm is organized as in Figure 8. The key p erformance gains come from 13

1. for j =1 to n step w do

2. 

3. for each up dating sup erno de r : s

4. Apply triangular solves to Ar : s; j : j + w 1 using Lr : s; r : s;

5. for eachrow blo ck B in Ls +1:n; r : s do

6. for jj = j to j + w 1 do

7. Multiply B  U r : s; j j , and scatter into SPA: ;jj;

8. end for;

9. end for;

10. end for;

11. 

12 end for;

Figure 8: The sup erno de-panel algorithm, with 2-D blo cking.

the lo ops 5{9, where eachrow blo ck is reused as much as p ossible b efore the next row blo ckis

broughtinto the cache. The innermost lo op is still a dense-matrix vector multiply, p erformed bya

Blas-2 kernel.

3.2.3 Combining 1-D and 2-D blo cking

The 2-D blo cking works well when the rectangular sup erno dal matrix Lr : n; r : s is large in b oth

dimensions. If all of Lr : n; r : s can t into cache, then the row-wise blo cking gives no b ene t,

but still incurs overhead for setting up lo op variables, skipping the empty loop body, and so on.

This overhead can b e nearly 10 for some of the sparser problems in our test suite. Thus wehave

devised a hybrid up date algorithm that uses either the 1-D or 2-D partitioning scheme, dep ending

on the size of each up dating sup erno de. The decision is made at run-time, as shown in Figure 9.

The overhead is limited to the test at line 4 of Figure 9. It turns out that this hybrid scheme works

b etter than either 1-D or 2-D co des for many problems. Therefore, this is the algorithm that we

use in the p erformance analysis in Section 5. In Section 5.5.3 we will discuss in more detail what

we mean by \large" in the test on line 4.

4 Symb olic factorization

Symb olic factorization is the pro cess that determines the nonzero structure of the triangular factors

L and U from the nonzero structure of the matrix A. This in turn determines which columns of L

up date each column j of the factors namely, those columns r for which u 6= 0, and also which

rj

columns of L can b e combined into sup erno des.

Without numeric pivoting, the complete symb olic factorization can b e p erformed b efore any

numeric factorization. Partial pivoting, however, requires that the numeric and symb olic factor-

izations b e interleaved. The sup erno de-column algorithm p erforms symb olic factorization for each

column just b efore it is computed, as describ ed in Section 4.1. The sup erno de-panel algorithm

p erforms symb olic factorization for an entire panel at once, as describ ed in Section 4.4. 14

1. for j =1 to n step w do

2. 

3. for each up dating sup erno de r : s

4. if r : s is large then /* use 2-D blo cking */

5. Apply triangular solves to Ar : s; j : j + w 1 using Lr : s; r : s;

6. for eachrow blo ck B in Ls +1:n; r : s do

7. for jj = j to j + w 1 do

8. Multiply B  U r : s; j j , and scatter into SPA: ;jj;

9. end for;

10. end for;

11. else /* use 1-D blo cking */

12. for jj = j to j + w 1 do

13. Apply triangular solvetoAr:s; j j ;

14. Multiply Ls +1:n; r : s  U r : s; j j , and scatter into SPA: ;jj;

15. end for;

16. end if;

17. end for;

18. 

19. end for;

Figure 9: The sup erno de-panel algorithm, with b oth 1-D and 2-D blo cking.

4.1 Column depth- rst search

From the numeric factorization algorithm, it is clear that the structure of column F : ;j dep ends

on the structure of column A: ;j of the original matrix and on the structure of L: ;J, where

J =1:j1. Indeed, F : ;j has the same structure as the solution vector for the following triangular

system [20]:

@

@

@

@

@ F: ;j= A: ;j

@

@

@ L: ;J I

@

@

A straightforward way to compute the structure of F : ;j from the structures of L: ;J and

A: ;jistosimulate the numerical computation. A less exp ensiveway is to use the following

characterization in terms of paths in the directed graph of L: ;J.

M

For any matrix M , the notation i ! j means that there is an edge from i to j in the directed

M

graph of M , that is, m 6= 0. The notation i = j means that there is a directed path from i to j

ij

M

in the directed graph of M . Such a path mayhave length zero; that is, i = i always holds.

L:;J 

F A

Theorem 3 [16] f is nonzeroequivalently, i ! j  if and only if i = k ! j for some k  i.

ij 15

This result implies that the symb olic factorization of column j can b e obtained as follows.

T

Consider the nonzeros in A: ;j as a subset of the vertices of the directed graph G = GL: ;J ,

which is the reverse of the directed graph of L: ;J. The nonzero p ositions of F : ;j are then given

T

by the vertices reachable by paths from this set in G.We use the graph of L here b ecause of the

convention that edges are directed from rows to columns. Since L is actually stored by columns,

our data structure gives precisely the adjacency information for G. Therefore, we can determine

the structure of column j of L and U by traversing G from the set of starting no des given by the

structure of A: ;j.

The traversal of G determines the structure of U : ;j, which in turn determines the columns

of L that will participate in up dates to column j in the numerical factorization. These up dates

must b e applied in an order consistent with a top ological ordering of G.We use depth- rst searchto

p erform the traversal, which makes it p ossible to generate a top ological order sp eci cally, reverse

p ostorder on the nonzeros of U : ;j as they are lo cated [20].

Another consequence of the path theorem is the following corollary.Itsays that if we divide

each column of U into segments, one p er sup erno de, then within each segment the column of U

just consists of a consecutive sequence of nonzeros. Thus we need only keep track of the p osition

of the rst nonzero in each segment.

Corollary 2 Let r : s be a supernode of either type T2 or T3 in the factorization PA = LU .

Suppose u is nonzero for some j with r  k  s. Then u 6=0 for al l i with k  i  s.

kj ij

L:;J 

A

Pro of: Let k  i  s. Since u 6=0,wehavek = ! j by Theorem 3. Now l is in the

kj ik

L:;J  L:;J 

A

diagonal blo ck of the sup erno de, and hence is nonzero. Thus i ! k ,soi = ! j , whence u

ij

is nonzero by Theorem 3. 2

4.2 Pruning the symb olic structure

We can sp eed up the depth- rst search traversals by using a reduced graph in place of G, the

reverse of the graph of L: ;J. Wehave explored this idea in a series of pap ers [12, 13, 17]. Any

H G

graph H can b e substituted for G, provided that i = j if and only if i = j . The traversals are

more ecientifH has fewer edges; but any gain in eciency must b e traded o against the cost

of computing H .

An extreme choice of H is the elimination dag [17], which is the transitive reduction of G,or

the minimal subgraph of G that preserves paths. However, the elimination dag is exp ensiveto

compute. The symmetric reduction [12] is a subgraph that has in general fewer edges than G but

more edges than the elimination dag, and that is much less exp ensive to compute. The symmetric

reduction takes advantage of symmetry in the structure of the lled matrix F ;ifF is completely

symmetric, it is just the symmetric elimination tree. The symmetric reduction of L: ;J is obtained

by removing all nonzeros l for which l u 6= 0 for some t

rs ts st

an ecient metho d to compute the symmetric reduction during symb olic factorization, and demon-

strate exp erimentally that it signi cantly reduces the total factorization time with an algorithm

that do es column-column up dates.

Our sup erno dal co de uses symmetric reduction to sp eed up its symb olic factorization. The

example in Figure 10 illustrates symmetric reduction in the presence of sup erno des. We use S to

T

represent the sup erno dal structure of L: ;J , and R to represent the symmetric reduction of S .It

is this R that we use in our co de. Note that the edges of the graph of R are directed from columns

of L to rows of L. 16

0 1 0 1 0 1 0 1

1   1 1 1

B C B C B C B C

 2  2 2 2

B C B C B C B C

B C B C B C B C

3  3 3 3

B C B C B C B C

B C B C B C B C

B C B C B C B C

4 4 4 4

B C B C B C B C

B C B C B C B C

 5 5 5 5

B C B C B C B C

B C B C B C B C

6 6   6   6

B C B C B C B C

B C B C B C B C

7 7 7 7

B C B C B C B C

B C B C B C B C

B C B C B C B C

         

B C B C B C B C

@ A @ A @ A @ A

     

       

Filled matrix Lower triangle Sup erno dal Reduced

F : ;J G S R

Figure 10: Sup erno dal and symmetrically reduced structures.

0 1 0 1 0 1

1 1

B C B C B C

2 2 

B C B C B C

B C B C B C

3 3 

B C B C B C

B C B C B C

B C B C B C

4 4

B C B C B C

B C B C B C

5 5

B C B C B C

=

B C B C B C

  6   6 

B C B C B C

B C B C B C

7 7

B C B C B C

B C B C B C

B C B C B C

    8     

B C B C B C

@ A @ A @ A

     

     

Figure 11: One step of symb olic factorization in the reduced structure.

In the gure, the small dot \" indicates an entry in S that was pruned from R by symmetric

reduction. The 8; 2 entry was pruned due to the symmetric nonzero pair 6; 2 and 2; 6. The

gure shows the current state of the reduced structure based on the rst seven columns of the lled

matrix.

It is instructive to follow this example through one more column to see how symb olic factoriza-

tion is carried out in the reduced sup erno dal structure. Consider the symb olic step for column 8.

Supp ose a and a are nonzero. The other nonzeros in column 8 of the factor are generated by

28 38

paths in the reduced sup erno dal structure we just show one p ossible path for each nonzero:

T

A R

8 ! 2 ! 6;

T

A R

8 ! 3 ! 8;

T

A R R

8 ! 2 ! 6 ! 9;

T

A R

8 ! 3 ! 10; 17

Figure 11 shows the reduced sup erno dal structure b efore and after column 8. In column 8 of A,

the original nonzeros are shown as \" and the ll nonzeros are shown as \". Once the structure

of column 8 of U is known, more symmetric reduction is p ossible. The entry l is pruned due to

10;3

the symmetric nonzeros in l and u . Also, l is pruned by l and u . Figure 11 shows the new

83 38 96 86 68

structure.

The sup erno dal symb olic factorization relies on the path characterization in Theorem 3 and on

the path-preserving prop erty of symmetric reduction. In e ect, we use the mo di ed path condition

T

A R

i ! = j

T

on the symmetrically-reduced sup erno dal structure R of L: ;J .

4.3 Detecting sup erno des

Since sup erno des consist of contiguous columns of L,we can decide at the end of each symb olic

factorization step whether the new column j b elongs to the same sup erno de as column j 1.

For T2 sup erno des, the test is straightforward. During symb olic factorization, we test whether

L: ;j L: ;j 1 where the containment applies to the set of nonzero indices. At the end of

the symb olic factorization step, we test whether nnz L: ;j = nnz L: ;j 1 1. Column j

joins column j 1's sup erno de if and only if b oth tests are passed.

T3 sup erno des also require the diagonal blo ckofU to b e full. Tocheck this, it suces to check

whether the single element u is nonzero, where r is the rst column index of the sup erno de. This

rj

follows from Corollary 2: u 6= 0 implies that u 6= 0 for all r  i  j . Indeed, we can even

rj ij

omit the test L: ;j L: ;j 1 for T3 sup erno des. If u 6= 0, then u 6= 0, which means

rj j 1;j

that column j 1 up dates column j , which implies L: ;j L: ;j 1. Thus wehave proved the

following.

Theorem 4 Suppose a T3 supernode begins with column r and extends at least through column j 1.

Column j belongs to this supernode if and only if u 6=0 and nnz L: ;j = nnz L: ;j 1 1.

rj

For either T2 or T3 sup erno des, it is straightforward to implement the relaxed versions discussed

in Section 2.4. Also, since the main b ene ts of sup erno des come when they t into the cache, we

imp ose a maximum size for a sup erno de.

4.4 Panel depth- rst search

The sup erno de-panel algorithm consists of an outer factorization applying up dates from sup er-

no des to the active panel and an inner factorization applying sup erno de-column up dates within

the active panel. Each has its own symb olic factorization. The outer symb olic factorization hap-

p ens once p er panel, and determines two things: 1 a single column structure, which is the union

of the structures of the panel columns, and 2 which sup erno des up date each column of the panel,

and in what order. This is the information that the sup erno de-panel up date lo op in Figure 7 needs.

The inner symb olic factorization happ ens once for each column of the panel, interleaved column

by column with the inner numeric factorization. In addition to determining the nonzero structure

of the active column and which sup erno des within the panel will up date the active column, the

inner symb olic factorization is also resp onsible for forming sup erno des that is, for deciding whether

the active column will start a new sup erno de and for symmetric structural pruning. The inner

symb olic factorization is, therefore, exactly the sup erno de-column symb olic factorization describ ed

ab ove. 18

0 1 0 1

1

B C B C

2 

B C B C

B C B C

3 

B C B C

B B C

C [1,2] [3]

B C B C

4 

B C B C

B C B C

5 

B C B C

B C B C

  6  

B C B C

B C B C

7 

B C B C

B C B C

B C B C

    

B C B C

@ A @ A

  

 [4,5,6] [7]

   

Reduced sup erno dal R A: ; 8: 9

T

Figure 12: The sup erno dal directed graph corresp onding to L1: 7; 1: 7 .

The outer symb olic factorization must determine the structures of columns j to j + w 1, i.e.,

the structure of the whole panel, and also a top ological order for U 1: j; j : j + w 1 en masse.To

this end, we develop ed an ecient panel depth- rst searchscheme, which is a slight mo di cation

of the column DFS. The panel depth- rst search algorithm maintains a single p ostorder DFS list

for all w columns of the panel. Let us call this the PO list, which is initially empty. The algorithm

invokes the column depth-search pro cedure for each column from j to j + w 1. In the column

DFS, each time the search backtracks from a vertex, that vertex is app ended to the PO list. In

the panel DFS, however, the vertex is app ended to the PO list only if it is not already on the list.

This gives a single list that includes every p osition that is nonzero in any panel column, just once;

and the entire list is in reverse top ological order. Thus the order of up dates sp eci ed by the list

is acceptable for eachofthew individual panel columns.

We illustrate the idea in Figure 12, using the sample matrix from Figure 11 and a panel of width

two. The rst seven columns have b een factored, and the current panel consists of columns 8 and 9.

In the panel, nonzeros of A are shown as \" and ll in F is shown as \". The depth- rst search

for column 8 starts from vertices 2 and 3. After that search is nished, the panel p ostorder list is

PO =6;2;3. Now the depth- rst search for column 9 starts from vertices 6 and 7 not 4, since 6 is

the representativevertex for the sup erno de containing column 4. This DFS only app ends 7 to the

PO list, b ecause 6 is already on the list. Thus, the nal list for this panel is PO =6;2;3;7. The

p ostorder list of column 8 is 6; 2; 3 and the p ostorder list of column 9 is 6; 7, which are simply

two sublists of the panel PO list. The top ological order is the reverse of PO,or7;3;2;6. In the

lo op of line 3 of Figure 7, we follow this top ological order to schedule the up dating sup erno des and

p erform numeric up dates to columns of the panel.

5 Evaluation

In this section, we apply our algorithms to practical matrices from various sources. We will compare

the p erformance of SuperLU , our sup erno de-panel co de, with its predecessors, and with other

approaches to sparse LU factorization. 19

Matrix Name s Rows Nonzeros Nonzeros/row

1 Memplus .983 17758 99147 5.6

2 Gemat11 .002 4929 33185 6.7

3 Rdist1 .062 4134 9408 2.3

4 Mcfe .709 765 24382 31.8

5 Sherman5 .780 3312 20793 6.3

6 Lnsp3937 .869 3937 25407 6.5

7 Lns3937 .869 3937 25407 6.5

8 Sherman3 1.000 5005 20033 4.0

9 Jpwh991 .947 991 6027 6.1

10 Orani678 .073 2529 90158 35.6

11 Orsreg1 1.000 2205 14133 6.4

12 Saylr4 1.000 3564 22316 6.3

13 Shyy161 .769 76480 329762 4.3

14 Venkat01 1.000 62424 1717792 27.5

15 Goodwin .642 7320 324772 44.4

16 Inaccura 1.000 16146 1015156 62.9

17 Dense1000 1.000 1000 1000000 1000

18 Raefsky3 1.000 21200 1488768 70.2

19 Wang3 1.000 26064 177168 6.8

20 Raefsky4 1.000 19779 1316789 66.6

21 Vavasis3 .001 41092 1683902 41.0

Table 2: Benchmark matrices. Structural symmetry s is de ned to b e the fraction of the nonzeros

matched by nonzeros in symmetric lo cations. None of the matrices are numerically symmetric.

5.1 Exp erimental setup

Table 2 lists 21 matrices with some characteristics of their nonzero structures. The matrices are

sorted in increasing order of f l ops=nnz F , the ratio of the numb er of oating p oint op erations to

the numb er of nonzeros nnz F  in the factored matrix F = U + L I . The reason for this order

will b e describ ed in more detail in section 5.5. Some of the matrices are from the Harwell-Bo eing

collection [9]. Most of the larger matrices are from the ftp site maintained by Tim Davis of the

3

University of Florida. Those matrices are as follows. Goodwin is a nite element matrix in

a nonlinear solver for a uid mechanics problem, provided by Ralph Go o dwin of the University

of Illinois at Urbana-Champaign. Memplus is a circuit simulation matrix from Steve Hamm of

Motorola. Inaccura, Raefsky3/4, and Venkat01 were provided by Horst Simon of Silicon

Graphics. Raefsky3 is from a uid structure interaction turbulence problem. Raefsky4 is from

a buckling problem for a container mo del. Venkat01 comes from an implicit 2-D Euler solver for

an unstructured grid in a ow simulation. Wang3 is from solving a coupled nonlinear PDE system

in a 3-D 30  30  30 uniform mesh semiconductor device simulation, as provided by Song Wang

of the University of New South Wales, Sydney. Shyy161 is derived from a direct, fully-coupled

metho d for solving the Navier-Stokes equations for viscous ow calculations, provided byWei Shyy

of the University of Florida. Vavasis3 is an unsymmetric augmented matrix for a 2-D PDE with

highly varying co ecients [33]. Dense1000 is a dense 1000  1000 matrix.

In this pap er, we do not address the p erformance of preordering for sparsity. Matrices 1, 14 and

T

19 were symmetrically p ermuted by Matlab's symmetric minimum degree ordering on A + A .For

3

ftp.cis.u .edu, in pub/umfpack/matrices 20

IBM RS/6000-590

Fraction of time Fraction of ops

nnz F 

6

Matrix nnz F   ops 10  Seconds Mflops in numeric in Dgemv

nnz A

1 140388 1.4 1.8 0.59 2.98 19 78

2 93370 2.8 1.6 0.27 5.97 34 81

3 338624 36.0 12.9 0.98 13.04 41 85

4 118717 4.8 11.7 0.44 24.91 58 95

5 281876 13.6 30.4 0.94 32.30 55 92

6 534229 21.0 59.6 2.01 28.77 55 95

7 559043 22.0 66.4 2.19 30.04 55 96

8 433376 21.6 61.7 1.41 44.41 51 87

9 161334 26.7 23.5 0.62 37.34 56 94

10 623806 6.9 103.9 4.47 22.97 63 97

11 453112 32.1 76.6 1.46 52.81 57 89

12 774310 34.7 144.7 2.78 51.67 56 90

13 7635773 23.2 1578.5 28.89 54.58 52 91

14 12785320 7.4 2730.9 40.06 66.62 59 92

15 3109585 9.6 665.6 12.66 51.75 65 92

16 10016266 9.9 4126.1 68.65 60.17 62 97

17 1000000 1.0 666.7 5.74 116.06 70 95

18 17631651 11.8 12128.7 112.27 109.03 74 96

19 13287108 74.9 14559.4 116.94 124.50 78 98

20 26714111 20.3 31307.1 257.88 120.47 79 98

21 49687658 29.5 89865.1 789.65 113.81 80 98

Table 3: Performance of SuperLU on an IBM RS/6000-590.

T

all other matrices, the columns were p ermuted by Matlab's minimum degree ordering of A A [18].

We p erformed the numerical exp eriments on an IBM RS/6000-590. The CPU clo ck rate is

66.5 MHz. The pro cessor has two branch units, two xed-p oint units, and two oating-p oint units,

which can all op erate in parallel if there are no dep endencies. In particular, each FPU can p erform

two op erations a multiply and an add or subtract at every cycle. Thus, the p eak oating-p oint

p erformance is 266 Mflops . The data cache is of size 256 KB with 256-byte lines, and is 4-way

set-asso ciative with LRU replacement p olicy. There is a separate 32 KB instruction cache. The

size of the main memory is 768 MB. The SuperLU algorithm is implemented in C; we use the AIX

xlc compiler with -O3 optimization.

5.2 Performance of the co de

Table 3 presents the p erformance of the SuperLU co de on this system. All oating p oint compu-

tations are in double precision.

In the inner lo ops of our sparse co de, we call the two dense Blas-2 routines Dtrsv triangular

solve and Dgemv matrix-vector multiply provided in the IBM ESSL library [23], whose Blas-

3 matrix-matrixmultiply routine Dgemmachieves ab out 250 Mflops when dimension of the

matrix is larger than 60 [1]. In our sparse algorithm, we nd that Dgemv typically accounts

for more than 80 of the oating-p oint op erations. As shown in the last column of Table 3,

this p ercentage is higher than 95 for many matrices. Our measurements reveal that for typical

dimensions arising from the b enchmark matrices, Dgemv achieves roughly 235 Mflops if the data 21

IBM RS/6000-590

GP GP-Mod SupCol-F SupCol-C SuperLU

Matrix xlf -O3 xlf -O3 xlf -O3 xlc -O3 xlc -O3

1 1.00 1.48 1.18 1.05 .68

2 1.00 1.69 1.23 1.29 1.00

3 1.00 2.75 2.60 2.24 1.94

4 1.00 3.44 4.31 3.52 3.52

5 1.00 3.43 5.04 4.57 4.23

6 1.00 3.39 4.21 3.86 3.54

7 1.00 3.39 4.29 3.85 3.55

8 1.00 3.54 6.19 5.99 5.27

9 1.00 3.61 4.71 4.21 4.48

10 1.00 3.55 3.88 2.98 3.10

11 1.00 3.64 5.98 5.86 5.98

12 1.00 3.67 6.39 5.99 6.30

13 1.00 3.65 6.71 6.46 5.67

14 1.00 3.86 8.49 8.33 8.87

15 1.00 3.84 6.91 6.46 7.16

16 1.00 4.17 7.55 7.24 7.94

17 1.00 4.21 10.22 9.78 14.54

18 1.00 4.30 11.70 11.54 14.00

19 1.00 4.34 12.32 12.23 15.75

20 1.00 4.35 12.18 11.89 15.39

21 1.00 4.79 13.11 13.12 15.63

Geometric

Mean 1.00 3.46 5.56 5.19 5.29

Table 4: Sp eedups achieved by each enhancementover the GP column-column co de, on the RS/6000.

are from cache. If the data are fetched from main memory, this rate can drop by a factor of 2 or 3.

The Blas sp eed is clearly an upp er b ound on the overall factorization rate. However, b ecause

symb olic manipulation usually takes a nontrivial amount of time, this b ound could b e much higher

than the actual sparse co de p erformance. Table 3 also presents the p ercentage of the total execution

time sp entinnumeric computation. For matrices 1 and 2, the program sp ent less than 35 of its

time in the numeric part. Compared to the others, these two matrices are sparser, have less ll, and

have smaller sup erno des, so our sup erno dal techniques are less applicable. Matrix 2 is also highly

unsymmetric, which makes the symmetric structural reduction technique less e ective. However,

it is imp ortant to note that the execution times for these two matrices are small.

For larger and denser matrices such as 17{21, weachievebetween 110 and 125 Mflops , which

is ab out half of the machine p eak. These matrices takemuch longer to factor, which could b e a

serious b ottleneck in an iterative simulation pro cess. Our techniques are successful in reducing the

solution times for this typ e of problem.

For a dense 1000  1000 matrix, our co de achieves 116 Mflops . This compares with 168

Mflops rep orted in the Lapack manual [2] on a matrix of this size, and 236 Mflops rep orted in

the online Linpack b enchmark les [25]. 22

Sparc 20

GP GP-Mod SupCol-F SupCol-C SuperLU

Matrix f77 -O3 f77 -O3 f77 -O3 cc -xO3 cc -xO3

1 1.00 1.19 .98 1.25 .75

2 1.00 1.32 1.26 1.71 1.09

3 1.00 1.64 1.75 1.65 1.58

4 1.00 1.80 2.36 2.16 2.32

5 1.00 1.82 2.74 2.74 2.81

6 1.00 1.82 2.49 2.36 2.33

7 1.00 1.84 2.58 2.47 2.27

8 1.00 1.90 3.11 3.19 3.09

9 1.00 1.85 2.41 2.39 2.58

10 1.00 1.86 2.08 1.78 1.81

11 1.00 1.89 3.02 3.09 3.20

12 1.00 1.95 3.03 3.09 3.32

13 1.00 2.08 3.48 3.47 3.55

15 1.00 1.89 3.05 3.02 3.91

17 1.00 1.96 3.56 3.13 4.89

Geometric

Mean 1.00 1.77 2.38 2.40 2.39

Table 5: Sp eedups achieved by each enhancementover the GP column-column co de, on a Sparc 20. The

CPU is rated at 60.0 MHz, and there is a 1 MB external cache. This system do es not provide a Blas library,

so we use our own C Blas routines. Some large problems could not b e tested b ecause of physical memory

constraints.

5.3 Comparison with previous row or column LU algorithms

In this section, we compare the p erformance of SuperLU with several of its predecessors, including

the partial pivoting co de by Gilb ert and Peierls [20] referred to as GP, Eisenstat and Liu's

improved GP co de that incorp orates symmetric reduction [13] referred to as GP-Mod, and

twoversions of our sup erno de-column co de referred to as SupCol-F and SupCol-C. GP,

GP-Mod, and SupCol-F are written in Fortran; SupCol-C and SuperLU are written in C. We

translated SupCol-F literally into C to pro duce SupCol-C;nochanges in algorithms or data

structures were made. SupCol-F , SupCol-C and SuperLU use ESSL Blas. Matlab contains

a C implementation of GP [18], whichwe did not test here.

Tables 4 through 6 present the sp eedups achieved byvarious enhancements over the original GP

column-column co de on high-end workstations from three vendors. Thus, for example, a sp eedup

of 2 means that the running time was half that of GP. The numb ers in the last row of each

table are obtained byaveraging the sp eedups in the corresp onding column. We make the following

observations ab out the results on the IBM RS/6000:

 Symmetric structure pruning GP-Modisvery e ective in reducing the graph search time.

This signi cantly decreases the symb olic time in the GP co de. It achieves sp eedup in all

problems.

 Sup erno des SupCol restrict the search to the sup erno dal graph, and allow the numeric

kernels to employ dense Blas-2 op erations. The e ects are not as dramatic as the pruning

technique. For some matrices, such as 1{3, the results are not as go o d as GP-Mod. This is 23

DEC Alpha

GP GP-Mod SupCol-F SupCol-C SuperLU

Matrix f77 -O2 f77 -O2 f77 -O2 cc -O2 cc -O2

1 1.00 1.19 .96 .98 .55

2 1.00 1.31 1.10 1.10 .78

3 1.00 1.65 1.76 1.37 1.27

4 1.00 1.90 2.20 2.12 2.09

5 1.00 1.81 2.60 2.63 2.79

6 1.00 1.84 2.38 2.25 2.35

7 1.00 1.81 2.32 2.24 2.33

8 1.00 1.84 2.33 3.23 3.54

9 1.00 1.92 2.65 2.46 2.79

10 1.00 1.80 2.05 1.61 1.85

11 1.00 1.82 3.04 3.09 2.64

12 1.00 1.78 3.15 3.13 4.19

13 1.00 1.80 3.33 3.43 3.84

15 1.00 1.77 2.84 2.82 4.19

17 1.00 1.83 4.47 3.60 6.45

Geometric

Mean 1.00 1.72 2.38 2.24 2.40

Table 6: Sp eedups achieved by each enhancementover the GP column-column co de, on a DEC Alpha. The

CPU is rated at 200 MHz, and there is a 512 KB external cache. We use the Blas routines from DEC's

DXML library. Some large problems could not b e tested b ecause of physical memory constraints.

b ecause the sup erno des are often small, esp ecially for sparser problems.

 Sup erno de-panel up dates SuperLU  reduce the cache miss rate and exploit dense substruc-

tures in the factor F .For problems without much structure, the gain is often o set byvarious

overheads. However, the b ene ts b ecome evident for larger or denser problems.

 The Fortran compiler pro duces slightly faster co de than the C compiler for SupColon

b oth the IBM and DEC machines. The di erence is ab out 5 to 15 for small problems,

and is less for large problems where most of the time is sp entin Blas routines. Wehave

seen smaller runtime di erences b etween the co des generated by the SunOS 5.4 Fortran and

C compilers on the Sun Sparc 20.

Matrix 10 is an exception: the Fortran co de is ab out 25 faster on the IBM RS/6000, 17

faster on the Sun Sparc 20, and 27 faster on the DEC Alpha.

As more and more sophisticated techniques are intro duced, the overhead cost of the co de is also

increased to some extent. This overhead can show up prominently in small problems. For example,

on the IBM RS/6000, GP-Mod works b etter than any of the subsequent co des for problems 1{3.

5.4 Comparison with other approaches to LU factorization

In this section we compare our sup erno de-panel algorithm with other p opular algorithms to solve

the unsymmetric linear system Ax = b, using the matrices from our b enchmark suite. The right-

hand side vector b is constructed so that the solution is x =1+i=n.

i 24 (a) time(UMF) / time(LU) (b) fill(UMF) / fill(LU) 101 101

100 100

10−1 10−1 1 3 5 7 9 11 13 15 17 19 21 1 3 5 7 9 11 13 15 17 19 21 Matrix number Matrix number

(c) mem(UMF) / mem(LU) (d) condition number and error 1 10 1015

1010

105 100 100

10−5

10−1 10−10 1 3 5 7 9 11 13 15 17 19 21 1 3 5 7 9 11 13 15 17 19 21

Matrix number Matrix number

Figure 13: Comparison of SuperLU algorithm with unsymmetric multifrontal algorithm imple-

mented in Umfpack on an IBM RS/6000-590, with Blas routines from the ESSL library. In d,

we plot the estimated condition number  A lab eled with \x", er r Umfpack= A   la-

1 1

b eled with \o", and er r SuperLU= A   lab eled with \+". These plots do not show Matrix

1

8 and 13, b ecause their condition numb ers are larger than 1=. 25

In particular, we consider the unsymmetric multifrontal algorithm implemented in Umfpack

version 1.0 [7]. Umfpack is implemented in Fortran, so we use the AIX xlf compiler with -O3

optimization, and link with the IBM ESSL library for Blas calls. We use the parameter settings

for Umfpack suggested by its authors [6].

Figure 13 compares several asp ects of the two implementations. We plot the ratio of each

individual measure from Umfpack to that of our SuperLU co de. The memory requirement only

counts the amount of memory actually used, excluding any external fragmentation.

Neither co de is always faster than the other. For six problems, Umfpack is faster than

SuperLU ,by at most a factor of two. For the rest of problems, SuperLU is faster than Umfpack.

For seven out of the 21 matrices, SuperLU runs more than twice as fast as Umfpack.

Figure 13d compares the solution accuracy and stability of the two approaches, without using

iterative re nement. SuperLU consistently delivers more accurate solutions, b ecause Umfpack

uses a threshold pivoting strategy to trade o stability and sparsity. In particular, for stable

algorithms we exp ect the normalized error to b e

1 kx x~k

1

 = 1 :

kx~k  A  

1 1

But very frequently, this error from Umfpack is much larger than 1. For Matrix 19, the

5

backward error is as large as 10 .To mitigate the instability,we exp erimented with working-

precision iterative re nementinUmfpack, and found that in many cases one iteration can reduce

the backward error to a level comparable to that of SuperLU. The re nement pro cess normally

takes less than 2 of the factorization time. We recommend that Umfpack incorp orate this

inexp ensive technique to guarantee backward stability. The iteration can b e terminated when the

scaled residual kr~k =kAk kx~k is acceptable, say less than machine precision .

1 1 1

In our SuperLU software, equilibration and re nement are options for the user. We compute

the comp onentwise relative backward error ! = max jr~j =jAjjx~j + jbj , and stop re ning when

i i i

!   or ! do es not decrease by at least a factor of two. See Arioli, Demmel, and Du [3] for

details. In practice, most of the test matrices take only one or two re nement steps to meet this

criterion.

The time for SuperLU do es not include the time to reorder the columns. Umfpack is less

sensitive to the initial column ordering, b ecause it dynamically p ermutes the columns for spar-

sity. Surprisingly, Figure 13b seems to suggest that for large matrices the dynamic ll-reducing

approach used in Umfpack is less e ective than the minimum degree ordering algorithms.

5.5 Understanding cache b ehavior and parameters

In this subsection, we analyze the b ehavior of SuperLU in detail. We wish to understand when

our algorithm is signi cantly faster than other algorithms. Wewould like p erformance-predicting

variables that dep end on \intrinsic" prop erties of the problem, such as the sparsity structure,

rather than algorithmic details and machine characteristics. We b egin by analyzing the sp eedups

of our enhanced co des over the base GP implementation. Figures 14, 15 and 16 depict the sp eedups

and the characteristics of the matrices, with panel size w =8.

5.5.1 Howmuch cache reuse can we exp ect?

As discussed in Section 3.2, the sup erno de-panel algorithm gets its primary gains from improved

data lo cality,by reusing a cached sup erno de several times. To understand howmuch cache reuse 26 Speedups on a RS/6000 Model 590 16

14 SuperLU SupCol−C 12 GP−Mod GP

10

8

6

4

2

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Matrix number

Figure 14: Sp eedups of each enhancementover GP co de, on the RS/6000

we can hop e for, we computed two statistics: ops-per-nz and ops-per-ref . After de ning these

statistics carefully,we discuss which more successfully measures reuse.

Ops-per-nz is simply calculated as f l ops=nnz F , the total numb er of oating p oint op erations

p er nonzero in the lled matrix F . If there were p erfect cache b ehavior, i.e., one cache miss p er

data item ignoring the e ect of cache line size, then ops-per-nz would exactly measure the amount

of work p er cache miss. In reality, ops-per-nz is an upp er b ound on the reuse. Note that ops-per-nz

dep ends only on the fact that we are p erforming with partial pivoting, not on

algorithmic or machine details. Ops-per-nz is a natural measure of p otential data reuse, b ecause it

has long b een used to distinguish among the di erent levels of Blas.

In contrast, ops-per-ref provides a lower b ound on cache reuse, and do es dep end on the details of

the Sup erLU algorithm. Ops-per-ref lo oks at each sup erno de-panel up date separately, and assumes

that all the asso ciated data is outside the cache b efore b eginning the up date. This p essimistic

assumption limits the p otential reuse to twice the panel size, 2w .

Nowwe de ne ops-per-ref more carefully. Consider a single up date from sup erno de r : s

to panel j : j + w 1. Dep ending on the panel's nonzero structure, eachentry in the up dating

sup erno de is used to up date from 0 to w panel columns. Thus eachentry in the up dating sup erno de

participates in b etween 0 and 2w oating p oint op erations during a sup-panel up date. We assume

that the sup erno de entry is broughtinto cache from main memory exactly once for the entire sup-

panel up date, if it is used at all. Thus, during a single sup-panel up date, eachentry accessed in

the up dating sup erno de accounts for b etween 2 and 2w operations per reference. The ops-per-ref

statistic is the average of this number over all entries in all sup-panel up dates. It measures how

many times the average sup erno de entry is used each time it is broughtinto cache from main

memory. Ops-per-ref ranges from 2 to 2w , with larger values indicating b etter cache use. If there is

little correlation b etween the row structures of the columns in each panel, ops-per-ref will b e small;

if there is p erfect correlation, as in a dense matrix, it will b e close to 2w . 27 (a) ops−per−nz(F) (b) ops−per−ref 104 15

103 10 102

5 101

100 0 1 3 5 7 9 11 13 15 17 19 21 1 3 5 7 9 11 13 15 17 19 21 Matrix number Matrix number

(c) Flop count (d) nnz(F) 105 108

104 107

103 106 102

105 101

100 104 1 3 5 7 9 11 13 15 17 19 21 1 3 5 7 9 11 13 15 17 19 21

Matrix number Matrix number

Figure 15: Some characteristics of the matrices. 28 (a) Mean supernode size (b) Structural symmetry 15 100

10 10−1

5 10−2

0 10−3 1 3 5 7 9 11 13 15 17 19 21 1 3 5 7 9 11 13 15 17 19 21 Matrix number Matrix number

(c) Dimension n (d) Density 105 100

10−1

−2 4 10 10

10−3

10−4 103 10−5 1 3 5 7 9 11 13 15 17 19 21 1 3 5 7 9 11 13 15 17 19 21

Matrix number Matrix number

Figure 16: Some intrinsic prop erties of the matrices. 29

Nowwe describ e howwe compute the average ops-per-ref for the entire factorization. For each

up dating sup erno de r : s and each panel j : j + w 1 see Figure 7, de ne

k smin = min fijAi; j j  6=0g:

j jj

Then nnz Lr : n; k smin: s entries of the sup erno de are referenced in the sup-panel up date. The

dense triangular solve in column jj of the up date takes s ks + 1s ks ops, where ks =

min fijAi; j j  6=0g. The matrix-vector multiply uses 2s ks +1nnz Ls +1:n; s ops.

r is

We count b oth additions and multiplications. For all panel up dates, we sum the memory reference

counts and the op counts, then divide the second sum by the rst to arriveatanaverage ops-per-

ref.

Nowwe compare the predictivepowers of ops-per-nz Figure 15 a and ops-per-ref Fig-

ure 15 b in predicting sp eedup Figure 14. The sup eriorityofops-per-nz is evident; it is much

more strongly correlated with the sp eedup of Sup erLU than ops-per-ref . This is go o d news, b e-

cause ops-per-nz measures the b est case reuse, and ops-per-ref the worst case. But neither statistic

captures all the variation in the p erformance. In future work, we hop e to use a hardware monitor

to measure the exact cache reuse rate. This data could also b e obtained from a simulator, but the

matrices we are interested in are much to o large for a simulator to b e viable.

5.5.2 How large are the sup erno des?

The sup erno de size determines the size of the matrix to b e passed to matrix-vector multiply and

other Blas-2 routines in our algorithm. Figure 16a shows the average numb er of columns in

the sup erno des of the matrices, after amalgamating the relaxed sup erno des at the b ottom of the

column etree. The average size is usually quite small.

More imp ortant than average size is the distribution of sup erno de sizes. In sparse Gaussian

elimination, more ll tends to o ccur in the later stages. Usually there is a large p ercentage of small

sup erno des corresp onding to the fringe of the column etree, even after amalgamation. Larger sup er-

no des app ear at the higher levels of the tree. In Figure 17 we plot the histograms of the sup erno de

size for four matrices chosen to exhibit a wide range of b ehavior. Matrix 1 has 16378 sup erno des,

all but one of whichhave less than 12 columns; the single large sup erno de, with 115 columns, is the

dense submatrix at the b ottom right corner of F . Matrix 15 has more sup erno des distributed over

a wider sp ectrum; it has 13 sup erno des with 54 to 59 columns. This matrix gives greater sp eedups

over the non-sup erno dal co des.

Figure 16 also plots three other prop erties of each matrix: structural symmetry, dimension, and

density. None of them haveany signi cant correlation with the p erformance. The e ectiveness of

symmetric reduction dep ends on F b eing structurally symmetric, which dep ends on the choice of

pivots. So, structural symmetry of A do es not gives any useful information.

We note that the sp eedups achieved by the dense 1000  1000 problem matrix 17 show the

b est p erformance gains, b ecause this matrix has large sup erno des and exhibits ideal data reuse. It

achieves sp eedups of 49 to 79 on the three platforms. The gains for any sparse matrix should

b e smaller than this.

5.5.3 Blo cking parameters

In our hybrid blo cking algorithm Figure 9, we need to select appropriate values for the parameters

that describ e the two-dimensional data blo cking: panel width w , maximum sup erno de size t, and

row blo ck size b. The key considerations are that the active data we access in the inner lo op the 30

a Matrix 1: 17758 rows, 16378 sup erno des b Matrix 2: 4929 rows, 2002 sup erno des

4 3

3

2

2

1 LOG_10 ( number of occurrences ) 1 LOG_10 ( number of occurrences )

1 12 24 35 47 58 70 81 93 104 1 4 8 12 16 20 23 27 31 35

Supernode size Supernode size

c Matrix 3: 4134 rows, 2099 sup erno des d Matrix 15: 7320 rows, 893 sup erno des 3

3

2

2

1

1 LOG_10 ( number of occurrences ) LOG_10 ( number of occurrences )

1 4 8 12 16 20 23 27 31 35 1 6 12 18 24 30 36 42 48 54

Supernode size Supernode size

Figure 17: Distribution of sup erno de size for four matrices. The numb er at the b ottom of each

bar is the smallest sup erno de size in that bin. The mark \o" at the b ottom of a bin indicates zero

o ccurrences. Arti cial sup erno des of granularity r = 4 are used see Section 2.4. 31 contour of DGEMV(m, n) MFLOPS contour of working set size; 256 KB cache size 125 125 20 125 175 125 550 18 150 w = 8 500 16 175 450 w = 16 14 400

12 350

125 10 150 175 m*n = 32 K doubles 300 100 175

row block size b 250 8

row dimension m (10^2) 150 175 200 o (120,200) 6 150 225 4 150 100 200 2 50 1 9 14 22 30 38 46 54 62 70 20 40 60 80 100 120 140

column dimension n max supernode size t

Figure 18: a Contour plot of Dgemv p erformance. b Contour plot of working set in 2-D algorithm.

working set should t into the cache, and that the matrices presented to the Blas-2 routine Dgemv

should b e the sizes and shap es for which that routine is optimized. Here we describ e in detail the

metho dology we used to cho ose parameters for the IBM RS/6000.

 Dgemv optimization. As indicated in the last column of Table 3, the ma jority of the

oating-p oint op erations are in the matrix-vector multiply. The dimensions m; n of the

matrices in calls to Dgemv vary greatly dep ending on the sup erno de dimensions. Very often,

the sup erno de is a tall and skinny matrix, that is, m  n.We measured the Dgemv Mflops

rate for various m and n, and present a contour plot in the m; n plane in Figure 18a.

Each contour represents a constant Mflops rate. The dashed curve represents mn = 32K

double oats, or a cache capacity of 256 KB. In the optimum region, weachieve more than

200 Mflops ; outside this region, p erformance drops either b ecause the matrices exceed the

cache capacity, or b ecause the column dimension n is to o small.

 Working set. By studying the data access pattern in the inner lo op of the 2-D algorithm,

lines 7{9 in Figure 9, we nd that the working set size is the following function of w , t,

and b, as shown in Figure 19:

+ t + b  w + b  w : WS = b  t

{z } | {z } |

| {z }

row blo ck from sup erno de part of SPA structure

vectors in matrix-vector multiply

In Figure 18b, we xtwow values, and plot the contour lines for WS = 32K in the

t; b plane. If the p ointt; b is b elow the contour curve, then the working set can t in a

cache of 32K double oats, or 256 kilobytes.

Based on this analysis, we use the following rules to set the parameters. 32 t

t U*J

b

L*J b

L'*J

W

Figure 19: Parameters of the working set in the 2-D algorithm.

First wecho ose w , the width of the panel in columns. Larger panels mean more reuse of cached

data in the outer factorization, but also mean that the inner factorization by the sup-col algorithm

must b e applied to larger matrices. We nd empirically that the b est choice for w is b etween 8

and 16. Performance tends to degrade for larger w .

Next wecho ose b, the numberofrows p er blo ck, and t, the maximum numb er of columns in

a sup erno de. Recall that b and t are upp er b ounds on the row and column dimensions of the call

to Dgemv.Wecho ose t = 120 and b  200, which guarantees that the working set ts in cache

p er Figure 18b, and that we can hop e to b e near the optimum region of Dgemv p erformance

p er Figure 18a.

Recall that b is relevant only when we use row-wise blo cking, that is, when the test \if r : sis

large" succeeds at line 4 of Figure 9. This implies that the 2-D scheme adds overhead only if the

up dating sup erno de is small. In the actual co de, the test for a large sup erno de is

if ncol > 40 and nr ow > b then the sup erno de is large,

where nr ow is the numb er of dense rows b elow the diagonal blo ck of the sup erno de, ncol is the

numb er of actual dense columns of the sup erno de up dating the panel. In practice, this choice

usually gives the b est p erformance.

The b est choice of the parameters w , t, and b dep ends on the machine architecture and on the

Blas implementation, but it is largely indep endent of the matrix structure. Thus we do not exp ect

each user of SuperLU to cho ose values for these parameters. Instead, our library co de provides an

inquiry function that returns the parameter values, much in the spirit of the Lapack environment

routine Ilaenv . The machine-indep endent defaults will often give satisfactory p erformance. The

metho dology wehave describ ed here for the RS/6000 can serve as a guide for users who wantto

mo dify the inquiry function to give optimal p erformance for particular computer systems.

6 Remarks

6.1 The rest of the package

In addition to the LU factorization kernel describ ed in this pap er, wehave develop ed a suite of

supp orting routines to solve linear systems. The complete SuperLU package includes condition

numb er estimation, iterative re nement of solutions, and comp onentwise error b ounds for the

re ned solutions. These are all based on the dense matrix routines in Lapack [2]. In addition, 33

SuperLU includes a Matlab mex- le interface, so that our factor and solve routines can b e called

as alternatives to those built into Matlab.

6.2 E ect of the matrix on p erformance

The sup erno dal approach reduces b oth symb olic and numeric computation time. But unsymmet-

ric sup erno des tend to b e smaller than sup erno des in symmetric matrices. The sup erno de-panel

metho d is most e ective for large problems with enough dense submatrices to use dense blo ck

op erations and exploit data lo cality. In this regard, the dense 1000  1000 example illustrates the

largest p ossible gains. Dense blo cks are necessary for top p erformance in all mo dern factorization

algorithms, whether left-lo oking, right-lo oking, multifrontal,orany other style.

Our goal has b een to develop sparse LU software that works well for problems with a wide

range of characteristics. It is harder to achieve high op rates on problems that are very sparse

and have no structure to exploit; it is easier on problems that are denser or b ecome so during

elimination. Fortunately, the \hard" matrices by this de nition generally take many fewer oating

p oint op erations than the \easy" ones, and hence takemuch less time to factor. Our combination

of 1-D and 2-D blo cking techniques gives a go o d p erformance compromise for all the problems we

have studied, and with particularly go o d p erformance on the largest problems.

6.3 E ect of the computer system on p erformance

Wehave studied several characteristics of the computing platform that can a ect the overall p erfor-

mance, including the Blas-2 sp eed and the cache size. Based on these factors, we can systematically

makeagoodchoice of the blo cking parameters in the co de so as to maximize the sp eed of the nu-

meric kernel. Although wehave empirical evidence only for the IBM RS/6000, we exp ect this

metho dology to b e applicable to other systems and Blas implementations as well.

6.4 Possible enhancements

We are considering several p ossible enhancements to the SuperLU co de. One is to switchto

a dense LU co de at a late stage of the factorization. It would b e dicult to implement this in

a sup erno de-column co de, b ecause that co de is strictly left-lo oking, and only one column of the

matrix is factored at a time. However, this would b e much easier in the sup erno de-panel co de. At

the time we decide to switch, we simply treat the rest of the matrix columns say d of them as one

panel, and p erform the panel up date to A1: n; n d +1: n. One mightwant to split this panel up

for b etter cache b ehavior. Then the reduced matrix at the b ottom right corner can b e factored by

calling an ecient dense co de, for example, from Lapack [2]. The dense co de do es not sp end time

on symb olic structure prediction and pruning, thus streamlining the numeric computation. We

b elieve that, for large problems, the nal dense submatrix will b e big enough to make the switch

b ene cial. For example, for a 2-D k  k square grid problem ordered by nested dissection, the

3 3 3 3

2 2

k  k ; for a 3-D k  k  k cubic grid, it is k  k , dimension of the nal dense submatrix is

2 2 2 2

if pivots come from the diagonal.

To enhance SuperLU 's p erformance on small problems, it would b e p ossible to makea choice

at runtime whether to use sup erno de-panel, sup erno de-column, or column-column up dates. The

choice would dep end on the size of the matrix A and the exp ected prop erties of its sup erno des; it

might b e based on an ecient symb olic computation of the density and sup erno de distribution of

T

the Cholesky factor of A A [21]. 34

Could we make sup erno de-panel panel up dates more e ectiveby improving the similaritybe-

tween the row structures of the columns in a panel? We b elieve this could b e accomplished with a

more sophisticated column p ermutation strategy.We could partition the no des of the column etree

into connected subtrees, grouping together no des that have common descendants and therefore

the p otential for up dates from the same sup erno des. Then the overall column order would b e a

two-level p ostorder, rst within the subtrees panels and then among them. Again, it mightbe

T

p ossible to use information ab out the Cholesky sup erno des of A A to guide this grouping.

We are also developing a parallel sparse LU algorithm based on SuperLU. In this context, we

target large problems, esp ecially those to o big to b e solved on a unipro cessor system. Therefore,

we plan to parallelize the 2-D blo cked sup erno de-panel algorithm, which has very go o d asymptotic

b ehavior for large problems. The 2-D blo ck-oriented layout has b een shown to scale well for parallel

sparse Cholesky factorization [22,29].

Acknowledgements

We thank Rob Schreib er and Ed Rothb erg for very helpful discussions during the development

of SuperLU . Rob pushed us to nd a way to do the sup erno de-panel up date; Ed suggested the

ops-per-ref statistic. We are also grateful to Tim Davis and SteveVavasis for making their test

problems available to us. The Institute for Mathematics and Its Applications at the Universityof

Minnesota provided the fertile environment in which this work b egan.

References

[1] R.C. Agarwal, F.G. Gustavson, P.Palkar, and M. Zubair. A p erformance analysis of the

subroutines in the ESSL/LAPACK call conversion interface CCI. IBM T.J. Watson Research

Center, Yorktown Heights, 1994.

[2] E. Anderson et al. LAPACK User's Guide, Second Edition. SIAM, Philadelphia, 1995.

[3] M. Arioli, J. W. Demmel, and I. S. Du . Solving sparse linear systems with sparse backward

error. SIAM J. Matrix Anal. Appl., 102:165{190, April 1989.

[4] C. Ashcraft and R. Grimes. The in uence of relaxed sup erno de partitions on the multifrontal

metho d. ACM Trans. Mathematical Software, 15:291{309, 1989.

[5] C. Ashcraft, R. Grimes, J. Lewis, B. Peyton, and H. Simon. Progress in sparse matrix meth-

o ds for large sparse linear systems on vector sup ercomputers. Intern. J. of Supercomputer

Applications, 1:10{30, 1987.

[6] T. A. Davis. User's guide for the unsymmetric-pattern multifrontal package UMFPACK.

Technical Rep ort TR-93-020, Computer and Information Sciences Department, Universityof

Florida, June 1993.

[7] T. A. Davis and I. S. Du . An unsymmetric-pattern multifrontal metho d for sparse LU fac-

torization. Technical Rep ort RAL 93-036, Rutherford Appleton Lab oratory, Chilton, Didcot,

Oxfordshire, 1994.

[8] J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson. An extended set of basic linear

algebra subroutines. ACM Trans. Mathematical Software, 14:1{17, 18{32, 1988. 35

[9] I. S. Du , R. Grimes, and J. Lewis. Sparse matrix test problems. ACM Trans. Mathematical

Software, 15:1{14, 1989.

[10] I. S. Du and J. K. Reid. MA48, a Fortran co de for direct solution of sparse unsymmetric

linear systems of equations. Technical Rep ort RAL{93{072, Rutherford Appleton Lab oratory,

Oxon, UK, 1993.

[11] I.S. Du and J.K. Reid. The multifrontal solution of inde nite sparse symmetric linear equa-

tions. ACM Trans. Mathematical Software, 9:302{325, 1983.

[12] S. C. Eisenstat and J. W. H. Liu. Exploiting structural symmetry in sparse unsymmetric

symb olic factorization. SIAM J. Matrix Analysis and Applications, 13:202{211, 1992.

[13] S. C. Eisenstat and J. W. H. Liu. Exploiting structural symmetry in a sparse partial pivoting

co de. SIAM J. Scienti c and Statistical Computing, 14:253{257, 1993.

[14] J. A. George and E. Ng. An implementation of Gaussian elimination with partial pivoting for

sparse systems. SIAM J. Scienti c and Statistical Computing, 6:390{409, 1985.

[15] J. A. George and E. Ng. Symb olic factorization for sparse Gaussian elimination with partial

pivoting. SIAM J. Scienti c and Statistical Computing, 8:877{898, 1987.

[16] J. R. Gilb ert. Predicting structure in sparse matrix computations. SIAM J. Matrix Analysis

and Applications, 15:62{79, 1994.

[17] J. R. Gilb ert and J. W. H. Liu. Elimination structures for unsymmetric sparse LU factors.

SIAM J. Matrix Analysis and Applications, 14:334{352, 1993.

[18] J. R. Gilb ert, C. Moler, and R. Schreib er. Sparse matrices in Matlab: Design and implemen-

tation. SIAM J. Matrix Analysis and Applications, 13:333{356, 1992.

[19] J. R. Gilb ert and E. Ng. Predicting structure in nonsymmetric sparse matrix factorizations.

In Alan George, John R. Gilb ert, and Joseph W. H. Liu, editors, Graph Theory and Sparse

Matrix Computation. Springer-Verlag, 1993.

[20] J. R. Gilb ert and T. Peierls. Sparse partial pivoting in time prop ortional to arithmetic op er-

ations. SIAM J. Scienti c and Statistical Computing, 9:862{874, 1988.

[21] John R. Gilb ert, Esmond G. Ng, and Barry W. Peyton. An ecient algorithm to compute

row and column counts for sparse Cholesky factorization. SIAM J. Matrix Analysis and Ap-

plications, 15:1075{1091, 1994.

[22] A. Gupta and V. Kumar. Optimally scalable parallel sparse cholesky factorization. In The 7th

SIAM Conference on Paral lel Processing for Scienti c Computing, pages 442{447, 1995.

[23] International Business Machines Corporation Engineering and Scienti c Subroutine Library,

Guide and Reference.Version 2 Release 2, Order No. SC23-0526-01, 1994.

[24] J. W. H. Liu. The role of elimination trees in sparse factorization. SIAM J. Matrix Analysis

and Applications, 11:134{172, 1990.

[25] PDS: The p erformance database server, http://p erformance.netlib.org/p erformance/, May

1995. 36

[26] E. G. Ng and B. W. Peyton. Blo ck sparse Cholesky algorithms on advanced unipro cessor

computers. SIAM J. Scienti c and Statistical Computing, 14:1034{1056, 1993.

[27] E. Rothb erg and A. Gupta. Ecient sparse matrix factorization on high-p erformance work-

stations { exploiting the memory hierarchy. ACM Trans. Mathematical Software, 17:313{334,

1991.

[28] E. Rothb erg and A. Gupta. An evaluation of left-lo oking, right-lo oking and multifrontal

approaches to sparse Cholesky factorization on hierarchical-memory machines. Int. J. High

Speed Computing, 5:537{593, 1993.

[29] E. E. Rothb erg and A. Gupta. An ecient blo ck-oriented approach to parallel sparse cholesky

factorization. In Supercomputing, pages 503{512, Novemb er 1993.

[30] A. H. Sherman. On the ecient solution of sparse systems of linear and nonlinear equations.

PhD thesis, Yale University, 1975.

[31] A. H. Sherman. Algorithm 533: NSPIV, a FORTRAN subroutine for sparse Gaussian elimi-

nation with partial pivoting. ACM Trans. Mathematical Software, 4:391{398, 1978.

[32] H. Simon, P.Vu, and C. Yang. Performance of a sup erno dal general sparse solver on the

CRAY Y-MP: 1.68 GFLOPS with autotasking. Technical Rep ort TR SCA-TR-117, Bo eing

Computer Services, 1989.

[33] S. A. Vavasis. Stable nite elements for problems with wild co ecients. Technical Rep ort

93{1364, Department of Computer Science, Cornell University, Ithaca, NY, 1993. To app ear

in SIAM J. Numerical Analysis. 37