| Last Modified On : |
June 23, 2009 12:17 AM PDT
|
| |
Since version 10.2, Intel® Math Kernel Library starts supporting single precision computations for PARDISO * solver as well as double precision computations.
This means that PARDISO solves tasks using single or double precision of real and complex data types. Each precision has its own pros and cons. Double precision variables have more digits to store value, so solver uses more memory for keeping data. But this mode allows solving matrices with better accuracy, and input matrices can have big condition numbers.
Single precision variables have fewer digits to store values, so solver uses less memory than in the double precision mode. Additionally this mode usually takes less time. But as computations are made more roughly, only numerically stable process can be made using single precision **.
The precision of the computations is defined by iparm(28) .
If iparm(28)=0, then the input arrays (matrix a, vectors x and b) as well as all internal arrays are supposed to be in double precision.
If iparm(28)=1, then the input arrays must be presented in single precision. In this case all internal computations are made in single precision.
Note that for double precision accuracy (iparm(28)=0) refinement steps can be calculated in quad/double precision depending on the sign of iparm(8). For single precision accuracy these computations are made in double/single precision.
Default value of iparm(28) is 0 - double precision ***.
-- Notes –
* Parallel Direct Sparse Solver Interface
** Before using the single precision mode for Pardiso, you need to ensure that the input matrixes are well-conditioned.
You can use MKL subroutine zgesvd that computes the singular values as well as the condition number of the input matrix. It will help you to decide what precision you should use.
*** Please note that iparm(28) value is stored in the PARDISO handle between PARDISO calls, so the precision mode can be changed only on the solver's phase 1.
This article applies to:
Tools,
Intel® Math Kernel Library Knowledge Base
Comments (0) 
Trackbacks (0)
Leave a comment 