This section describes the interface to the shared-memory multiprocessing parallel direct sparse solver known as the PARDISO* solver. The interface is Fortran, but can be called from C programs by observing Fortran parameter passing and naming conventions used by the supported compilers and operating systems. A discussion of the algorithms used in the PARDISO* software and more information on the solver can be found at http://www.pardiso-project.org.
The current implementation of the PARDISO* solver additionally supports the out-of-core (OOC) version.
The PARDISO* package is a high-performance, robust, memory efficient and easy to use software for solving large sparse symmetric and unsymmetric linear systems of equations on shared memory multiprocessors. The solver uses a combination of left- and right-looking Level-3 BLAS supernode techniques [Schenk00-2]. To improve sequential and parallel sparse numerical factorization performance, the algorithms are based on a Level-3 BLAS update and pipelining parallelism is used with a combination of left- and right-looking supernode techniques [Schenk00, Schenk01, Schenk02, Schenk03]. The parallel pivoting methods allow complete supernode pivoting to compromise numerical stability and scalability during the factorization process. 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 a speedup of up to seven using eight processors has been observed.
The following table "PARDISO Routines" lists the names of the routines and describes their general use.
Routine | Description |
---|---|
pardiso | Calculates the solution of a set of sparse linear equations with multiple right-hand sides. |
pardiso_64 | Calculates the solution of a set of sparse linear equations with multiple right-hand sides, 64-bit integer version. |
pardiso_getenv | Retrieves additional values from the PARDISO handle. |
pardiso_setenv | Sets additional values in the PARDISO handle. |
The PARDISO* solver supports a wide range of sparse matrix types (see Figure below) and computes the solution of real or complex, symmetric, structurally symmetric or unsymmetric, positive definite, indefinite or Hermitian sparse linear system of equations on shared-memory multiprocessing architectures.
You can find a code example that uses the PARDISO interface routine to solve systems of linear equations in the examples\solver\source folder of your Intel MKL directory.
Copyright © 1994 - 2010, Intel Corporation. All rights reserved.