Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.

MKL PARDISO produces FPE

xian-zhong_guous_cd-
428 Views

With the attached general matrix and rhs, PARDISO solution contains NaN.

Major version: 11
Minor version: 1
Update version: 1
Product status:  Product
Build: n20131010
Processor optimization: Intel(R) Advanced Vector Extensions (Intel(R) AVX) Enabled Processor

linux 64 bit

PARDISO_matrix.txt format:
n
index base (0 means 0 based)
nz
i j a (nonzeros)

PARDISO_rhs.txt and PARDISO_sol.txt format:
n
dense/sparse (1 for dense and 0 for sparse)
index base(0 means 0 based)
nz (for dense format, nz=0)
i,b (nonzeros)

 

0 Kudos
12 Replies
Gennady_F_Intel
Moderator
428 Views

Have you evaluated MKL 11.3? Such sort of problems has been fixed into this version.

xian-zhong_guous_cd-
428 Views

Same error using mkl 11.3.3.

Alexander_K_Intel2
428 Views

Hi,

Can you sent me your set of iparm and other pardiso parameters? With default parameters I have no Nans in result:

i   x   b

0 -4.959544e+12 1.000000e+00
1 6.805074e+14 -4.585740e-07
2 -4.959372e+12 2.000000e+00
3 6.805046e+14 -2.292070e-07
4 -4.959751e+12 3.000000e+00
5 6.805064e+14 -4.585740e-07
6 2.673112e+13 4.000000e+00
7 2.673106e+13 -2.292070e-07
8 -4.959035e+12 5.000000e+00
9 6.805016e+14 -4.585740e-07
10 2.673123e+13 6.000000e+00

Thanks,

Alex 

xian-zhong_guous_cd-
428 Views

MKL PARDISO is called multiple times. Enclosed are the iparm for each call and solution is bad at last call. I notice some of iparam values becomes big numbers after the symbolic which are suspicious.


iparm for phase = 11
1
2
1
0
0
0
0
0
0
13
1
0
1
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
iparm for phase = 22
1
2
1
0
0
0
0
0
0
13
1
-1
1
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
iparm for phase = 11
1
2
1
0
0
0
0
0
0
13
1
0
1
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
iparm for phase = 22
1
2
1
0
0
0
0
0
0
13
1
-1
1
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
iparm for phase = 11
1
2
1
0
0
0
0
0
0
13
1
0
1
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
iparm for phase = 22
1
2
1
0
0
0
0
0
0
13
1
0
1
0
319964
220367
205251
51849976
12857
0
0
0
0
0
0
0
0
1
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
319964
144327
1568
103911000
iparm for phase = 11
1
2
1
0
0
0
0
0
0
13
1
0
1
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
iparm for phase = 22
1
2
1
0
0
0
0
0
0
13
1
-1
1
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
iparm for phase = 11
1
2
1
0
0
0
0
0
0
13
1
0
1
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
iparm for phase = 22
1
2
1
0
0
0
0
0
0
13
1
0
1
0
44089
32155
30783
7666270
1146
0
0
0
0
0
0
0
0
1
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
44089
27467
1028
103911000

A floating point exception has occurred: floating point exception [Invalid operation].

Alexander_K_Intel2
428 Views

Hi,

Are you call pardiso in loop with same matrix? I just try to implement reproducer of your issue. And if yes do you call pardiso with ido=-1 to free the memory?

Thanks,

Alex

xian-zhong_guous_cd-
428 Views

PARDISO is called multiple time, each time with different matrix. Enclosed are my output message. cleanUpPARDISO calls PARDISO with phase = -1.


