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,689 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,671 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,672 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,665 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,660 Views

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


0 Kudos
Cayo_G_
Novice
1,640 Views
0 Kudos
Gennady_F_Intel
Moderator
1,633 Views

ok, thanks for the update


0 Kudos
Gennady_F_Intel
Moderator
1,633 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