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

DSS Solver multiple handles

Josue_L_
Beginner
759 Views

Hello,

In my code I have to solve a system of N-2 linear equations K+1 times (with k<10). What this means is that my matrix A (N-2*N-2) will be structurally the same for all K, only with different values. Initially I factored matrix A (with DSS_FACTOR_COMPLEX) every time I needed to solve the system for a different K. But since K<10, I was hoping to allocate the handle ( type(MKL_DSS_HANDLE), allocatable :: handle(:) -- allocate(handle(0:K)) ) and use DSS_FACTOR only once for every K  and then use DSS_SOLVE_COMPLEX(handle(k), MKL_DSS_DEFAULTS, RHS, 1, solutionout) to solve my system. It's also important to understand that the code then solves all K+1 systems thousands of times.

Unfortunately, the code exits with:
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source             
ruth6.exe          0000000110171F6E  for__signal_handl     Unknown  Unknown
libsystem_platfor  00007FFF8AA7F52A  _sigtramp             Unknown  Unknown
ruth6.exe          000000010F97FAD6  mkl_spblas_lp64_a     Unknown  Unknown

The most interesting here is that it actually solves all K+1 systems a few times (last time solved ~300 times) before exiting with this error.

Please help!!

 

 

 

 

 

0 Kudos
3 Replies
Gennady_F_Intel
Moderator
759 Views

Josue, what MKL version to you use?   2. Could you give us reproducer?  

0 Kudos
Josue_L_
Beginner
759 Views

Dear Gennady F.

Thank you for your reply. The MKL version that I'm using is 2017.4.181. And ifort (IFORT) 17.0.4 20170411

I've written a small reproducer of the problem which is not the actual code, is in fact a portion of a portion of the actual code. To compile this I used the following command line:

ifort DSStest.f90 -O3 -fp-model precise -fp-model source -heap-arrays -g -traceback -check all -fp-stack-check -check all -I${MKLROOT}/include/intel64/lp64 -I${MKLROOT}/include ${MKLROOT}/lib/libmkl_blas95_lp64.a ${MKLROOT}/lib/libmkl_lapack95_lp64.a ${MKLROOT}/lib/libmkl_intel_lp64.a ${MKLROOT}/lib/libmkl_sequential.a ${MKLROOT}/lib/libmkl_core.a -lpthread -lm -ldl -o DSStest.exe

Even if you don't get the above error at your first try, please compile and run it 7 or 8 times. This reproducer gave me the exact same error...
Compiled and run the code on a macbook pro 2.3 GHz Intel Core i7.

EDIT: I've also added the zipped .dSYM

Best,
Josué

 

 

0 Kudos
Gennady_F_Intel
Moderator
759 Views

I tried to reproduce the case with the latest MKL 2018 u1 on win10.  

the compilation is much simpler : ifort /Qmkl DSStest.f90   ( MKL links with LP64 + threading libs). Running the executable 10 times - I don't see problems. I only added a couple of lines of the code to print version of mkl. Here is the one of outputs i obtained on my side:

C:\Forums\u753922>DSStest.exe
           1
           2
           3
.................... 
        998
         999
        1000
Intel(R) Math Kernel Library Version 2018.0.1 Product Build 20171007 for Intel(R) 64 architecture applications
 
run of ** completed succesfully
0 Kudos
Reply