Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6956 Discussions

Pardiso crashes in MKL 10.3 (worked in 10.2.3)

Rawlins__David
Beginner
284 Views
Hi,

I recently upgrated to the MKL version 10.3 from 10.2.3. I don't see any changes in the way Pardiso is called, but I'm getting a segfault error when calling pardiso with phase = 22 where I was not before. Here is the error I an getting:

Program received signal SIGSEGV, Segmentation fault.
0x0000000000598f7d in mkl_pds_lp64_pardiso_c ()

Have you seen this problem before?

Thanks,

Dave

0 Kudos
1 Solution
Konstantin_A_Intel
284 Views
Hi,
It seems like a message catalog from an old version of MKL was used instead of the newest one.
Could you please report your NLSPATH variable value? BTW, am I right that your OS is linux?
Regards,
Konstantin

View solution in original post

0 Kudos
5 Replies
Rawlins__David
Beginner
284 Views
I ran the sample problem pardiso_sym_c.c with the MKL versions 10.2.3 and 10.3. I've pasted the output below. Note that version 10.3 terminated with a seg fault.

This is the output from 10.2.3:

=== PARDISO is running in In-Core mode, because iparam(60)=0 ===


================ PARDISO: solving a symmetric indef. system ================


Summary PARDISO: ( reorder to reorder )
================

Times:
======
Time fulladj: 0.000005 s
Time reorder: 0.000070 s
Time symbfct: 0.000028 s
Time malloc : 0.000040 s
Time total : 0.000252 s total - sum: 0.000109 s

Statistics:
===========
< Parallel Direct Factorization with #processors: > 1
< Numerical Factorization with Level-3 BLAS performance >

< Linear system Ax = b>
#equations: 8
#non-zeros in A: 18
non-zeros in A (%): 28.125000

#right-hand sides: 1

< Factors L and U >
#columns for each panel: 128
#independent subgraphs: 0
< Preprocessing with state of the art partitioning metis>
#supernodes: 5
size of largest supernode: 4
number of nonzeros in L 29
number of nonzeros in U 1
number of nonzeros in L+U 30

Reordering completed ...
Number of nonzeros in factors = 30
Number of factorization MFLOPS = 0 Percentage of computed non-zeros for LL^T factorization
0 % 10 % 17 % 31 % 44 % 100 %

================ PARDISO: solving a symmetric indef. system ================


Summary PARDISO: ( factorize to factorize )
================

Times:
======
Time A to LU: 0.000000 s
Time numfct : 0.000121 s
Time malloc : 0.000009 s
Time total : 0.000130 s total - sum: 0.000001 s

Statistics:
===========
< Parallel Direct Factorization with #processors: > 1
< Numerical Factorization with Level-3 BLAS performance >

< Linear system Ax = b>
#equations: 8
#non-zeros in A: 18
non-zeros in A (%): 28.125000

#right-hand sides: 1

< Factors L and U >
#columns for each panel: 128
#independent subgraphs: 0
< Preprocessing with state of the art partitioning metis>
#supernodes: 5
size of largest supernode: 4
number of nonzeros in L 29
number of nonzeros in U 1
number of nonzeros in L+U 30
gflop for the numerical factorization: 0.000000

gflop/s for the numerical factorization: 0.000605


Factorization completed ...
================ PARDISO: solving a symmetric indef. system ================


Summary PARDISO: ( solve to solve )
================

Times:
======
Time solve : 0.000019 s
Time total : 0.000042 s total - sum: 0.000023 s

Statistics:
===========
< Parallel Direct Factorization with #processors: > 1
< Numerical Factorization with Level-3 BLAS performance >

< Linear system Ax = b>
#equations: 8
#non-zeros in A: 18
non-zeros in A (%): 28.125000

#right-hand sides: 1

< Factors L and U >
#columns for each panel: 128
#independent subgraphs: 0
< Preprocessing with state of the art partitioning metis>
#supernodes: 5
size of largest supernode: 4
number of nonzeros in L 29
number of nonzeros in U 1
number of nonzeros in L+U 30
gflop for the numerical factorization: 0.000000

gflop/s for the numerical factorization: 0.000605


Solve completed ...
The solution of the system is:
x [0] = -0.041860
x [1] = -0.003413
x [2] = 0.117250
x [3] = -0.112640
x [4] = 0.024172
x [5] = -0.107633
x [6] = 0.198720
x [7] = 0.190383

==================================

This is the output from 10.3:


Zero Pivot detected


reorder
The local (internal) PARDISO version is : 103000115
1-based array indexing is turned ON
PARDISO double precision computation is turned ON
METIS algorithm at reorder step is turned ON
Single-level factorization algorithm is turned ON
Scaling is turned ON


======Times: Time parlist:Times: Time A to LU:
Time numfct :

Time malloc :
Time cgs :
Time spent in calculations of symmetric matrix portrait(fulladj): #equations: -1139805488
Time spent in reordering of the initial matrix(reorder) : #equations: -1139805488
Time spent in symbolic factorization(symbfct) : #equations: -1139805488
Time spent in in allocation of internal data structures(malloc) : #equations: -1139805488
Time spent in additional calculations : #equations: -1139805488
Total time spent : #equations: -1139805488

#non-zeros in A: 2
Time solve :
#non-zeros in A: 1
#right-hand sides: 2

< Factors L and U >
#columns for each panel: 8
#independent subgraphs: 18
#independent subgraphs: 215

< with multiple minimum degree on the separator nodes >

< no multiple minimum degree on the separator nodes >
#supernodes: 128
size of largest supernode: 0
number of nonzeros in U 2
gflop for the numerical factorization: 0.000000
||A|| 0.000000
L&U for matrix number 29 deleted
Input error is not equal to ZERO, error = 1
Segmentation fault
0 Kudos
Konstantin_A_Intel
285 Views
Hi,
It seems like a message catalog from an old version of MKL was used instead of the newest one.
Could you please report your NLSPATH variable value? BTW, am I right that your OS is linux?
Regards,
Konstantin
0 Kudos
Rawlins__David
Beginner
284 Views
Yes, I am using Linux 64 bit. You're right that the NLSPATH variable is pointing to an older version of the MKL. I'll get this fixed and see what happens.

Thanks!

Dave

> echo $NLSPATH
/opt/intel/mkl/10.2.3.029/lib/em64t/locale/%l_%t/%N:/usr/sci/linux64/intel/Compiler/11.0/081/lib/intel64/locale/%l_%t/%N:/usr/sci/Linux64/intel/Compiler/11.1/046/idb/intel64/locale/%l_%t/%N:/usr/sci/linux64/intel/Compiler/11.0/083/lib/intel64/locale/%l_%t/%N:/opt/intel/mkl/10.2.3.029/lib/em64t/locale/%l_%t/%N:/usr/sci/linux64/intel/Compiler/11.0/081/lib/intel64/locale/%l_%t/%N:/usr/sci/Linux64/intel/Compiler/11.1/046/idb/intel64/locale/%l_%t/%N:/usr/sci/linux64/intel/Compiler/11.0/083/lib/intel64/locale/%l_%t/%N

0 Kudos
Rawlins__David
Beginner
284 Views
I fixed the issues regarding the NLSPATH variable, but then had a problem with the linker finding libiomp5. I figured out that it was moved from mkl/lib to compiler/lib. That fixed the problem.

Thanks,

Dave
0 Kudos
Gennady_F_Intel
Moderator
284 Views
Dave,
yes, libiomp was moved to that folder intentionally
because of this is the common resource using by another components like Compiler, IPP and MKL.
--Gennady
0 Kudos
Reply