The Evolution of a Sparse Partial Pivoting Algorithm John R. Gilbert with: Tim Davis, Jim Demmel, Stan Eisenstat, Laura Grigori, Stefan Larimore, Sherry.

Slides:



Advertisements
Similar presentations
Dense Linear Algebra (Data Distributions) Sathish Vadhiyar.
Advertisements

Fill Reduction Algorithm Using Diagonal Markowitz Scheme with Local Symmetrization Patrick Amestoy ENSEEIHT-IRIT, France Xiaoye S. Li Esmond Ng Lawrence.
Lecture 3 Sparse Direct Method: Combinatorics Xiaoye Sherry Li Lawrence Berkeley National Laboratory, USA crd-legacy.lbl.gov/~xiaoye/G2S3/
ECE 552 Numerical Circuit Analysis Chapter Four SPARSE MATRIX SOLUTION TECHNIQUES Copyright © I. Hajj 2012 All rights reserved.
Siddharth Choudhary.  Refines a visual reconstruction to produce jointly optimal 3D structure and viewing parameters  ‘bundle’ refers to the bundle.
Sparse LU Factorization for Parallel Circuit Simulation on GPU Ling Ren, Xiaoming Chen, Yu Wang, Chenxi Zhang, Huazhong Yang Department of Electronic Engineering,
Department of Electronic Engineering, Tsinghua University Nano-scale Integrated Circuit and System Lab. GPU Sparse LU Factorization and Its Application.
Sparse Matrices in Matlab John R. Gilbert Xerox Palo Alto Research Center with Cleve Moler (MathWorks) and Rob Schreiber (HP Labs)
Symmetric Minimum Priority Ordering for Sparse Unsymmetric Factorization Patrick Amestoy ENSEEIHT-IRIT (Toulouse) Sherry Li LBNL/NERSC (Berkeley) Esmond.
1cs542g-term Notes  Assignment 1 will be out later today (look on the web)
1cs542g-term Notes  Assignment 1 is out (questions?)
1cs542g-term Notes  Assignment 1 is out (due October 5)  Matrix storage: usually column-major.
1cs542g-term Sparse matrix data structure  Typically either Compressed Sparse Row (CSR) or Compressed Sparse Column (CSC) Informally “ia-ja” format.
CS 290H: Sparse Matrix Algorithms
1cs542g-term Notes  Note that r 2 log(r) is NaN at r=0: instead smoothly extend to be 0 at r=0  Schedule a make-up lecture?
Symmetric Weighted Matching for Indefinite Systems Iain Duff, RAL and CERFACS John Gilbert, MIT and UC Santa Barbara June 21, 2002.
High Performance Computing 1 Parallelization Strategies and Load Balancing Some material borrowed from lectures of J. Demmel, UC Berkeley.
CS 240A: Solving Ax = b in parallel °Dense A: Gaussian elimination with partial pivoting Same flavor as matrix * matrix, but more complicated °Sparse A:
Graph Algorithms in Numerical Linear Algebra: Past, Present, and Future John R. Gilbert MIT and UC Santa Barbara September 28, 2002.
Sparse Matrix Methods Day 1: Overview Day 2: Direct methods Nonsymmetric systems Graph theoretic tools Sparse LU with partial pivoting Supernodal factorization.
Sparse Matrix Methods Day 1: Overview Matlab and examples Data structures Ax=b Sparse matrices and graphs Fill-reducing matrix permutations Matching and.
CS240A: Conjugate Gradients and the Model Problem.
Monica Garika Chandana Guduru. METHODS TO SOLVE LINEAR SYSTEMS Direct methods Gaussian elimination method LU method for factorization Simplex method of.
Sparse Direct Solvers on High Performance Computers X. Sherry Li CS267: Applications of Parallel Computers March.
CS 290H Lecture 17 Dulmage-Mendelsohn Theory
Domain decomposition in parallel computing Ashok Srinivasan Florida State University COT 5410 – Spring 2004.
CS 290H Lecture 12 Column intersection graphs, Ordering for sparsity in LU with partial pivoting Read “Computing the block triangular form of a sparse.
Scalabilities Issues in Sparse Factorization and Triangular Solution Sherry Li Lawrence Berkeley National Laboratory Sparse Days, CERFACS, June 23-24,
TECHNIQUES ALGORITHMS AND SOFTWARE FOR THE DIRECT SOLUTION OF LARGE SPARSE LINEAR EQUATIONS.
Introduction to Numerical Analysis I MATH/CMPSC 455 PA=LU.
Symbolic sparse Gaussian elimination: A = LU
Lecture 5 Parallel Sparse Factorization, Triangular Solution
The Landscape of Sparse Ax=b Solvers Direct A = LU Iterative y’ = Ay Non- symmetric Symmetric positive definite More RobustLess Storage More Robust More.
Graph Algorithms. Definitions and Representation An undirected graph G is a pair (V,E), where V is a finite set of points called vertices and E is a finite.
CS 290H Lecture 5 Elimination trees Read GLN section 6.6 (next time I’ll assign 6.5 and 6.7) Homework 1 due Thursday 14 Oct by 3pm turnin file1.
PDCS 2007 November 20, 2007 Accelerating the Complex Hessenberg QR Algorithm with the CSX600 Floating-Point Coprocessor Yusaku Yamamoto 1 Takafumi Miyata.
On the Use of Sparse Direct Solver in a Projection Method for Generalized Eigenvalue Problems Using Numerical Integration Takamitsu Watanabe and Yusaku.
JAVA AND MATRIX COMPUTATION
Solution of Sparse Linear Systems
Lecture 4 Sparse Factorization: Data-flow Organization
CS240A: Conjugate Gradients and the Model Problem.
Direct Methods for Sparse Linear Systems Lecture 4 Alessandra Nardi Thanks to Prof. Jacob White, Suvranu De, Deepak Ramaswamy, Michal Rewienski, and Karen.
Department of Electronic Engineering, Tsinghua University Nano-scale Integrated Circuit and System Lab. Performance Analysis of Parallel Sparse LU Factorization.
Linear Systems What is the Matrix?. Outline Announcements: –Homework III: due Today. by 5, by –Ideas for Friday? Linear Systems Basics Matlab and.
Administrivia: October 5, 2009 Homework 1 due Wednesday Reading in Davis: Skim section 6.1 (the fill bounds will make more sense next week) Read section.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University.
08/10/ NRL Hybrid QR Factorization Algorithm for High Performance Computing Architectures Peter Vouras Naval Research Laboratory Radar Division Professor.
Data Structures and Algorithms in Parallel Computing Lecture 7.
CS 290H Administrivia: May 14, 2008 Course project progress reports due next Wed 21 May. Reading in Saad (second edition): Sections
1 1  Capabilities: Serial (thread-safe), shared-memory (SuperLU_MT, OpenMP or Pthreads), distributed-memory (SuperLU_DIST, hybrid MPI+ OpenM + CUDA).
CS 290H 31 October and 2 November Support graph preconditioners Final projects: Read and present two related papers on a topic not covered in class Or,
CS 290H Lecture 15 GESP concluded Final presentations for survey projects next Tue and Thu 20-minute talk with at least 5 min for questions and discussion.
Linear Systems Dinesh A.
Potential Projects Jim Demmel CS294 Fall, 2011 Communication-Avoiding Algorithms
Faster Symmetry Discovery using Sparsity of Symmetries Paul T. Darga Karem A. Sakallah Igor L. Markov The University of Michigan.
Performance of BLAS-3 Based Tridiagonalization Algorithms on Modern SMP Machines Yusaku Yamamoto Dept. of Computational Science & Engineering Nagoya University.
CS 290H Lecture 9 Left-looking LU with partial pivoting Read “A supernodal approach to sparse partial pivoting” (course reader #4), sections 1 through.
Symmetric-pattern multifrontal factorization T(A) G(A)
Conjugate gradient iteration One matrix-vector multiplication per iteration Two vector dot products per iteration Four n-vectors of working storage x 0.
Lecture 3 Sparse Direct Method: Combinatorics
Power Systems Network and Clique Decomposition
Direct Methods for Sparse Linear Systems
CS 290N / 219: Sparse Matrix Algorithms
Solving Linear Systems Ax=b
CS 290H Administrivia: April 16, 2008
The Landscape of Sparse Ax=b Solvers
CSCE569 Parallel Computing
A Graph Partitioning Algorithm by Node Separators
Read GLN sections 6.1 through 6.4.
Nonsymmetric Gaussian elimination
Presentation transcript:

The Evolution of a Sparse Partial Pivoting Algorithm John R. Gilbert with: Tim Davis, Jim Demmel, Stan Eisenstat, Laura Grigori, Stefan Larimore, Sherry Li, Joseph Liu, Esmond Ng, Tim Peierls, Barry Peyton,...

Outline Introduction: A modular approach to left-looking LU Combinatorial tools: Directed graphs (expose path structure) Column intersection graph (exploit symmetric theory) LU algorithms: From depth-first search to supernodes Column ordering: Column approximate minimum degree Open questions

The Problem PA = LU Sparse, nonsymmetric A Columns may be preordered for sparsity Rows permuted by partial pivoting High-performance machines with memory hierarchy = x P

Symmetric Positive Definite: A=R T R Symmetric Positive Definite: A=R T R [Parter, Rose] G(A) G + (A) [chordal] for j = 1 to n add edges between j’s higher-numbered neighbors fill = # edges in G + symmetric

1.Preorder Independent of numerics 2.Symbolic Factorization Elimination tree Nonzero counts Supernodes Nonzero structure of R 3.Numeric Factorization Static data structure Supernodes use BLAS3 to reduce memory traffic 4.Triangular Solves Symmetric Positive Definite: A=R T R Result: Modular => Flexible Sparse ~ Dense in terms of time/flop O(#flops) O(#nonzeros in R) } O(#nonzeros in A), almost

Modular Left-looking LU Alternatives: Right-looking Markowitz [Duff, Reid,...] Unsymmetric multifrontal [Davis,...] Symmetric-pattern methods [Amestoy, Duff,...] Complications: Pivoting => Interleave symbolic and numeric phases 1.Preorder Columns 2.Symbolic Analysis 3.Numeric and Symbolic Factorization 4.Triangular Solves Lack of symmetry => Lots of issues...

Symmetric A implies G + (A) is chordal, with lots of structure and elegant theory For unsymmetric A, things are not as nice No known way to compute G + (A) faster than Gaussian elimination No fast way to recognize perfect elimination graphs No theory of approximately optimal orderings Directed analogs of elimination tree: Smaller graphs that preserve path structure [Eisenstat, G, Kleitman, Liu, Rose, Tarjan]

Outline Introduction: A modular approach to left-looking LU Combinatorial tools: Directed graphs (expose path structure) Column intersection graph (exploit symmetric theory) LU algorithms: From depth-first search to supernodes Column ordering: Column approximate minimum degree Open questions

Directed Graph A is square, unsymmetric, nonzero diagonal Edges from rows to columns Symmetric permutations PAP T AG(A)

+ Symbolic Gaussian Elimination Symbolic Gaussian Elimination [Rose, Tarjan] Add fill edge a -> b if there is a path from a to b through lower-numbered vertices AG (A) L+U

Structure Prediction for Sparse Solve Given the nonzero structure of b, what is the structure of x? A G(A) xb =  Vertices of G(A) from which there is a path to a vertex of b.

Column Intersection Graph G  (A) = G(A T A) if no cancellation (otherwise  ) Permuting the rows of A does not change G  (A) AG  (A)ATAATA

Filled Column Intersection Graph G  (A) = symbolic Cholesky factor of A T A In PA=LU, G(U)  G  (A) and G(L)  G  (A) Tighter bound on L from symbolic QR Bounds are best possible if A is strong Hall [George, G, Ng, Peyton] A chol (A T A) G  (A)

Column Elimination Tree Elimination tree of A T A (if no cancellation) Depth-first spanning tree of G  (A) Represents column dependencies in various factorizations A chol (A T A) T  (A) +

Column Dependencies in PA = LU If column j modifies column k, then j  T  [k]. [George, Liu, Ng] k j T[k]T[k] If A is strong Hall then, for some pivot sequence, every column modifies its parent in T  (A). [G, Grigori]

Efficient Structure Prediction Given the structure of (unsymmetric) A, one can find... column elimination tree T  (A) row and column counts for G  (A) supernodes of G  (A) nonzero structure of G  (A)... without forming G  (A) or A T A [G, Li, Liu, Ng, Peyton; Matlab] + + +

Outline Introduction: A modular approach to left-looking LU Combinatorial tools: Directed graphs (expose path structure) Column intersection graph (exploit symmetric theory) LU algorithms: From depth-first search to supernodes Column ordering: Column approximate minimum degree Open questions

Left-looking Column LU Factorization for column j = 1 to n do solve pivot: swap u jj and an elt of l j scale: l j = l j / u jj Column j of A becomes column j of L and U L 0 L I ( ) ujljujlj = a j for u j, l j L L U A j

Sparse Triangular Solve = G(L T ) Lxb 1.Symbolic: –Predict structure of x by depth-first search from nonzeros of b 2.Numeric: –Compute values of x in topological order Time = O(flops)

GP Algorithm GP Algorithm [G, Peierls; Matlab 4] Left-looking column-by-column factorization Depth-first search to predict structure of each column +: Symbolic cost proportional to flops -: BLAS-1 speed, poor cache reuse -: Symbolic computation still expensive => Prune symbolic representation

Symmetric Pruning Symmetric Pruning [Eisenstat, Liu] Use (just-finished) column j of L to prune earlier columns No column is pruned more than once The pruned graph is the elimination tree if A is symmetric Idea: Depth-first search in a sparser graph with the same path structure Symmetric pruning: Set L sr =0 if L jr U rj  0 Justification: A sk will still fill in r r j j s k = fill = pruned = nonzero

GP-Mod Algorithm GP-Mod Algorithm [Eisenstat, Liu; Matlab 5] Left-looking column-by-column factorization Depth-first search to predict structure of each column Symmetric pruning to reduce symbolic cost +: Much cheaper symbolic factorization than GP (~4x) -: Still BLAS-1 => Supernodes

Symmetric Supernodes Symmetric Supernodes [Ashcraft, Grimes, Lewis, Peyton, Simon] Supernode-column update: k sparse vector ops become 1 dense triangular solve + 1 dense matrix * vector + 1 sparse vector add Sparse BLAS 1 => Dense BLAS 2 { Supernode = group of (contiguous) factor columns with nested structures Related to clique structure of filled graph G + (A)

Nonsymmetric Supernodes Original matrix A Factors L+U

Supernode-Panel Updates for each panel do Symbolic factorization: which supernodes update the panel; Supernode-panel update: for each updating supernode do for each panel column do supernode-column update; Factorization within panel: use supernode-column algorithm +: “BLAS-2.5” replaces BLAS-1 -: Very big supernodes don’t fit in cache => 2D blocking of supernode-column updates jj+w-1 supernode panel } }

Sequential SuperLU Sequential SuperLU [Demmel, Eisenstat, G, Li, Liu] Depth-first search, symmetric pruning Supernode-panel updates 1D or 2D blocking chosen per supernode Blocking parameters can be tuned to cache architecture Condition estimation, iterative refinement, componentwise error bounds

SuperLU: Relative Performance Speedup over GP column-column 22 matrices: Order 765 to 76480; GP factor time 0.4 sec to 1.7 hr SGI R8000 (1995)

Shared Memory SuperLU-MT Shared Memory SuperLU-MT [Demmel, G, Li] 1D data layout across processors Dynamic assignment of panel tasks to processors Task tree follows column elimination tree Two sources of parallelism: Independent subtrees Pipelining dependent panel tasks Single processor “BLAS 2.5” SuperLU kernel Good speedup for 8-16 processors Scalability limited by 1D data layout

SuperLU-MT Performance Highlight (1999) 3-D flow calculation (matrix EX11, order 16614):

Outline Introduction: A modular approach to left-looking LU Combinatorial tools: Directed graphs (expose path structure) Column intersection graph (exploit symmetric theory) LU algorithms: From depth-first search to supernodes Column ordering: Column approximate minimum degree Open questions

Column Preordering for Sparsity PAQ T = LU: Q preorders columns for sparsity, P is row pivoting Column permutation of A  Symmetric permutation of A T A (or G  (A)) Symmetric ordering: Approximate minimum degree [Amestoy, Davis, Duff] But, forming A T A is expensive (sometimes bigger than L+U). = x P Q

Column AMD Column AMD [Davis, G, Ng, Larimore, Peyton; Matlab 6] Eliminate “row” nodes of aug(A) first Then eliminate “col” nodes by approximate min degree 4x speed and 1/3 better ordering than Matlab-5 min degree, 2x speed of AMD on A T A Question: Better orderings based on aug(A)? A A ATAT 0 I row col aug(A) G(aug(A))

GE with Static Pivoting GE with Static Pivoting [Li, Demmel] Target: Distributed-memory multiprocessors Goal: No pivoting during numeric factorization 1.Weighted bipartite matching [Duff, Koster] to permute A to have large elements on diagonal 2.Permute A symmetrically for sparsity 3.Factor A = LU with no pivoting, fixing up small pivots 4.Improve solution by iterative refinement As stable as partial pivoting in experiments E.g.: Quantum chemistry systems,order 700K-1.8M, on PEs of ASCI Blue Pacific (IBM SP)

Question: Preordering for GESP Use directed graph model, less well understood than symmetric factorization Symmetric: bottom-up, top-down, hybrids Nonsymmetric: mostly bottom-up Symmetric: best ordering is NP-complete, but approximation theory is based on graph partitioning (separators) Nonsymmetric: no approximation theory is known; partitioning is not the whole story Good approximations and efficient algorithms both remain to be discovered

Conclusion Partial pivoting: Good algorithms + BLAS => good execution rates for workstations and SMPs Can we understand ordering better? Static pivoting: More scalable, for very large problems in distributed memory Experimentally stable though less well grounded in theory Can we understand ordering better?