Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
7234 Discussions

Problem with correct linking of lapack libraries for 64bits.

Cayo_G_
Novice
1,693 Views

Hello all,

I have a program in which I want to perform a diagonalization of a very large matrix using dsyevd subroutine routine. The dimension of my matrix is 80592, so I need to use integers of 11 digits.

For smaller matrices, I was compiling using the flags "-mkl -CB -heap-arrays -qopenmp -mkl -fpic -mcmodel=large" and everything was fine

But now that I need to use 64 bits integers, I am compiling with "-i8 -I${MKLROOT}/include/intel64/ilp64 -mkl=parallel -CB -heap-arrays -qopenmp -mkl -fpic -mcmodel=large -I${MKLROOT}/include/intel64/ilp64 ${MKLROOT}/lib/intel64/libmkl_blas95_ilp64.a ${ MKLROOT}/lib/intel64/libmkl_lapack95_ilp64.a -liomp5 -lpthread -lm -ldl", which I took from the Intel MKL Link Line advisor, using dynamic linking.

So, when I run my code and reach the part where I call dsyevd, I get the following error:

 

forrtl: severe (174): SIGSEGV, segmentation fault occurred

 

I am trying also with a simple small Identity matrix just to test the 64 bits linking. I get the same error.

Many thanks in advance,

 

Cayo Gonçalves

0 Kudos
1 Solution
Gennady_F_Intel
Moderator
1,675 Views

please remove -mkl=parallel option and link the example explicitly:

icc -DMKL_ILP64 -I${MKLROOT}/include  -L${MKLROOT}/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl

and declare all integer as MKL_INT into your example.


View solution in original post

0 Kudos
6 Replies
Gennady_F_Intel
Moderator
1,676 Views

please remove -mkl=parallel option and link the example explicitly:

icc -DMKL_ILP64 -I${MKLROOT}/include  -L${MKLROOT}/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl

and declare all integer as MKL_INT into your example.


0 Kudos
Cayo_G_
Novice
1,669 Views

Thank you for your answer Gennady. Sorry, I didn't realized that I didn't mentioned that I am using ifort, not icc. Does it make a difference for you solution?

0 Kudos
Gennady_F_Intel
Moderator
1,664 Views

it is the same for ifort or icc, icl ....


0 Kudos
Cayo_G_
Novice
1,644 Views
0 Kudos
Gennady_F_Intel
Moderator
1,637 Views

ok, thanks for the update


0 Kudos
Gennady_F_Intel
Moderator
1,637 Views

This issue has been resolved and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only


0 Kudos
Reply