Community
cancel
Showing results for 
Search instead for 
Did you mean: 
diedro
Beginner
64 Views

mkl -- libmkl_mc.so -- error

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
Employee
64 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

diedro
Beginner
64 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
TimP
Black Belt
64 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.
Reply