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

how to link the MKL

guayigou
Начинающий
1 622Просмотр.
My all .f90 has been maked without any errors,but there are something wrong with making driver
why?
Thank you very much

guayigou@guayigou-laptop:~/work/atfem/SRC$ make driver
mpif90 -o atfem30_Linux main.o ../LIB/ATFEM.a /home/guayigou/work/atfem/MUMPS/MUMPS_4.8.1/lib//libdmumps.a /home/guayigou/work/atfem/MUMPS/MUMPS_4.8.1/lib//libmumps_common.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_scalapack_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_blacs_lp64.a /home/guayigou/work/atfem/MUMPS/MUMPS_4.8.1/PORD/lib/libpord.a -I/opt/intel/Compiler/11.1/059/mkl/include /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_blas95_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_lapack95_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_solver_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_blacs_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_scalapack_lp64.a -lpthread -lm
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dpotrf_lp64.o): In function `dpotrf_':
_dpotrf_lp64.c:(.text+0x32): undefined reference to `mkl_serv_setxer'
_dpotrf_lp64.c:(.text+0x41): undefined reference to `mkl_serv_set_progress'
_dpotrf_lp64.c:(.text+0x5d): undefined reference to `mkl_lapack_dpotrf'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dtrmv_lp64.o): In function `dtrmv_':
_dtrmv_lp64.c:(.text+0xd6): undefined reference to `mkl_blas_dtrmv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsyr2_lp64.o): In function `dsyr2_':
_dsyr2_lp64.c:(.text+0xae): undefined reference to `mkl_blas_dsyr2'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsyr_lp64.o): In function `dsyr_':
_dsyr_lp64.c:(.text+0x89): undefined reference to `mkl_blas_dsyr'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsymv_lp64.o): In function `dsymv_':
_dsymv_lp64.c:(.text+0xe4): undefined reference to `mkl_blas_dsymv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dswap_lp64.o): In function `dswap_':
_dswap_lp64.c:(.text+0x2a): undefined reference to `mkl_blas_dswap'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dgemv_lp64.o): In function `dgemv_':
_dgemv_lp64.c:(.text+0xd5): undefined reference to `mkl_blas_dgemv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_ddot_lp64.o): In function `ddot_':
_ddot_lp64.c:(.text+0x2a): undefined reference to `mkl_blas_ddot'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dcopy_lp64.o): In function `dcopy_':
_dcopy_lp64.c:(.text+0x2a): undefined reference to `mkl_blas_dcopy'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_daxpy_lp64.o): In function `daxpy_':
_daxpy_lp64.c:(.text+0x2a): undefined reference to `mkl_blas_daxpy'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dtrsm_lp64.o): In function `dtrsm_':
_dtrsm_lp64.c:(.text+0xe4): undefined reference to `mkl_blas_dtrsm'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dtrmm_lp64.o): In function `dtrmm_':
_dtrmm_lp64.c:(.text+0xe4): undefined reference to `mkl_blas_dtrmm'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsyrk_lp64.o): In function `dsyrk_':
_dsyrk_lp64.c:(.text+0xa8): undefined reference to `mkl_blas_dsyrk'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsyr2k_lp64.o): In function `dsyr2k_':
_dsyr2k_lp64.c:(.text+0xd7): undefined reference to `mkl_blas_dsyr2k'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsymm_lp64.o): In function `dsymm_':
_dsymm_lp64.c:(.text+0xd7): undefined reference to `mkl_blas_dsymm'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dgemm_lp64.o): In function `dgemm_':
_dgemm_lp64.c:(.text+0x123): undefined reference to `mkl_blas_dgemm'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_misc_mkl_xerbla_iface_u.o): In function `XERBLA':
../../../../serv/iface/_misc_mkl_xerbla_iface_u.c:(.text+0x2): undefined reference to `mkl_serv_default_xerbla'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_misc_mkl_progress_iface_u.o): In function `MKL_PROGRESS':
../../../../serv/iface/_misc_mkl_progress_iface_u.c:(.text+0x2): undefined reference to `mkl_serv_default_progress'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_avx_dtrsv.o): In function `mkl_blas_avx_dtrsv':
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x313): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x456): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x601): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x7f5): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x99a): undefined reference to `mkl_blas_dgemv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_avx_dtrsv.o):../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0xb07): more undefined references to `mkl_blas_dgemv' follow
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_def_dger.o): In function `mkl_blas_def_dger':
../../../../blas/kernel/def/level2/32e/dger.f:(.text+0x122): undefined reference to `mkl_blas_daxpy'
../../../../blas/kernel/def/level2/32e/dger.f:(.text+0x18e): undefined reference to `mkl_blas_daxpy'
../../../../blas/kernel/def/level2/32e/dger.f:(.text+0x229): undefined reference to `mkl_blas_daxpy'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_p4n_dtrsv.o): In function `mkl_blas_p4n_dtrsv':
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x313): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x456): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x601): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x7f5): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x99a): undefined reference to `mkl_blas_dgemv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_p4n_dtrsv.o):../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0xb07): more undefined references to `mkl_blas_dgemv' follow
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_p4n_dger.o): In function `mkl_blas_p4n_dger':
../../../../blas/kernel/p4n/level2/32e/dger.f:(.text+0x120): undefined reference to `mkl_blas_daxpy'
../../../../blas/kernel/p4n/level2/32e/dger.f:(.text+0x18b): undefined reference to `mkl_blas_daxpy'
../../../../blas/kernel/p4n/level2/32e/dger.f:(.text+0x225): undefined reference to `mkl_blas_daxpy'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_mc_dtrsv.o): In function `mkl_blas_mc_dtrsv':
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x313): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x456): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x601): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x7f5): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x99a): undefined reference to `mkl_blas_dgemv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_mc_dtrsv.o):../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0xb07): more undefined references to `mkl_blas_dgemv' follow
make: *** [driver] 1
guayigou@guayigou-laptop:~/work/atfem/SRC$
0 баллов
2 Ответы
TimP
Почетный участник III
1 622Просмотр.
When linking with the MKL .a files, certain of them must be enclosed by -Wl,--begin-group ..... -Wl,--end-group directives, so as to satisfy the circular dependencies. The link advisor, on the right hand column of the forum header page, should show you this. At least the lp64, core, and thread libraries must be grouped. In such a complicated case, it may be easier to start out with a shared library link, so as to reduce initial complexity.
Vladimir_Koldakov__I
Новый участник III
1 622Просмотр.

There is also "Intel Math Kernel Library Link Line Advisor". Onecan find the link on the main MKL Forum page, right column, under the "New Intel MKL KB topics" title.

Thanks,

Vladimir

Ответить