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

mkl -- libmkl_mc.so -- error

diedro
Beginner
343 Views
hi everyone,
I wrote this simple code to test matrix inversion:
[bash]PROGRAM inversione
USE LAPACK95
IMPLICIT NONE

  INTEGER :: Info
  REAL,   DIMENSION(2,2)    :: AA
  INTEGER,DIMENSION(2)      :: IPIV


    AA(1,1) = 3.d0
    AA(1,2) = 2.d0
    AA(2,1) = 2.d0
    AA(2,1) = 20.d0
    CALL GETRF(AA,IPIV,info)  !lapack95
    CALL GETRI(AA,IPIV,info)  !lapack95

    WRITE(*,*) AA

END PROGRAM[/bash]
Then I compile it with:
[bash] ifort -r8 *.f90 -L$MKLPATH/lib/em64t  -lmkl_blas95_ilp64 -lmkl_lapack95_ilp64 -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread[/bash]
However, when I run it I get the following error:
[bash]forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source             
libmkl_mc.so       00002AF5FF046269  Unknown               Unknown  Unknown
[/bash]
The strange thing is that I have some other program with the inversion, last week they run, now I get the same error.
What is going on?
0 Kudos
3 Replies
Chao_Y_Intel
Moderator
343 Views

Hello,

IPL64 interface suppose input integer it 64 bit integer i. From the compiling switch, the real data is 64 bit double with "-r8", but the input integer is 32 bit integer. Could you try to link with LP64 interface? -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread

Thanks,
Chao

0 Kudos
diedro
Beginner
343 Views
hi,
I do not why but noe it seems to work:
I went again to intel web site and now I compile with:
[bash]~$ ifort -r8 *.f90 -lmkl_blas95_lp64 -lmkl_lapack95_lp64 -mkl=sequential
[/bash]
thanks
0 Kudos
TimP
Honored Contributor III
343 Views
It's a fairly common usage to set ifort -integer-size 64 and then link against ilp64 libraries. As already mentioned, default integer size in ifort is 32 (corresponding to lp64) unless you set one of the options (integer-size|i8) to change it.
0 Kudos
Reply