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
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.
链接已复制
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.
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?
it is the same for ifort or icc, icl ....
ok, thanks for the update
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