Intel
® 
Math Kernel Library 10.0 – Sparse Solvers
PrintEmail to a friendSupportNewsletterRSSDigg thisdel.icio.us
Product InformationEvaluation CenterSupport ResourcesDocumentation
OverviewBLAS/LAPACKScaLAPACKSparseFastVectorRandomLINPACK


Buy Product ›

Free Evaluation ›

Free Non-Commercial Download for Linux* ›

The Intel Math Kernel Library includes sparse solvers that use both direct and indirect/iterative methods.


Matrix Types
Intel® Math Kernel Library Sparse Solvers
Direct
Indirect/Iterative
General
PARDISO (d, z)
(Parallel Direct Solver)
FGMRES (d)
Symmetric
Positive
PARDISO (d, z)
(Parallel Direct Solver)
Conjugate Gradient (d)
Indefinite
PARDISO (d, z)
(Parallel Direct Solver)
 

d: Supports double-precision data
z: Supports double-precision, complex data

PARDISO* – Parallel Direct Sparse Solver
New Out-of-Core Support!

In version 10.0 we have added support for out-of-core memory to PARDISO. While computers have greatly increased memory capacity, there continue to be a large number of problems for which problems sizes are too great to solve with in-memory solutions. For customers who are encountering problem size limitations we encourage you to try our new out-of-core memory PARDISO solution. Opportunities for further performance optimizations have been identified and we plan to release an Intel MKL update in the coming months with significant performance improvements.

The PARDISO* solver, licensed from the University of Basel, is a thread-safe, high-performance, memory-efficient software library for solving large sparse, symmetric, and asymmetric linear systems of equations on shared-memory multiprocessors

The PARDISO solver exploits pipelining parallelism and memory hierarchies with a combination of left- and right-looking Level-3 BLAS super-node techniques. To improve sequential and parallel sparse numerical factorization performance, the algorithms are based on a Level-3 BLAS update.

For sufficiently large problem sizes, numerical experiments demonstrate that the scalability of the parallel algorithm is nearly independent of the shared-memory multiprocessing architecture, and speed-ups of up to seven times (on eight processors) have been observed. This approach to parallelism is based on OpenMP* directives.1

The CCLRC (UK) has published a detailed analysis of direct sparse solvers in which PARDISO is found to perform very well compared to alternatives. View the report home page or go directly to the .PDF file [401KB].

Cranes Software has also published a paper on the use of Intel MKL PARDISO in Finite Element Analysis applications. Download the .PDF file [187KB]


PARDISO supports a wide range of sparse matrix types and computes the solution of real or complex; symmetric, structurally symmetric, or asymmetric; positive definite, indefinite, or Hermitian sparse linear systems of equations on shared-memory multiprocessing architectures.



In addition to the standard PARDISO interface, Intel MKL provides a more modern, easy-to-use Direct Sparse Solver (DSS) interface. The DSS interface is our recommended alternative to PARDISO. View the DSS interface specification for additional information.

Iterative Solvers
Intel MKL includes iterative sparse solvers that can be used to solve a general and symmetric positive-definite system of linear algebraic equations.

The solvers are based on a reverse communication interface (RCI) scheme that makes the user responsible for providing certain operations for the solver (for example, matrix-vector multiplications). This scheme gives the solvers great flexibility, as they are independent of the specific implementation of operations such as matrix-vector multiplication.

FGMRES Solver
FGMRES is a popular solver for solving a general sparse system of linear equations. The general applicability allows this solver to apply in a wide range of situations. The solver accounts for sparsity in the matrices, thereby enabling the solution of larger problem sizes than could be handled by a dense approach, as well as solving large sparse problems faster than a dense approach could.

Conjugate Gradient Solver
The Conjugate Gradient (CG) solver is suitable for the numerical solution of systems of linear equations represented by a matrix that is symmetric and positive definite. The conjugate gradient method is an iterative method, so it can be applied to sparse systems which are too large to be handled by direct methods. Such systems arise regularly when numerically solving partial differential equations. The CG solver is implemented in two versions: one for a system of equations with a single right hand side, and another for systems of equations with multiple right-hand sides.

ILU0/ILUT Preconditioners
Preconditioners (also referred to as “accelerators”) are used to accelerate an iterative solution process. In some cases, their use can reduce dramatically the number of iterations and thus lead to better solver performance. Intel MKL currently includes two preconditioners called ILU0 (Incomplete LU Factorization)and ILUT (Incomplete LU Factorization with Threshold). The ILU0/ILUT preconditioners can be applied to any non-degenerate matrix and can be used alone or together with the MKL FGMRES solver. Both preconditioners are based on a well-known factorization of the original matrix into a product of two triangular matrices (low triangular and upper triangular). Usually this decomposition leads to some fill-in in the resulting matrix structure as compared to the original matrix however the distinctive feature of the ILU0 preconditioner is that it preserves the structure of the original matrix in the result, while ILUT preconditioner controls the number of fill-ins. ILUT preconditioner is more reliable, while computations with ILU0 can normally be performed faster and with less memory usage.

Sparse BLAS
Sparse solvers are often used in conjunction with sparse BLAS. Sparse BLAS is a set of functions that perform a number of common vector and matrix operations on sparse data. Sparse vectors and matrices are those in which the majority of elements are zeros. Intel MKL includes an implementation of sparse BLAS has been specially implemented to take advantage of data sparsity. Sparse BLAS coverage includes selected BLAS Level 1 routines for all data types and Level 2 and 3 BLAS routines for double-precision real functions. Matrix types include general matrices, symmetric matrices, triangular matrices, anti-symmetric, and diagonal matrices. Data structures supported include Compressed Sparse Row (CSR), Compressed Sparse Column (CSC), diagonal, coordinate, and skyline formats. More information on BLAS support in Intel MKL can be found on the Intel MKL BLAS page.

Reference
1From the PARDISO Web site*.



Intel® Software
Network
Intel® Software Network
  • It’s free and easy to become a member, so join today!