Developer Reference

  • 0.9
  • 09/09/2020
  • Public Content
Contents

pardiso iparm Parameter

This table describes all individual components of the
Intel® oneAPI Math Kernel Library
PARDISO
iparm
parameter. Components which are not used must be initialized with 0. Default values are denoted with an asterisk (*).
Component
Description
iparm
[0]
input
Use default values.
0
iparm
[1]
-
iparm
[63]
are filled with default values.
0
You must supply all values in components
iparm
[1]
-
iparm
[63]
.
iparm
[1]
input
Fill-in reducing ordering for the input matrix.
You can control the parallel execution of the solver by explicitly setting the
MKL_NUM_THREADS
environment variable. If fewer OpenMP threads are available than specified, the execution may slow down instead of speeding up. If
MKL_NUM_THREADS
is not defined, then the solver uses all available processors.
0
The minimum degree algorithm [Li99].
2*
The nested dissection algorithm from the METIS package [Karypis98].
3
The parallel (OpenMP) version of the nested dissection algorithm. It can decrease the time of computations on multi-core computers, especially when
Intel® oneAPI Math Kernel Library
PARDISO Phase 1 takes significant time.
Setting
iparm
[1]
= 3
prevents the use of CNR mode (
iparm
[33]
> 0
) because
Intel® oneAPI Math Kernel Library
PARDISO uses dynamic parallelism.
iparm
[2]
Reserved. Set to zero.
iparm
[3]
input
Preconditioned CGS/CG.
This parameter controls preconditioned CGS [Sonn89] for nonsymmetric or structurally symmetric matrices and Conjugate-Gradients for symmetric matrices.
iparm
[3]
has the form
iparm
[3]
=
10*
L
+
K
.
K
=0
The factorization is always computed as required by
phase
.
K
=1
CGS iteration replaces the computation of
LU
. The preconditioner is
LU
that was computed at a previous step (the first step or last step with a failure) in a sequence of solutions needed for identical sparsity patterns.
K
=2
CGS iteration for symmetric positive definite matrices replaces the computation of
LL
T
. The preconditioner is
LL
T
that was computed at a previous step (the first step or last step with a failure) in a sequence of solutions needed for identical sparsity patterns.
The value
L
controls the stopping criterion of the Krylov Subspace iteration:
eps
CGS
= 10
-L
is used in the stopping criterion
||
dx
i
|| / ||
dx
0
|| < eps
CGS
where
||
dx
i
|| = ||inv(
L
*
U
)*
r
i
||
for
K
= 1
or
||
dx
i
|| = ||inv(
L
*
L
T
)*
r
i
||
for
K
= 2
and
r
i
is the residue at iteration
i
of the preconditioned Krylov Subspace iteration.
A maximum number of 150 iterations is fixed with the assumption that the iteration will converge before consuming half the factorization time. Intermediate convergence rates and residue excursions are checked and can terminate the iteration process. If
phase
=23
, then the factorization for a given
A
is automatically recomputed in cases where the Krylov Subspace iteration failed, and the corresponding direct solution is returned. Otherwise the solution from the preconditioned Krylov Subspace iteration is returned. Using
phase
=33
results in an error message (
error
=-4
) if the stopping criteria for the Krylov Subspace iteration can not be reached. More information on the failure can be obtained from
iparm
[19]
.
The default is
iparm
[3]
=0
, and other values are only recommended for an advanced user.
iparm
[3]
must be greater than or equal to zero.
Examples:
iparm
[3]
Description
31
LU
-preconditioned CGS iteration with a stopping criterion of 1.0E-3 for nonsymmetric matrices
61
LU
-preconditioned CGS iteration with a stopping criterion of 1.0E-6 for nonsymmetric matrices
62
LL
T
-preconditioned CGS iteration with a stopping criterion of 1.0E-6 for symmetric positive definite matrices
iparm
[4]
input
User permutation.
This parameter controls whether user supplied fill-in reducing permutation is used instead of the integrated multiple-minimum degree or nested dissection algorithms. Another use of this parameter is to control obtaining the fill-in reducing permutation vector calculated during the reordering stage of
Intel® oneAPI Math Kernel Library
PARDISO.
This option is useful for testing reordering algorithms, adapting the code to special applications problems (for instance, to move zero diagonal elements to the end of
P
*
A
*
P
T
), or for using the permutation vector more than once for matrices with identical sparsity structures. For definition of the permutation, see the description of the
perm
parameter.
You can only set one of
iparm
[4]
,
iparm
[30]
, and
iparm
[35]
, so be sure that the
iparm
[30]
(partial solution) and the
iparm
[35]
(Schur complement) parameters are 0 if you set
iparm
[4]
.
0*
User permutation in the
perm
array is ignored.
1
Intel® oneAPI Math Kernel Library
PARDISO uses the user supplied fill-in reducing permutation from the
perm
array.
iparm
[1]
is ignored.
Setting
iparm
[4]
= 1 prevents use of a parallel algorithm for the solve step.
2
Intel® oneAPI Math Kernel Library
PARDISO returns the permutation vector computed at phase 1 in the
perm
array.
iparm
[5]
input
Write solution on
x
.
The array
x
is always used.
0*
The array
x
contains the solution; right-hand side vector
b
is kept unchanged.
1
The solver stores the solution on the right-hand side
b
.
iparm
[6]
output
Number of iterative refinement steps performed.
Reports the number of iterative refinement steps that were actually performed during the solve step.
iparm
[7]
input
Iterative refinement step.
On entry to the solve and iterative refinement step,
iparm
[7]
must be set to the maximum number of iterative refinement steps that the solver performs.
0*
The solver automatically performs two steps of iterative refinement when perturbed pivots are obtained during the numerical factorization.
>0
Maximum number of iterative refinement steps that the solver performs. The solver performs not more than the absolute value of
iparm
[7]
steps of iterative refinement. The solver might stop the process before the maximum number of steps if
  • a satisfactory level of accuracy of the solution in terms of backward error is achieved,
  • or if it determines that the required accuracy cannot be reached. In this case
    Intel® oneAPI Math Kernel Library
    PARDISO returns -4 in the
    error
    parameter.
