Software Technology

Mathematical Libraries

STRUMPACK/SuperLU: Factorization Based Sparse Solvers and Preconditioners for Exascale

Principal Investigators: Xiaoye Li, lead, Lawrence Berkeley National Laboratory (LBNL); Pieter Ghysels, LBNL

In this project we will deliver factorization based sparse solvers encompassing the two widely used algorithm variants: supernodal (SuperLU library) and multifrontal (STRUMPACK library). STRUMPACK is further enhanced with scalable preconditioning functionality using hierarchical matrix algebra. Both libraries are purely algebraic, applicable to a large variety of application domains. We will address several challenges that arise in exascale computing, with the following focus areas: 1) Develop novel approximation algorithms that have lower arithmetic and communication complexity with respect to the input problem size; 2) Develop new parallelization strategies that reduce inter-process communication and expose task parallelism and vectorization for irregular computations involving sparse data structures to better use on-node resources; 3) Integrate our software into the higher level algebraic solvers such as hypre, PETSc, Trilinos, and collaborate with ECP application teams for application-specific and hardware-specific tuning of the parameters space to achieve optimal efficiency of our solvers. 

Our solver technology is essential for ECP, because many high fidelity simulations involve large-scale multiphysics and multiscale modeling problems that generate highly ill-conditioned and indefinite algebraic equations, for which pure iterative methods such as Krylov and multigrid, albeit readily parallelizable on large machines, cannot converge to the solution.  The factorization based algorithms being developed in our ECP project represent an important class of methods that are indispensible building blocks for solving those numerically challenging problems. Our software can often be used as a reliable standalone solver, or as a preconditioner for Krylov iterative methods, or as a coarse grid solver in multigrid methods, just to name a few.