Summary of API differences between Intel® MKL PARDISO and University of Basel PARDISO* 4.0.0

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 64-bit Intel MKL libraries. PARDISO will return an error code (-12) if a program calling pardiso_64 is linked to the 32-bit libraries.

Routine arguments differences

PARDISO* 4.0.0 has additional argument dparm array of type REAL and length 64 that is used for a multi-recursive 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 331-333 added to perform forward, diagonal, and backward substitution

n

INTEGER

same

a

REAL/COMPLEX

same

ia(n+1)

INTEGER


Supports 0-based indexing

ja(*)

INTEGER


Supports 0-based 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 multi-recursive 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 32-bit and 64-bit 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 right-hand side and sparse solution

Not used

32

Use the multi-recursive 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: out-of-core (OOC) or in-core (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


 

有关编译器优化的更完整信息,请参阅优化通知