The number of executed iterations is reported in
iparm
[6]
.
<0
Same as above, but the accumulation of the residuum uses extended precision real and complex data types.
Perturbed pivots result in iterative refinement (independent of
iparm
[7]
=0
) and the number of executed iterations is reported in
iparm
[6]
.
iparm
[8]
Reserved. Set to zero.
iparm
[9]
input
Pivoting perturbation.
This parameter instructs
Intel® oneAPI Math Kernel Library
PARDISO how to handle small pivots or zero pivots for nonsymmetric matrices (
mtype
=11
or
mtype
=13
) and symmetric matrices (
mtype
=-2
,
mtype
=-4
, or
mtype
=6
). For these matrices the solver uses a complete supernode pivoting approach. When the factorization algorithm reaches a point where it cannot factor the supernodes with this pivoting strategy, it uses a pivoting perturbation strategy similar to [Li99], [Schenk04].
Small pivots are perturbed with
eps = 10
-
iparm
[9]
.
The magnitude of the potential pivot is tested against a constant threshold of
alpha = eps*||
A2
||
inf
,
where
eps = 10
(-
iparm
[9]
)
,
A2
=
P
*
P
MPS
*
D
r
*
A
*
D
c
*
P
, and
||
A2
||
inf
is the infinity norm of the scaled and permuted matrix
A
. Any tiny pivots encountered during elimination are set to the sign
(
l
I
I
)*eps*||
A2
||
inf
, which trades off some numerical stability for the ability to keep pivots from getting too small. Small pivots are therefore perturbed with
eps = 10
(-
iparm
[9]
)
.
13*
The default value for nonsymmetric matrices(
mtype
=11,
mtype
=13),
eps = 10
-13
.
8*
The default value for symmetric indefinite matrices (
mtype
=-2,
mtype
=-4,
mtype
=6),
eps = 10
-8
.
iparm
[10]
input
Scaling vectors.
Intel® oneAPI Math Kernel Library
PARDISO uses a maximum weight matching algorithm to permute large elements on the diagonal and to scale so that the diagonal elements are equal to 1 and the absolute values of the off-diagonal entries are less than or equal to 1. This scaling method is applied only to nonsymmetric matrices (
mtype
= 11 or
mtype
= 13). The scaling can also be used for symmetric indefinite matrices (
mtype
= -2,
mtype
=-4, or
mtype
= 6) when the symmetric weighted matchings are applied (
iparm
[12]
= 1).
Use
iparm
[10]
= 1 (scaling) and
iparm
[12]
= 1 (matching) for highly indefinite symmetric matrices, for example, from interior point optimizations or saddle point problems. Note that in the analysis phase (
phase
=11
) you must provide the numerical values of the matrix
A
in array
a
in case of scaling and symmetric weighted matching.
0*
Disable scaling. Default for symmetric indefinite matrices.
1*
Enable scaling. Default for nonsymmetric matrices.
Scale the matrix so that the diagonal elements are equal to 1 and the absolute values of the off-diagonal entries are less or equal to 1. This scaling method is applied to nonsymmetric matrices (
mtype
= 11,
mtype
= 13). The scaling can also be used for symmetric indefinite matrices (
mtype
= -2,
mtype
= -4,
mtype
= 6) when the symmetric weighted matchings are applied (
iparm
[12]
= 1).
Note that in the analysis phase (
phase
=11) you must provide the numerical values of the matrix
A
in case of scaling.
iparm
[11]
input
Solve with transposed or conjugate transposed matrix
A
.
For real matrices, the terms
transposed
and
conjugate transposed
are equivalent.
0*
Solve a linear system
AX
=
B
.
1
Solve a conjugate transposed system
A
H
X
=
B
based on the factorization of the matrix
A
.
2
Solve a transposed system
A
T
X
=
B
based on the factorization of the matrix
A
.
iparm
[12]
input
Improved accuracy using (non-) symmetric weighted matching.
Intel® oneAPI Math Kernel Library
PARDISO can use a maximum weighted matching algorithm to permute large elements close the diagonal. This strategy adds an additional level of reliability to the factorization methods and complements the alternative of using more complete pivoting techniques during the numerical factorization.
  
0*
Disable matching. Default for symmetric indefinite matrices.
1*
Enable matching. Default for nonsymmetric matrices.
Maximum weighted matching algorithm to permute large elements close to the diagonal.
It is recommended to use
iparm
[10]
= 1 (scaling) and