oneMKL PARDISO Parameters in Tabular Form
oneMKL
PARDISO Parameters in Tabular FormThe following table lists all parameters of
PARDISO and gives their brief descriptions.
Intel® oneAPI Math Kernel Library
Parameter
| Type
| Description
| Values
| Comments
| In/Out
|
---|---|---|---|---|---|
pt | void* | Solver internal data address pointer
| 0
| Must be initialized with zeros and never be modified later
| in/out
|
maxfct | MKL_INT* | Maximal number of factors in memory
| >0
| Generally used value is 1
| in
|
mnum | MKL_INT* | The number of matrix (from 1 to
maxfct ) to solve
| [1:
maxfct ]
| Generally used value is 1
| in
|
mtype | MKL_INT* | Matrix type
| 1
| Real and structurally symmetric
| in
|
2
| Real and symmetric positive definite
| ||||
-2
| Real and symmetric indefinite
| ||||
3
| Complex and structurally symmetric
| ||||
4
| Complex and Hermitian positive definite
| ||||
-4
| Complex and Hermitian indefinite
| ||||
6
| Complex and symmetric matrix
| ||||
11
| Real and nonsymmetric matrix
| ||||
13
| Complex and nonsymmetric matrix
| ||||
phase | MKL_INT* | Controls the execution of the solver
For
iparm [35] > 0 , phases 331, 332, and 333 perform a different decomposition. See the
phase parameter of
pardiso for details.
| 11
| Analysis
| in
|
12
| Analysis, numerical factorization
| ||||
13
| Analysis, numerical factorization, solve
| ||||
22
| Numerical factorization
| ||||
23
| Numerical factorization, solve
| ||||
33
| Solve, iterative refinement
| ||||
331
| phase =33, but only forward substitution
| ||||
332
| phase =33, but only diagonal substitution
| ||||
333
| phase =33, but only backward substitution
| ||||
0
| Release internal memory for L and U of the matrix number
mnum | ||||
-1
| Release all internal memory for all matrices
| ||||
n | MKL_INT* | Number of equations in the sparse linear system
A *X =
B | >0
| in
| |
a | void* | Contains the non-zero elements of the coefficient matrix
A | *
| The size of
a is the same as that of
ja , and the coefficient matrix can be either real or complex. The matrix must be stored in the 3-array variation of compressed sparse row (CSR3) format with increasing values of
ja for each row
| in
|
ia [ n ] | MKL_INT* | rowIndex array in CSR3 format
| >=0
| ia [i ]a that contains the first non-zero element from row
i of
A . The last element
ia (n )A .
Note:
indicates whether row/column indexing starts from 1 or 0.
| in
|
ja | MKL_INT* | columns array in CSR3 format
| >=0
| The column indices for each row of
A must be sorted in increasing order. For structurally symmetric matrices zero diagonal elements must be stored in
a and
ja . Zero diagonal elements should be stored for symmetric matrices, although they are not required. For symmetric matrices, the solver needs only the upper triangular part of the system.
Note:
indicates whether row/column indexing starts from 1 or 0.
| in
|
perm [ n ] | MKL_INT* | Holds the permutation vector of size
n , specifies elements used for computing a partial solution, or specifies differing values of the input matrices for low rank update
| >=0
| Let
C =
P *A *P T i of
C is the
perm (i )A . The numbering of the array must describe a permutation.
To specify values that differ in
A for low rank update (see
Low Rank Update), set
iparm [38]ndiff + 1, where
ndiff is the number of values of
A that are different. The values of
perm should be:
perm = {ndiff ,
row_index1 ,
column_index1 ,
row_index2 ,
column_index2 , ....,
row_index_ndiff ,
column_index_ndiff }where
row_index_m and
column_index_m are the row and column indices of the
m -th differing non-zero value in matrix
A . The row and column index pairs can be in any order, but must use zero-based indexing regardless of the value of
iparm [34]Unless you have specified low rank update,
indicates whether row/column indexing starts from 1 or 0.
| in/out
|
nrhs | MKL_INT* | Number of right-hand sides that need to be solved for
| >=0
| Generally used value is 1
To obtain better
Intel® oneAPI Math Kernel Library | in
|
iparm [64] | MKL_INT* | This array is used to pass various parameters to
Intel® oneAPI Math Kernel Library | *
| If
iparm [0]=0 ,
Intel® oneAPI Math Kernel Library iparm [1]iparm [63] | in/out
|
msglvl | MKL_INT* | Message level information
| 0
| Intel® oneAPI Math Kernel Library | in
|
1
| Intel® oneAPI Math Kernel Library | ||||
b [ n *nrhs ] | void* | Right-hand side vectors
| *
| On entry, contains the right-hand side vector/matrix
B , which is placed contiguously in memory. The
b [ element must hold the
i +k *n ]i -th component of
k -th right-hand side vector. Note that
b is only accessed in the solution phase.
On output, the array is replaced with the solution if
=1.
| in/out
|
x [ n *nrhs ] | void* | Solution vectors
| *
| On output, if
=0, contains solution vector/matrix
X which is placed contiguously in memory. The
x [ element must hold the
i +k *n ]i -th component of
k -th solution vector. Note that
x is only accessed in the solution phase.
| out
|
error | MKL_INT* | Error indicator
| 0
| No error
| out
|
-1
| Input inconsistent
| ||||
-2
| Not enough memory
| ||||
-3
| Reordering problem
| ||||
-4
| Zero pivot, numerical factorization or iterative refinement problem
| ||||
-5
| Unclassified (internal) error
| ||||
-6
| Reordering failed (matrix types 11 and 13 only)
| ||||
-7
| Diagonal matrix is singular
| ||||
-8
| 32-bit integer overflow problem
| ||||
-9
| Not enough memory for OOC
| ||||
-10
| Problems with opening OOC temporary files
| ||||
-11
| Read/write problems with the OOC data file
|