This section describes the interface to the shared-memory multiprocessing parallel direct sparse solver known as the PARDISO* solver. The interface is Fortran, but it 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 package 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.
The following table lists the names of the PARDISO routines and describes their general use.
Routine | Description |
---|---|
pardiso |
Calculates the solution of a set of sparse linear equations with multiple right-hand sides. |
pardisoinit |
Initialize PARDISO with default parameters depending on the matrix type. |
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 sparse linear system of equations on shared-memory multiprocessing architectures.
The PARDISO solver performs four tasks:
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 - 2011, Intel Corporation. All rights reserved.