Arithmetic type=float; matrix type=general; N=2727; NZ(A)=2727.
MKLPARDISO::init starts Tue Aug 16 09:53:29 2016
MKLPARDISO::init ends Tue Aug 16 09:53:29 2016
MKLPARDISO::symbolicFact starts Tue Aug 16 09:53:29 2016
MKLPARDISO::symbolicFact ends Tue Aug 16 09:53:29 2016
Arithmetic type=float; matrix type=general; N=2727; NZ(A)=2727.
Memory Estimate(MB)
--------------------------------------------------------------------------------
mode                 mem(A)               mem(fact)            mem                 
In-core              0                    0                    0                   
Out-of-core          0                    0                    0                   
--------------------------------------------------------------------------------
MKLPARDISO::numericalFact starts Tue Aug 16 09:53:29 2016
MKLPARDISO::numericalFact ends Tue Aug 16 09:53:29 2016
MKLPARDISO::solve starts Tue Aug 16 09:53:29 2016
MKLPARDISO::solve ends Tue Aug 16 09:53:29 2016
MKLPARDISO::cleanUpPARDISO starts Tue Aug 16 09:53:29 2016
MKLPARDISO::cleanUpPARDISO ends Tue Aug 16 09:53:29 2016
Arithmetic type=float; matrix type=general; N=81; NZ(A)=81.
MKLPARDISO::init starts Tue Aug 16 09:53:29 2016
MKLPARDISO::init ends Tue Aug 16 09:53:29 2016
MKLPARDISO::symbolicFact starts Tue Aug 16 09:53:29 2016
MKLPARDISO::symbolicFact ends Tue Aug 16 09:53:29 2016
Arithmetic type=float; matrix type=general; N=81; NZ(A)=81.
Memory Estimate(MB)
--------------------------------------------------------------------------------
mode                 mem(A)               mem(fact)            mem                 
In-core              0                    0                    0                   
Out-of-core          0                    0                    0                   
--------------------------------------------------------------------------------
MKLPARDISO::numericalFact starts Tue Aug 16 09:53:29 2016
MKLPARDISO::numericalFact ends Tue Aug 16 09:53:29 2016
MKLPARDISO::solve starts Tue Aug 16 09:53:29 2016
MKLPARDISO::solve ends Tue Aug 16 09:53:29 2016
MKLPARDISO::cleanUpPARDISO starts Tue Aug 16 09:53:29 2016
MKLPARDISO::cleanUpPARDISO ends Tue Aug 16 09:53:29 2016
Arithmetic type=float; matrix type=general; N=231360; NZ(A)=5144569.
MKLPARDISO::init starts Tue Aug 16 09:53:29 2016
MKLPARDISO::init ends Tue Aug 16 09:53:30 2016
MKLPARDISO::symbolicFact starts Tue Aug 16 09:53:30 2016
MKLPARDISO::symbolicFact ends Tue Aug 16 09:53:34 2016
Arithmetic type=float; matrix type=general; N=231360; NZ(A)=5144569.
Memory Estimate(MB)
--------------------------------------------------------------------------------
mode                 mem(A)               mem(fact)            mem                 
In-core              39                   415                  454                 
Out-of-core          39                   312                  351                 
--------------------------------------------------------------------------------
MKLPARDISO::numericalFact starts Tue Aug 16 09:53:34 2016
MKLPARDISO::numericalFact ends Tue Aug 16 09:53:36 2016
MKLPARDISO::solve starts Tue Aug 16 09:53:36 2016
MKLPARDISO::solve ends Tue Aug 16 09:53:36 2016
MKLPARDISO::cleanUpPARDISO starts Tue Aug 16 09:53:36 2016
MKLPARDISO::cleanUpPARDISO ends Tue Aug 16 09:53:36 2016
Arithmetic type=float; matrix type=symmetric positive definite; N=81; NZ(A)=81.
MKLPARDISO::init starts Tue Aug 16 09:53:38 2016
MKLPARDISO::init ends Tue Aug 16 09:53:38 2016
MKLPARDISO::symbolicFact starts Tue Aug 16 09:53:38 2016
MKLPARDISO::symbolicFact ends Tue Aug 16 09:53:38 2016
Arithmetic type=float; matrix type=symmetric positive definite; N=81; NZ(A)=81.
Memory Estimate(MB)
--------------------------------------------------------------------------------
mode                 mem(A)               mem(fact)            mem                 
In-core              0                    0                    0                   
Out-of-core          0                    0                    0                   
--------------------------------------------------------------------------------
MKLPARDISO::numericalFact starts Tue Aug 16 09:53:38 2016
MKLPARDISO::numericalFact ends Tue Aug 16 09:53:38 2016
MKLPARDISO::solve starts Tue Aug 16 09:53:38 2016
MKLPARDISO::solve ends Tue Aug 16 09:53:38 2016
MKLPARDISO::cleanUpPARDISO starts Tue Aug 16 09:53:38 2016
MKLPARDISO::cleanUpPARDISO ends Tue Aug 16 09:53:38 2016
Arithmetic type=float; matrix type=general; N=58320; NZ(A)=520078.
MKLPARDISO::init starts Tue Aug 16 09:53:38 2016
MKLPARDISO::init ends Tue Aug 16 09:53:38 2016
MKLPARDISO::symbolicFact starts Tue Aug 16 09:53:38 2016
MKLPARDISO::symbolicFact ends Tue Aug 16 09:53:39 2016
Arithmetic type=float; matrix type=general; N=58320; NZ(A)=520078.
Memory Estimate(MB)
--------------------------------------------------------------------------------
mode                 mem(A)               mem(fact)            mem                 
In-core              4                    61                   65                  
Out-of-core          4                    43                   47                  
--------------------------------------------------------------------------------
MKLPARDISO::numericalFact starts Tue Aug 16 09:53:39 2016
MKLPARDISO::numericalFact ends Tue Aug 16 09:53:39 2016
MKLPARDISO::solve starts Tue Aug 16 09:53:39 2016
MKLPARDISO::solve ends Tue Aug 16 09:53:39 2016
MKLPARDISO::cleanUpPARDISO starts Tue Aug 16 09:53:39 2016
MKLPARDISO::cleanUpPARDISO ends Tue Aug 16 09:53:39 2016
A floating point exception has occurred: floating point exception [Invalid operation].

Alexander_K_Intel2
428 Views

Can I ask you to provide full reproducer that call set of matrix to play with? I cannot reproduce issue with one matrix

Thanks,

Alex

xian-zhong_guous_cd-
428 Views

I've attached the all matrices, rhs and sol for 5 calls.

xian-zhong_guous_cd-
428 Views

Any update? Thanks.

Alexander_K_Intel2
428 Views

Hi,

Could you also attach code that was aborted as you mentioned before? I implemented my version of program and it passed correctly (please see attached output file)

Thanks,

Alex 

xian-zhong_guous_cd-
428 Views

I solve in single precision yet you are solving in double precision.

Alexander_K_Intel2
428 Views

HI,
I attach file with float precision run. Looks like the devil is in the details - can we connect directly to look at the code?
Thanks,

Alex

Reply