Submitted by Sergey Solovev (Intel) on
Introduction
The release of PARDISO 4.0.0 from the University of Basel is not backward compatible and thus introduces some incompatibilities with the implementation of PARDISO that is available with the Intel® Math Kernel Library. This article outlines those places where the two interfaces have diverged.
PARDISO 4.0.0 introduces the additional routine pardisoinit which is to be called before the pardiso routine. Intel® MKL PARDISO does not have such a routine.In version 10.2 Update 6, Intel® MKL PARDISO introduces an additional interface function: pardiso_64. This interface is identical to that of pardiso except that it accepts and returns all integer data in the INTEGER*8 type. This new interface is supported only in the 64bit Intel MKL libraries. PARDISO will return an error code (12) if a program calling pardiso_64 is linked to the 32bit libraries.
Routine arguments differences
PARDISO* 4.0.0 has additional argument dparm array of type REAL and length 64 that is used for a multirecursive iterative linear solver. Intel® MKL PARDISO has no support for this solver and no argument dparm in the API. The two tables below outline the differences in the arguments to the respective PARDISO functions and the differences in interpretation of the IPARM array. A full description of the arguments and IPARM array for Intel MKL can be found in the PARDISO Parameter Tables.
PARDISO arguments compared
Argument name 
Argument type 
PARDISO* 4.0.0 
Intel® MKL PARDISO 
pt(64) 
INTEGER 
Content of array is different (for internal use only) 

maxfct 
INTEGER 
same 

mnum 
INTEGER 
same 

mtype 
INTEGER 
same 

phase 
INTEGER 
Use iparm(26) to split forward/backward substitutions 
Stages 331333 added to perform forward, diagonal, and backward substitution 
n 
INTEGER 
same 

a 
REAL/COMPLEX 
same 

ia(n+1) 
INTEGER 
Supports 0based indexing 

ja(*) 
INTEGER 
Supports 0based indexing 

perm(n) 
INTEGER 
same 

nrhs 
INTEGER 
same 

iparm(64) 
INTEGER 
Meaning of array entries is different (see the table below) 

msglvl 
INTEGER 
Cannot print multirecursive iterative solver statistics (no such solver) 

b(n,nrhs) 
REAL/COMPLEX 
same 

x(n,nrhs) 
REAL/COMPLEX 
same 

error 
INTEGER 
Error code 9 is not used 10 means no license file found 11 means license file expired 12 means wrong username or hostname 
9 means not enough memory for OOC 10 means problems with OOC temp files 11 means read/write problems with the OOC data file Error codes 12, 100, 101, 102, 103 are not used 
dparm(64) 
REAL 
Not present in the argument list 
The IPARM arrays compared
Id 
PARDISO* 4.0.0 
Intel® MKL PARDISO 

2 
Minimum degree and nested dissection algorithm 
Minimum degree, nested dissection and parallel version of the nested dissection algorithm 

3 
Number of processors 
Not used (MKL_NUM_THREADS environment variable and functions are used instead) 

12 
Solving the system with transpose matrix 
Not used 

24 
Parallel numerical factorization 
Not used 

25 
Parallel forward/backward solve 
Not used 

26 
Splitting of forward/backward solve 
Not used (use argument phase instead) 

27 
Not used 
Matrix checker 

28 
Parallel reordering for METIS 
Single or double precision of PARDISO (for parallel reordering use iparm(2)) 

29 
Switch between 32bit and 64bit factorization 
Not used (use iparm(28) to control accuracy) 

30 
Control the size of the supernodes 
Zero or negative pivots info 

31 
Partial solve for sparse righthand side and sparse solution 
Not used 

32 
Use the multirecursive iterative linear solver 
Not used 

33 
Determinant of a real symmetric indefinite matrix 
Not used 

34 
Identical solution independent on the number of processors 
Not used 

35 
Not used 
MKL 10.2.*: Not used 

MKL 10.3.0: C or Fortran style array indexing 

60 
Not used 
Specifies the PARDISO mode of operation: outofcore (OOC) or incore (InCore) 

61 
Not used 
Total peak memory at analysis and factorization phases 

62 
Not used 
Total double precision memory consumption at analysis and factorization phases 

63 
Not used 
Total double precision memory consumption at factorization and solution phases 

Add a Comment
Top(For technical discussions visit our developer forums. For site or software product issues contact support.)
Please sign in to add a comment. Not a member? Join today