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

Linking to BLAS and Pardiso

Rawlins__David
Beginner
500 Views
I'm having problems linking to the BLAS and Pardiso on a linux IA64. Here is my compile command (I've added some carriage returns to make it legible):

____________________________________________________

icpc -o febio.alt -DLINUX -DPSLDLT -DSUPERLU -DPARDISO
-I/home/sci/rawlins/Projects/SuperLU_3.1/SRC/ -I.. *.cpp -O3
../lib/fecore_altix.a
/home/sci/rawlins/Projects/SuperLU_3.1/lib/libsuperlu_3.1_altix.a
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_intel_lp64.a
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_intel_thread.a
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a
/usr/sci/LinuxIA64/intel/mkl/lib/64/libiomp5.a
-lpthread -L/usr/lib -lscs_mp -mp
_____________________________________________________

And here is a sample of the errors I'm getting:
______________________________________________________

/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a(blklu_unsym_ooc_lp64.o)(.text+0x37f2): In function `mkl_pds_lp64_blklu_unsym_ooc_pardiso':
: undefined reference to `mkl_blas_lp64_dtrsm'
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a(blklu_unsym_ooc_lp64.o)(.text+0x38e2): In function `mkl_pds_lp64_blklu_unsym_ooc_pardiso':
: undefined reference to `mkl_blas_lp64_dgemm'
______________________________________________________

Any help would be appreciated.

Thanks,

Dave
0 Kudos
10 Replies
Gennady_F_Intel
Moderator
500 Views
please try to use the following linking line:
ifort myprog.f -L$MKLPATH -I$MKLINCLUDE -lmkl_solver_lp64
-Wl,--start-group $MKLPATH/libmkl_intel_lp64.a
$MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group
-liomp5 lpthread
Where, for example,$MKLPATH=/opt/intel/mkl/10.1/lib/64
--Gennady

0 Kudos
Rawlins__David
Beginner
500 Views
Gennady,

Thanks for the quick reply. What should MKLINCLUDE point to?

Dave

Quoting - Gennady Fedorov (Intel)
please try to use the following linking line:
ifort myprog.f -L$MKLPATH -I$MKLINCLUDE -lmkl_solver_lp64
-Wl,--start-group $MKLPATH/libmkl_intel_lp64.a
$MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group
-liomp5 lpthread
Where, for example,$MKLPATH=/opt/intel/mkl/10.1/lib/64
--Gennady


0 Kudos
Gennady_F_Intel
Moderator
500 Views
opps,
$MKLINCLUDE=/opt/intel/mkl/10.1/include

0 Kudos
Rawlins__David
Beginner
500 Views
Thanks, I think the grouping did the trick.

Dave

Quoting - Gennady Fedorov (Intel)
opps,
$MKLINCLUDE=/opt/intel/mkl/10.1/include


0 Kudos
Rawlins__David
Beginner
500 Views
Using your suggestion below worked a couple of weeks ago, but I'm running into similar problems again. Here is my compile command and a sample of the errors I am getting:

icpc -o febio.altix
-DLINUX -DSUPERLU -DPARDISO -DPSLDLT
-I/home/sci/rawlins/Projects/SuperLU_3.1/SRC/
-I/usr/sci/LinuxIA64/intel/mkl/include/ -I..
*.o -O3
../lib/fecore_altix.a
/home/sci/rawlins/Projects/SuperLU_3.1/lib/libsuperlu_3.1_altix.a
-Wl,--start-group
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_intel_lp64.a
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_intel_thread.a
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a
-Wl,--end-group
/usr/sci/LinuxIA64/intel/mkl/lib/64/libiomp5.a
-lpthread
-L/usr/lib -lscs_mp -mp

