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

Pardiso gives segmentation fault

Areg_G_
Beginner
1,106 Views

Hi,

I am trying to diagonalize matrix with Arpack using Pardiso. For small sizes of the matrix everything works fine, but for slightly larger matrices (7300x7300) Pardiso gives segmentation fault. When I run under gdb I get the following backtrace

#0  0x00007ffff4379220 in mkl_pds_lp64_metis_pqueueupdateup ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_core.so
#1  0x00007ffff437f681 in mkl_pds_lp64_metis_fm_2waynoderefine_onesided ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_core.so
#2  0x00007ffff437ff81 in mkl_pds_lp64_metis_refine2waynode ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_core.so
#3  0x00007ffff437018f in mkl_pds_lp64_metis_mlevelnodebisectionmultiple ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_core.so
#4  0x00007ffff19bbc7c in mkl_pds_lp64_metis_mlevelnesteddissection_pardiso ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
#5  0x00007ffff19bbf8d in mkl_pds_lp64_metis_mlevelnesteddissection_pardiso ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
#6  0x00007ffff19bbf8d in mkl_pds_lp64_metis_mlevelnesteddissection_pardiso ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
#7  0x00007ffff19bbf8d in mkl_pds_lp64_metis_mlevelnesteddissection_pardiso ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
#8  0x00007ffff437137f in mkl_pds_lp64_metis_nodend_vbsr_pardiso ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_core.so
#9  0x00007ffff4391b60 in mkl_pds_lp64_pds_nested_disection ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_core.so
#10 0x00007ffff438d199 in mkl_pds_lp64_pds_reordering ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_core.so
#11 0x00007ffff438cbf4 in mkl_pds_lp64_dist_pardiso ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_core.so
#12 0x00007ffff4618a6d in mkl_pds_lp64_pardiso ()
   from /home/aghazary/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64_lin/libmkl_core.so
#13 0x000055555555c3dd in GenMatProdShift::perform_op (this=0x7fffffffd670, xIn=0x555555903270, yOut=0x55555591ff20) at diag.cpp:119
#14 0x000055555555cb0d in calcEValues (baseHam=..., op=..., evalues=0x555555865640, evecs=0x7fffeccf3010, shiftMethod=true,
    neigs=40) at diag.cpp:224
#15 0x0000555555556128 in main () at main.cpp:74

which is not particularly illuminating. I am attaching my code, which is slightly complicated, but pardiso code is in diag.cpp and I am also attaching resulting sparse matrix in CSR format.

 

Please let me know if you need further details.

 

Thanks,

Areg Ghazaryan

0 Kudos
2 Replies
Areg_G_
Beginner
1,106 Views

Ok I figured out, if I use Hermitian matrix I need to provide to Pardiso only upper part. If I provide full matrix it gives the segmentation fault.

Thanks.

Areg

0 Kudos
Kirill_V_Intel
Employee
1,106 Views

Yep, that's how it works.
Let us know if you encounter any other issues when using PARDISO.

Best,
Kirill

0 Kudos
Reply