We have been using the Intel MKL and its Pardiso solver for quite some time, and did suddenly run into a problem where the solver would crash randomly when trying to solve one particular problem.
We were able to reproduce this in a small test application where the same problem (a 2D Poisson problem actually) is solved over and over again, and after a few thousand iterations, the solver would crash at this location:
MKLCrash.exe!mkl_pds_lp64_blkslvs1_omp_pardiso() + 0x1b26 bytes
MKLCrash.exe!__kmp_invoke_microtask() + 0x8c bytes Asm
MKLCrash.exe!__kmp_fork_call() + 0x9e8 bytes
MKLCrash.exe!__kmpc_fork_call() + 0x6c bytes
MKLCrash.exe!mkl_pds_lp64_blkslvs1_omp_pardiso() + 0x71f bytes
MKLCrash.exe!mkl_pds_lp64_sssslv_pardiso() + 0x117c bytes
MKLCrash.exe!mkl_pds_lp64_solve_pardiso() + 0x422 bytes
MKLCrash.exe!mkl_pds_lp64_do_all_pardiso_fc() + 0x15a2 bytes
MKLCrash.exe!mkl_pds_lp64_pardiso_c() + 0x18cd bytes
MKLCrash.exe!mkl_pds_lp64_pardiso() + 0x4a8 bytes
MKLCrash.exe!mkl_pds_lp64_dss_solve_real() + 0x2bb bytes
MKLCrash.exe!dss_solve_real() + 0x3f bytes
MKLCrash.exe!solver_crash_test() Line 358 C++
We were abel to reproduce this on Windows (using MKL 10.3) as well as OS X (using MKL 11). The crash location seems to be the same on both platforms. I've attached the source code for our test application as well as crash logs.
Our test application is really quite minimal, so I suspect a concurrency bug in the solver. Can anyone confirm this?
Gennady Fedorov (Intel) wrote:Hello Gennady, I've also met with similar problems when I'm using Pardiso. When it runs after several iterations, there are completely no responses from the workstation. I'm using Intel Composer XE 2013 & VS2010. Would you please also tell me the possible causes you've sent to Peter? Thanks for your help!
Peter, please see my private email to you
This issue has been fixed in MKL v.11.0 update 2 released yesterday. You can download this update from intel registration center and check the problem on your side.