/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a(pardiso_lp64.o)(.text+0xb2): In function `mkl_pds_lp64_pardiso':
: undefined reference to `mkl_pds_lp64_get_proc_pardiso'
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a(pardiso_lp64.o)(.text+0x282): In function `mkl_pds_lp64_pardiso':
: undefined reference to `mkl_pds_lp64_diag_pardiso'
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a(pardiso_lp64.o)(.text+0x2d2): In function `mkl_pds_lp64_pardiso':
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a(dgetf2_p_lp64.o)(.text+0x602): In function `mkl_pds_lp64_dgetf2_pardiso':
: undefined reference to `mkl_blas_lp64_dger'
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a(dgetf2_p_lp64.o)(.text+0x702): In function `mkl_pds_lp64_dgetf2_pardiso':
: undefined reference to `mkl_blas_lp64_dswap'
/usr/sci/LinuxIA64/intel/mkl/lib/64/libmkl_core.a(dgetf2_p_lp64.o)(.text+0x742): In function `mkl_pds_lp64_dgetf2_pardiso':
: undefined reference to `mkl_blas_lp64_dswap'


Quoting - Gennady Fedorov (Intel)
please try to use the following linking line:
ifort myprog.f -L$MKLPATH -I$MKLINCLUDE -lmkl_solver_lp64
-Wl,--start-group $MKLPATH/libmkl_intel_lp64.a
$MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group
-liomp5 lpthread
Where, for example,$MKLPATH=/opt/intel/mkl/10.1/lib/64
--Gennady


0 Kudos
Gennady_F_Intel
Moderator
500 Views
I tried to repeat the issue without succes.All is ok on my side.
I uploaded to this tread makefile and pardiso.f i used for reproducing the issue.
You can try to use these files as well.
please let me know mkl's Package IDinstalled ( see ../doc/mklsupport.txt file )
--gif
0 Kudos
Gennady_F_Intel
Moderator
500 Views
I tried to repeat the issue without succes.All is ok on my side.
I uploaded to this tread makefile and pardiso.f i used for reproducing the issue.
You can try to use these files as well.
please let me know mkl's Package IDinstalled ( see ../doc/mklsupport.txt file )
--gif

0 Kudos
Gennady_F_Intel
Moderator
500 Views
sorry - I've forget to add the additional info, probably will helful.

[root@nntsed01-4i2 work]# make
ifort -I/opt/intel/mkl/10.1.0.015/include pardiso.f -L/opt/intel/mkl/10.1.0.015/lib/64
/opt/intel/mkl/10.1.0.015/lib/64/libmkl_solver_lp64.a
/opt/intel/mkl/10.1.0.015/lib/64/libmkl_intel_lp64.a
-Wl,--start-group
/opt/intel/mkl/10.1.0.015/lib/64/libmkl_intel_thread.a /opt/intel/mkl/10.1.0.015/lib/64/libmkl_core.a
-Wl,--end-group
-L/opt/intel/mkl/10.1.0.015/lib/64 -liomp5 -lpthread -lm -o test.out
[root@nntsed01-4i2 work]# ./test.out

and ( cat /opt/cpuinfo )

my CPU info :
processor : 3
vendor : GenuineIntel
arch : IA-64
family : Itanium 2
model : 1
revision : 5
archrev : 0
features : branchlong
cpu number : 0
cpu regs : 4
cpu MHz : 1495.933995
itc MHz : 1495.933995
BogoMIPS : 2239.75


0 Kudos
Rawlins__David
Beginner
500 Views
I tried to repeat the issue without succes. All is ok on my side.
I uploaded to this tread makefile and pardiso.f i used for reproducing the issue.
You can try to use these files as well.
please let me know mkl's Package ID installed ( see ../doc/mklsupport.txt file )
--gif

The package ID is l_mkl_p_10.1.1.019. I've been preoccupied with other projects, but I still have not been able to get this to compile.

Dave
0 Kudos
Rawlins__David
Beginner
500 Views
sorry - I've forget to add the additional info, probably will helful.

[root@nntsed01-4i2 work]# make
ifort -I/opt/intel/mkl/10.1.0.015/include pardiso.f -L/opt/intel/mkl/10.1.0.015/lib/64
/opt/intel/mkl/10.1.0.015/lib/64/libmkl_solver_lp64.a
/opt/intel/mkl/10.1.0.015/lib/64/libmkl_intel_lp64.a
-Wl,--start-group
/opt/intel/mkl/10.1.0.015/lib/64/libmkl_intel_thread.a /opt/intel/mkl/10.1.0.015/lib/64/libmkl_core.a
-Wl,--end-group
-L/opt/intel/mkl/10.1.0.015/lib/64 -liomp5 -lpthread -lm -o test.out
[root@nntsed01-4i2 work]# ./test.out

and ( cat /opt/cpuinfo )

my CPU info :
processor : 3
vendor : GenuineIntel
arch : IA-64
family : Itanium 2
model : 1
revision : 5
archrev : 0
features : branchlong
cpu number : 0
cpu regs : 4
cpu MHz : 1495.933995
itc MHz : 1495.933995
BogoMIPS : 2239.75



Gennady,

I played around a bit more with your instructions and got things working. Thanks again for your help.

Dave
0 Kudos
Reply