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

What libs do I need to link and redistribute MKL?

I use mkl blas/lapack/pardiso and try to clean up the libs to reduce the size of download for my colleages. Can someone tell me what mkl libs do I need keep?

0 Kudos
9 Replies
Valued Contributor I

if you want to make it easy to handle for installing and downloading, you can give a try Building Custom DLL (see Section 5 in the User's Guide). This will make the download smaller and in a single file.

0 Kudos
When using custom build, I got undefined:
/u/xeons03/people/xian/dev/star/battery/src/sundials/src/ida/ida_superlu.c:21: undefined reference to `MKL_Set_Num_Threads'
/u/xeons03/people/xian/dev/superlu/4.1/linux/libsuperlu.a(dgstrs.o): In function `dgstrs':
dgstrs.c:(.text+0x904): undefined reference to `dtrsm_'
dgstrs.c:(.text+0x992): undefined reference to `dtrsm_'
dgstrs.c:(.text+0xa1b): undefined reference to `dgemm_'
/u/xeons03/people/xian/dev/superlu/4.1/linux/libsuperlu.a(dsnode_bmod.o): In function `dsnode_bmod':
dsnode_bmod.c:(.text+0x186): undefined reference to `dtrsv_'
dsnode_bmod.c:(.text+0x1e7): undefined reference to `dgemv_'
/u/xeons03/people/xian/dev/superlu/4.1/linux/libsuperlu.a(dpanel_bmod.o): In function `dpanel_bmod':
dpanel_bmod.c:(.text+0x863): undefined reference to `dtrsv_'
dpanel_bmod.c:(.text+0x8f7): undefined reference to `dgemv_'
dpanel_bmod.c:(.text+0xb03): undefined reference to `dtrsv_'
dpanel_bmod.c:(.text+0xdf9): undefined reference to `dgemv_'
/u/xeons03/people/xian/dev/superlu/4.1/linux/libsuperlu.a(dcolumn_bmod.o): In function `dcolumn_bmod':
dcolumn_bmod.c:(.text+0x531): undefined reference to `dtrsv_'
dcolumn_bmod.c:(.text+0x5bb): undefined reference to `dgemv_'
dcolumn_bmod.c:(.text+0x8c0): undefined reference to `dtrsv_'
dcolumn_bmod.c:(.text+0x94e): undefined reference to `dgemv_'
/u/xeons03/people/xian/dev/superlu/4.1/linux/libsuperlu.a(dsp_blas2.o): In function `sp_dtrsv':
dsp_blas2.c:(.text+0x92a): undefined reference to `dtrsv_'
dsp_blas2.c:(.text+0x9a6): undefined reference to `dgemv_'
dsp_blas2.c:(.text+0xc21): undefined reference to `dtrsv_'
dsp_blas2.c:(.text+0xe17): undefined reference to `dtrsv_'
dsp_blas2.c:(.text+0xfd1): undefined reference to `dtrsv_'
collect2: ld returned 1 exit status
make: *** [/u/xeons03/people/xian/dev/star/lib/linux-x86_64-2.5/gnu4.5-g/lib/] Error 1

Here is how to build
xeons03 335> make libintel64 export=my_func_list.txt MKLROOT=/u/xeons03/people/xian/dev/intel_7_1_2011/10.3.1/linux/composerxe-2011.1.107/mkl
export LIBRARY_PATH=/u/xeons03/people/xian/intel/composerxe-2011.1.107/mkl/lib/intel64:/u/xeons03/people/xian/intel/composerxe-2011.1.107/mkl/lib/intel64:/u/xeons03/people/xian/intel/composerxe-2011.1.107/mkl/../compiler/lib/intel64; \
gcc -shared -Bdynamic \
-u caxpy_ -u caxpyi_ -u ccopy_ -u cdotc_ -u cdotci_ -u cdotu_ -u cdotui_ -u cgbmv_ -u cgemm_ -u cgemv_ -u cgerc_ -u cgeru_ -u cgthr_ -u cgthrz_ -u chbmv_ -u chemm_ -u chemv_ -u cher_ -u cher2_ -u cher2k_ -u cherk_ -u chpmv_ -u chpr_ -u chpr2_ -u crotg_ -u cscal_ -u csctr_ -u csrot_ -u csscal_ -u cswap_ -u csymm_ -u csyr2k_ -u csyrk_ -u ctbmv_ -u ctbsv_ -u ctpmv_ -u ctpsv_ -u ctrmm_ -u ctrmv_ -u ctrsm_ -u ctrsv_ -u dasum_ -u daxpy_ -u daxpyi_ -u dcopy_ -u ddot_ -u ddoti_ -u dgbmv_ -u dgemm_ -u dgemv_ -u dger_ -u dgthr_ -u dgthrz_ -u dnrm2_ -u drot_ -u drotg_ -u droti_ -u drotm_ -u drotmg_ -u dsbmv_ -u dscal_ -u dsctr_ -u dsdot_ -u dspmv_ -u dspr_ -u dspr2_ -u dswap_ -u dsymm_ -u dsymv_ -u dsyr_ -u dsyr2_ -u dsyr2k_ -u dsyrk_ -u dtbmv_ -u dtbsv_ -u dtpmv_ -u dtpsv_ -u dtrmm_ -u dtrmv_ -u dtrsm_ -u dtrsv_ -u dzasum_ -u dznrm2_ -u icamax_ -u icamin_ -u idamax_ -u idamin_ -u isamax_ -u isamin_ -u izamax_ -u izamin_ -u sasum_ -u saxpy_ -u saxpyi_ -u scasum_ -u scnrm2_ -u scopy_ -u sdot_ -u sdoti_ -u sdsdot_ -u sgbmv_ -u sgemm_ -u sgemv_ -u sger_ -u sgthr_ -u sgthrz_ -u snrm2_ -u srot_ -u srotg_ -u sroti_ -u srotm_ -u srotmg_ -u ssbmv_ -u sscal_ -u ssctr_ -u sspmv_ -u sspr_ -u sspr2_ -u sswap_ -u ssymm_ -u ssymv_ -u ssyr_ -u ssyr2_ -u ssyr2k_ -u ssyrk_ -u stbmv_ -u stbsv_ -u stpmv_ -u stpsv_ -u strmm_ -u strmv_ -u strsm_ -u strsv_ -u zaxpy_ -u zaxpyi_ -u zcopy_ -u zdotc_ -u zdotci_ -u zdotu_ -u zdotui_ -u zdrot_ -u zdscal_ -u zgbmv_ -u zgemm_ -u zgemv_ -u zgerc_ -u zgeru_ -u zgthr_ -u zgthrz_ -u zhbmv_ -u zhemm_ -u zhemv_ -u zher_ -u zher2_ -u zher2k_ -u zherk_ -u zhpmv_ -u zhpr_ -u zhpr2_ -u zrotg_ -u zscal_ -u zsctr_ -u zswap_ -u zsymm_ -u zsyr2k_ -u zsyrk_ -u ztbmv_ -u ztbsv_ -u ztpmv_ -u ztpsv_ -u ztrmm_ -u ztrmv_ -u ztrsm_ -u ztrsv_ -u cbdsqr_ -u cgbbrd_ -u cgbcon_ -u cgbequ_ -u cgbrfs_ -u cgbsv_ -u cgbsvx_ -u cgbtf2_ -u cgbtrf_ -u cgbtrs_ -u cgebak_ -u cgebal_ -u cgebd2_ -u cgebrd_ -u cgecon_ -u cgeequ_ -u cgees_ -u cgeesx_ -u cgeev_ -u cgeevx_ -u cgegs_ -u cgegv_ -u cgehd2_ -u cgehrd_ -u cgelq2_ -u cgelqf_ -u cgels_ -u cgelsd_ -u cgelss_ -u cgelsx_ -u cgelsy_ -u cgeql2_ -u cgeqlf_ -u cgeqp3_ -u cgeqpf_ -u cgeqr2_ -u cgeqrf_ -u cgerfs_ -u cgerq2_ -u cgerqf_ -u cgesc2_ -u cgesdd_ -u cgesv_ -u cgesvd_ -u cgesvx_ -u cgetc2_ -u cgetf2_ -u cgetrf_ -u cgetri_ -u cgetrs_ -u cggbak_ -u cggbal_ -u cgges_ -u cggesx_ -u cggev_ -u cggevx_ -u cggglm_ -u cgghrd_ -u cgglse_ -u cggqrf_ -u cggrqf_ -u cggsvd_ -u cggsvp_ -u cgtcon_ -u cgtrfs_ -u cgtsv_ -u cgtsvx_ -u cgttrf_ -u cgttrs_ -u cgtts2_ -u chbev_ -u chbevd_ -u chbevx_ -u chbgst_ -u chbgv_ -u chbgvd_ -u chbgvx_ -u chbtrd_ -u checon_ -u cheev_ -u cheevd_ -u cheevr_ -u cheevx_ -u chegs2_ -u chegst_ -u chegv_ -u chegvd_ -u chegvx_ -u cherfs_ -u chesv_ -u chesvx_ -u chetd2_ -u chetf2_ -u chetrd_ -u chetrf_ -u chetri_ -u chetrs_ -u chgeqz_ -u chpcon_ -u chpev_ -u chpevd_ -u chpevx_ -u chpgst_ -u chpgv_ -u chpgvd_ -u chpgvx_ -u chprfs_ -u chpsv_ -u chpsvx_ -u chptrd_ -u chptrf_ -u chptri_ -u chptrs_ -u chsein_ -u chseqr_ -u clabrd_ -u clacgv_ -u clacon_ -u clacp2_ -u clacpy_ -u clacrm_ -u clacrt_ -u cladiv_ -u claed0_ -u claed7_ -u claed8_ -u claein_ -u claesy_ -u claev2_ -u clags2_ -u clagtm_ -u clahef_ -u clahqr_ -u clahrd_ -u claic1_ -u clals0_ -u clalsa_ -u clalsd_ -u clangb_ -u clange_ -u clangt_ -u clanhb_ -u clanhe_ -u clanhp_ -u clanhs_ -u clanht_ -u clansb_ -u clansp_ -u clansy_ -u clantb_ -u clantp_ -u clantr_ -u clapll_ -u clapmt_ -u claqgb_ -u claqge_ -u claqhb_ -u claqhe_ -u claqhp_ -u claqp2_ -u claqps_ -u claqsb_ -u claqsp_ -u claqsy_ -u clar1v_ -u clar2v_ -u clarcm_ -u clarf_ -u clarfb_ -u clarfg_ -u clarft_ -u clarfx_ -u clargv_ -u clarnv_ -u clarrv_ -u clartg_ -u clartv_ -u clarz_ -u clarzb_ -u clarzt_ -u clascl_ -u claset_ -u clasr_ -u classq_ -u claswp_ -u clasyf_ -u clatbs_ -u clatdf_ -u clatps_ -u clatrd_ -u clatrs_ -u clatrz_ -u clatzm_ -u clauu2_ -u clauum_ -u cpbcon_ -u cpbequ_ -u cpbrfs_ -u cpbstf_ -u cpbsv_ -u cpbsvx_ -u cpbtf2_ -u cpbtrf_ -u cpbtrs_ -u cpocon_ -u cpoequ_ -u cporfs_ -u cposv_ -u cposvx_ -u cpotf2_ -u cpotrf_ -u cpotri_ -u cpotrs_ -u cppcon_ -u cppequ_ -u cpprfs_ -u cppsv_ -u cppsvx_ -u cpptrf_ -u cpptri_ -u cpptrs_ -u cptcon_ -u cpteqr_ -u cptrfs_ -u cptsv_ -u cptsvx_ -u cpttrf_ -u cpttrs_ -u cptts2_ -u crot_ -u cspcon_ -u cspmv_ -u cspr_ -u csprfs_ -u cspsv_ -u cspsvx_ -u csptrf_ -u csptri_ -u csptrs_ -u csrscl_ -u cstedc_ -u cstegr_ -u cstein_ -u csteqr_ -u csycon_ -u csymv_ -u csyr_ -u csyrfs_ -u csysv_ -u csysvx_ -u csytf2_ -u csytrf_ -u csytri_ -u csytrs_ -u ctbcon_ -u ctbrfs_ -u ctbtrs_ -u ctgevc_ -u ctgex2_ -u ctgexc_ -u ctgsen_ -u ctgsja_ -u ctgsna_ -u ctgsy2_ -u ctgsyl_ -u ctpcon_ -u ctprfs_ -u ctptri_ -u ctptrs_ -u ctrcon_ -u ctrevc_ -u ctrexc_ -u ctrrfs_ -u ctrsen_ -u ctrsna_ -u ctrsyl_ -u ctrti2_ -u ctrtri_ -u ctrtrs_ -u ctzrqf_ -u ctzrzf_ -u cung2l_ -u cung2r_ -u cungbr_ -u cunghr_ -u cungl2_ -u cunglq_ -u cungql_ -u cungqr_ -u cungr2_ -u cungrq_ -u cungtr_ -u cunm2l_ -u cunm2r_ -u cunmbr_ -u cunmhr_ -u cunml2_ -u cunmlq_ -u cunmql_ -u cunmqr_ -u cunmr2_ -u cunmr3_ -u cunmrq_ -u cunmrz_ -u cunmtr_ -u cupgtr_ -u cupmtr_ -u dbdsdc_ -u dbdsqr_ -u ddisna_ -u dgbbrd_ -u dgbcon_ -u dgbequ_ -u dgbrfs_ -u dgbsv_ -u dgbsvx_ -u dgbtf2_ -u dgbtrf_ -u dgbtrs_ -u dgebak_ -u dgebal_ -u dgebd2_ -u dgebrd_ -u dgecon_ -u dgeequ_ -u dgees_ -u dgeesx_ -u dgeev_ -u dgeevx_ -u dgegs_ -u dgegv_ -u dgehd2_ -u dgehrd_ -u dgelq2_ -u dgelqf_ -u dgels_ -u dgelsd_ -u dgelss_ -u dgelsx_ -u dgelsy_ -u dgeql2_ -u dgeqlf_ -u dgeqp3_ -u dgeqpf_ -u dgeqr2_ -u dgeqrf_ -u dgerfs_ -u dgerq2_ -u dgerqf_ -u dgesc2_ -u dgesdd_ -u dgesv_ -u dgesvd_ -u dgesvx_ -u dgetc2_ -u dgetf2_ -u dgetrf_ -u dgetri_ -u dgetrs_ -u dggbak_ -u dggbal_ -u dgges_ -u dggesx_ -u dggev_ -u dggevx_ -u dggglm_ -u dgghrd_ -u dgglse_ -u dggqrf_ -u dggrqf_ -u dggsvd_ -u dggsvp_ -u dgtcon_ -u dgtrfs_ -u dgtsv_ -u dgtsvx_ -u dgttrf_ -u dgttrs_ -u dgtts2_ -u dhgeqz_ -u dhsein_ -u dhseqr_ -u dlabad_ -u dlabrd_ -u dlacon_ -u dlacpy_ -u dladiv_ -u dlae2_ -u dlaebz_ -u dlaed0_ -u dlaed1_ -u dlaed2_ -u dlaed3_ -u dlaed4_ -u dlaed5_ -u dlaed6_ -u dlaed7_ -u dlaed8_ -u dlaed9_ -u dlaeda_ -u dlaein_ -u dlaev2_ -u dlaexc_ -u dlag2_ -u dlags2_ -u dlagtf_ -u dlagtm_ -u dlagts_ -u dlagv2_ -u dlahqr_ -u dlahrd_ -u dlaic1_ -u dlaln2_ -u dlals0_ -u dlalsa_ -u dlalsd_ -u dlamc3_ -u dlamch_ -u dlamrg_ -u dlangb_ -u dlange_ -u dlangt_ -u dlanhs_ -u dlansb_ -u dlansp_ -u dlanst_ -u dlansy_ -u dlantb_ -u dlantp_ -u dlantr_ -u dlanv2_ -u dlapll_ -u dlapmt_ -u dlapy2_ -u dlapy3_ -u dlaqgb_ -u dlaqge_ -u dlaqp2_ -u dlaqps_ -u dlaqsb_ -u dlaqsp_ -u dlaqsy_ -u dlaqtr_ -u dlar1v_ -u dlar2v_ -u dlarf_ -u dlarfb_ -u dlarfg_ -u dlarft_ -u dlarfx_ -u dlargv_ -u dlarnv_ -u dlarrb_ -u dlarre_ -u dlarrf_ -u dlarrv_ -u dlartg_ -u dlartv_ -u dlaruv_ -u dlarz_ -u dlarzb_ -u dlarzt_ -u dlas2_ -u dlascl_ -u dlasd0_ -u dlasd1_ -u dlasd2_ -u dlasd3_ -u dlasd4_ -u dlasd5_ -u dlasd6_ -u dlasd7_ -u dlasd8_ -u dlasd9_ -u dlasda_ -u dlasdq_ -u dlasdt_ -u dlaset_ -u dlasq1_ -u dlasq2_ -u dlasq3_ -u dlasq4_ -u dlasq5_ -u dlasq6_ -u dlasr_ -u dlasrt_ -u dlassq_ -u dlasv2_ -u dlaswp_ -u dlasy2_ -u dlasyf_ -u dlatbs_ -u dlatdf_ -u dlatps_ -u dlatrd_ -u dlatrs_ -u dlatrz_ -u dlatzm_ -u dlauu2_ -u dlauum_ -u dopgtr_ -u dopmtr_ -u dorg2l_ -u dorg2r_ -u dorgbr_ -u dorghr_ -u dorgl2_ -u dorglq_ -u dorgql_ -u dorgqr_ -u dorgr2_ -u dorgrq_ -u dorgtr_ -u dorm2l_ -u dorm2r_ -u dormbr_ -u dormhr_ -u dorml2_ -u dormlq_ -u dormql_ -u dormqr_ -u dormr2_ -u dormr3_ -u dormrq_ -u dormrz_ -u dormtr_ -u dpbcon_ -u dpbequ_ -u dpbrfs_ -u dpbstf_ -u dpbsv_ -u dpbsvx_ -u dpbtf2_ -u dpbtrf_ -u dpbtrs_ -u dpocon_ -u dpoequ_ -u dporfs_ -u dposv_ -u dposvx_ -u dpotf2_ -u dpotrf_ -u dpotri_ -u dpotrs_ -u dppcon_ -u dppequ_ -u dpprfs_ -u dppsv_ -u dppsvx_ -u dpptrf_ -u dpptri_ -u dpptrs_ -u dptcon_ -u dpteqr_ -u dptrfs_ -u dptsv_ -u dptsvx_ -u dpttrf_ -u dpttrs_ -u dptts2_ -u drscl_ -u dsbev_ -u dsbevd_ -u dsbevx_ -u dsbgst_ -u dsbgv_ -u dsbgvd_ -u dsbgvx_ -u dsbtrd_ -u dspcon_ -u dspev_ -u dspevd_ -u dspevx_ -u dspgst_ -u dspgv_ -u dspgvd_ -u dspgvx_ -u dsprfs_ -u dspsv_ -u dspsvx_ -u dsptrd_ -u dsptrf_ -u dsptri_ -u dsptrs_ -u dstebz_ -u dstedc_ -u dstegr_ -u dstein_ -u dsteqr_ -u dsterf_ -u dstev_ -u dstevd_ -u dstevr_ -u dstevx_ -u dsycon_ -u dsyev_ -u dsyevd_ -u dsyevr_ -u dsyevx_ -u dsygs2_ -u dsygst_ -u dsygv_ -u dsygvd_ -u dsygvx_ -u dsyrfs_ -u dsysv_ -u dsysvx_ -u dsytd2_ -u dsytf2_ -u dsytrd_ -u dsytrf_ -u dsytri_ -u dsytrs_ -u dtbcon_ -u dtbrfs_ -u dtbtrs_ -u dtgevc_ -u dtgex2_ -u dtgexc_ -u dtgsen_ -u dtgsja_ -u dtgsna_ -u dtgsy2_ -u dtgsyl_ -u dtpcon_ -u dtprfs_ -u dtptri_ -u dtptrs_ -u dtrcon_ -u dtrevc_ -u dtrexc_ -u dtrrfs_ -u dtrsen_ -u dtrsna_ -u dtrsyl_ -u dtrti2_ -u dtrtri_ -u dtrtrs_ -u dtzrqf_ -u dtzrzf_ -u dzsum1_ -u icmax1_ -u izmax1_ -u sbdsdc_ -u sbdsqr_ -u scsum1_ -u sdisna_ -u sgbbrd_ -u sgbcon_ -u sgbequ_ -u sgbrfs_ -u sgbsv_ -u sgbsvx_ -u sgbtf2_ -u sgbtrf_ -u sgbtrs_ -u sgebak_ -u sgebal_ -u sgebd2_ -u sgebrd_ -u sgecon_ -u sgeequ_ -u sgees_ -u sgeesx_ -u sgeev_ -u sgeevx_ -u sgegs_ -u sgegv_ -u sgehd2_ -u sgehrd_ -u sgelq2_ -u sgelqf_ -u sgels_ -u sgelsd_ -u sgelss_ -u sgelsx_ -u sgelsy_ -u sgeql2_ -u sgeqlf_ -u sgeqp3_ -u sgeqpf_ -u sgeqr2_ -u sgeqrf_ -u sgerfs_ -u sgerq2_ -u sgerqf_ -u sgesc2_ -u sgesdd_ -u sgesv_ -u sgesvd_ -u sgesvx_ -u sgetc2_ -u sgetf2_ -u sgetrf_ -u sgetri_ -u sgetrs_ -u sggbak_ -u sggbal_ -u sgges_ -u sggesx_ -u sggev_ -u sggevx_ -u sggglm_ -u sgghrd_ -u sgglse_ -u sggqrf_ -u sggrqf_ -u sggsvd_ -u sggsvp_ -u sgtcon_ -u sgtrfs_ -u sgtsv_ -u sgtsvx_ -u sgttrf_ -u sgttrs_ -u sgtts2_ -u shgeqz_ -u shsein_ -u shseqr_ -u slabad_ -u slabrd_ -u slacon_ -u slacpy_ -u sladiv_ -u slae2_ -u slaebz_ -u slaed0_ -u slaed1_ -u slaed2_ -u slaed3_ -u slaed4_ -u slaed5_ -u slaed6_ -u slaed7_ -u slaed8_ -u slaed9_ -u slaeda_ -u slaein_ -u slaev2_ -u slaexc_ -u slag2_ -u slags2_ -u slagtf_ -u slagtm_ -u slagts_ -u slagv2_ -u slahqr_ -u slahrd_ -u slaic1_ -u slaln2_ -u slals0_ -u slalsa_ -u slalsd_ -u slamc3_ -u slamch_ -u slamrg_ -u slangb_ -u slange_ -u slangt_ -u slanhs_ -u slansb_ -u slansp_ -u slanst_ -u slansy_ -u slantb_ -u slantp_ -u slantr_ -u slanv2_ -u slapll_ -u slapmt_ -u slapy2_ -u slapy3_ -u slaqgb_ -u slaqge_ -u slaqp2_ -u slaqps_ -u slaqsb_ -u slaqsp_ -u slaqsy_ -u slaqtr_ -u slar1v_ -u slar2v_ -u slarf_ -u slarfb_ -u slarfg_ -u slarft_ -u slarfx_ -u slargv_ -u slarnv_ -u slarrb_ -u slarre_ -u slarrf_ -u slarrv_ -u slartg_ -u slartv_ -u slaruv_ -u slarz_ -u slarzb_ -u slarzt_ -u slas2_ -u slascl_ -u slasd0_ -u slasd1_ -u slasd2_ -u slasd3_ -u slasd4_ -u slasd5_ -u slasd6_ -u slasd7_ -u slasd8_ -u slasd9_ -u slasda_ -u slasdq_ -u slasdt_ -u slaset_ -u slasq1_ -u slasq2_ -u slasq3_ -u slasq4_ -u slasq5_ -u slasq6_ -u slasr_ -u slasrt_ -u slassq_ -u slasv2_ -u slaswp_ -u slasy2_ -u slasyf_ -u slatbs_ -u slatdf_ -u slatps_ -u slatrd_ -u slatrs_ -u slatrz_ -u slatzm_ -u slauu2_ -u slauum_ -u sopgtr_ -u sopmtr_ -u sorg2l_ -u sorg2r_ -u sorgbr_ -u sorghr_ -u sorgl2_ -u sorglq_ -u sorgql_ -u sorgqr_ -u sorgr2_ -u sorgrq_ -u sorgtr_ -u sorm2l_ -u sorm2r_ -u sormbr_ -u sormhr_ -u sorml2_ -u sormlq_ -u sormql_ -u sormqr_ -u sormr2_ -u sormr3_ -u sormrq_ -u sormrz_ -u sormtr_ -u spbcon_ -u spbequ_ -u spbrfs_ -u spbstf_ -u spbsv_ -u spbsvx_ -u spbtf2_ -u spbtrf_ -u spbtrs_ -u spocon_ -u spoequ_ -u sporfs_ -u sposv_ -u sposvx_ -u spotf2_ -u spotrf_ -u spotri_ -u spotrs_ -u sppcon_ -u sppequ_ -u spprfs_ -u sppsv_ -u sppsvx_ -u spptrf_ -u spptri_ -u spptrs_ -u sptcon_ -u spteqr_ -u sptrfs_ -u sptsv_ -u sptsvx_ -u spttrf_ -u spttrs_ -u sptts2_ -u srscl_ -u ssbev_ -u ssbevd_ -u ssbevx_ -u ssbgst_ -u ssbgv_ -u ssbgvd_ -u ssbgvx_ -u ssbtrd_ -u sspcon_ -u sspev_ -u sspevd_ -u sspevx_ -u sspgst_ -u sspgv_ -u sspgvd_ -u sspgvx_ -u ssprfs_ -u sspsv_ -u sspsvx_ -u ssptrd_ -u ssptrf_ -u ssptri_ -u ssptrs_ -u sstebz_ -u sstedc_ -u sstegr_ -u sstein_ -u ssteqr_ -u ssterf_ -u sstev_ -u sstevd_ -u sstevr_ -u sstevx_ -u ssycon_ -u ssyev_ -u ssyevd_ -u ssyevr_ -u ssyevx_ -u ssygs2_ -u ssygst_ -u ssygv_ -u ssygvd_ -u ssygvx_ -u ssyrfs_ -u ssysv_ -u ssysvx_ -u ssytd2_ -u ssytf2_ -u ssytrd_ -u ssytrf_ -u ssytri_ -u ssytrs_ -u stbcon_ -u stbrfs_ -u stbtrs_ -u stgevc_ -u stgex2_ -u stgexc_ -u stgsen_ -u stgsja_ -u stgsna_ -u stgsy2_ -u stgsyl_ -u stpcon_ -u stprfs_ -u stptri_ -u stptrs_ -u strcon_ -u strevc_ -u strexc_ -u strrfs_ -u strsen_ -u strsna_ -u strsyl_ -u strti2_ -u strtri_ -u strtrs_ -u stzrqf_ -u stzrzf_ -u zbdsqr_ -u zdrscl_ -u zgbbrd_ -u zgbcon_ -u zgbequ_ -u zgbrfs_ -u zgbsv_ -u zgbsvx_ -u zgbtf2_ -u zgbtrf_ -u zgbtrs_ -u zgebak_ -u zgebal_ -u zgebd2_ -u zgebrd_ -u zgecon_ -u zgeequ_ -u zgees_ -u zgeesx_ -u zgeev_ -u zgeevx_ -u zgegs_ -u zgegv_ -u zgehd2_ -u zgehrd_ -u zgelq2_ -u zgelqf_ -u zgels_ -u zgelsd_ -u zgelss_ -u zgelsx_ -u zgelsy_ -u zgeql2_ -u zgeqlf_ -u zgeqp3_ -u zgeqpf_ -u zgeqr2_ -u zgeqrf_ -u zgerfs_ -u zgerq2_ -u zgerqf_ -u zgesc2_ -u zgesdd_ -u zgesv_ -u zgesvd_ -u zgesvx_ -u zgetc2_ -u zgetf2_ -u zgetrf_ -u zgetri_ -u zgetrs_ -u zggbak_ -u zggbal_ -u zgges_ -u zggesx_ -u zggev_ -u zggevx_ -u zggglm_ -u zgghrd_ -u zgglse_ -u zggqrf_ -u zggrqf_ -u zggsvd_ -u zggsvp_ -u zgtcon_ -u zgtrfs_ -u zgtsv_ -u zgtsvx_ -u zgttrf_ -u zgttrs_ -u zgtts2_ -u zhbev_ -u zhbevd_ -u zhbevx_ -u zhbgst_ -u zhbgv_ -u zhbgvd_ -u zhbgvx_ -u zhbtrd_ -u zhecon_ -u zheev_ -u zheevd_ -u zheevr_ -u zheevx_ -u zhegs2_ -u zhegst_ -u zhegv_ -u zhegvd_ -u zhegvx_ -u zherfs_ -u zhesv_ -u zhesvx_ -u zhetd2_ -u zhetf2_ -u zhetrd_ -u zhetrf_ -u zhetri_ -u zhetrs_ -u zhgeqz_ -u zhpcon_ -u zhpev_ -u zhpevd_ -u zhpevx_ -u zhpgst_ -u zhpgv_ -u zhpgvd_ -u zhpgvx_ -u zhprfs_ -u zhpsv_ -u zhpsvx_ -u zhptrd_ -u zhptrf_ -u zhptri_ -u zhptrs_ -u zhsein_ -u zhseqr_ -u zlabrd_ -u zlacgv_ -u zlacon_ -u zlacp2_ -u zlacpy_ -u zlacrm_ -u zlacrt_ -u zladiv_ -u zlaed0_ -u zlaed7_ -u zlaed8_ -u zlaein_ -u zlaesy_ -u zlaev2_ -u zlags2_ -u zlagtm_ -u zlahef_ -u zlahqr_ -u zlahrd_ -u zlaic1_ -u zlals0_ -u zlalsa_ -u zlalsd_ -u zlangb_ -u zlange_ -u zlangt_ -u zlanhb_ -u zlanhe_ -u zlanhp_ -u zlanhs_ -u zlanht_ -u zlansb_ -u zlansp_ -u zlansy_ -u zlantb_ -u zlantp_ -u zlantr_ -u zlapll_ -u zlapmt_ -u zlaqgb_ -u zlaqge_ -u zlaqhb_ -u zlaqhe_ -u zlaqhp_ -u zlaqp2_ -u zlaqps_ -u zlaqsb_ -u zlaqsp_ -u zlaqsy_ -u zlar1v_ -u zlar2v_ -u zlarcm_ -u zlarf_ -u zlarfb_ -u zlarfg_ -u zlarft_ -u zlarfx_ -u zlargv_ -u zlarnv_ -u zlarrv_ -u zlartg_ -u zlartv_ -u zlarz_ -u zlarzb_ -u zlarzt_ -u zlascl_ -u zlaset_ -u zlasr_ -u zlassq_ -u zlaswp_ -u zlasyf_ -u zlatbs_ -u zlatdf_ -u zlatps_ -u zlatrd_ -u zlatrs_ -u zlatrz_ -u zlatzm_ -u zlauu2_ -u zlauum_ -u zpbcon_ -u zpbequ_ -u zpbrfs_ -u zpbstf_ -u zpbsv_ -u zpbsvx_ -u zpbtf2_ -u zpbtrf_ -u zpbtrs_ -u zpocon_ -u zpoequ_ -u zporfs_ -u zposv_ -u zposvx_ -u zpotf2_ -u zpotrf_ -u zpotri_ -u zpotrs_ -u zppcon_ -u zppequ_ -u zpprfs_ -u zppsv_ -u zppsvx_ -u zpptrf_ -u zpptri_ -u zpptrs_ -u zptcon_ -u zpteqr_ -u zptrfs_ -u zptsv_ -u zptsvx_ -u zpttrf_ -u zpttrs_ -u zptts2_ -u zrot_ -u zspcon_ -u zspmv_ -u zspr_ -u zsprfs_ -u zspsv_ -u zspsvx_ -u zsptrf_ -u zsptri_ -u zsptrs_ -u zstedc_ -u zstegr_ -u zstein_ -u zsteqr_ -u zsycon_ -u zsymv_ -u zsyr_ -u zsyrfs_ -u zsysv_ -u zsysvx_ -u zsytf2_ -u zsytrf_ -u zsytri_ -u zsytrs_ -u ztbcon_ -u ztbrfs_ -u ztbtrs_ -u ztgevc_ -u ztgex2_ -u ztgexc_ -u ztgsen_ -u ztgsja_ -u ztgsna_ -u ztgsy2_ -u ztgsyl_ -u ztpcon_ -u ztprfs_ -u ztptri_ -u ztptrs_ -u ztrcon_ -u ztrevc_ -u ztrexc_ -u ztrrfs_ -u ztrsen_ -u ztrsna_ -u ztrsyl_ -u ztrti2_ -u ztrtri_ -u ztrtrs_ -u ztzrqf_ -u ztzrzf_ -u zung2l_ -u zung2r_ -u zungbr_ -u zunghr_ -u zungl2_ -u zunglq_ -u zungql_ -u zungqr_ -u zungr2_ -u zungrq_ -u zungtr_ -u zunm2l_ -u zunm2r_ -u zunmbr_ -u zunmhr_ -u zunml2_ -u zunmlq_ -u zunmql_ -u zunmqr_ -u zunmr2_ -u zunmr3_ -u zunmrq_ -u zunmrz_ -u zunmtr_ -u zupgtr_ -u zupmtr_ -u PARDISO -u MKL_Set_Num_Threads \
-Wl,--start-group \
"/u/xeons03/people/xian/dev/intel_7_1_2011/10.3.1/linux/composerxe-2011.1.107/mkl/lib/intel64/libmkl_intel_lp64.a" \
"/u/xeons03/people/xian/dev/intel_7_1_2011/10.3.1/linux/composerxe-2011.1.107/mkl/lib/intel64/libmkl_intel_thread.a" \
"/u/xeons03/people/xian/dev/intel_7_1_2011/10.3.1/linux/composerxe-2011.1.107/mkl/lib/intel64/libmkl_core.a" \
-Wl,--end-group \
-L"/u/xeons03/people/xian/dev/intel_7_1_2011/10.3.1/linux/composerxe-2011.1.107/mkl/../compiler/lib/intel64" -liomp5 -lm \
-o ""
xeons03 336>
0 Kudos
For intel64 linux architecture, I was able to trim the libs down to following:
libmkl_blacs_intelmpi_lp64.a libmkl_gf_lp64.a libmkl_intel_thread.a libmkl_intel_lp64.a libmkl_scalapack_lp64.a

I can link and run on my linux 64. I am not sure whether I need any other libs for redistribtuion. For example, do I need to redistribute,,

I focus on intel64 linux now. Once I figure out what libs to use on intel64 linux, it will be easy to figure the libs for other platformts(ia32,win32, win64, ect).
0 Kudos

Hello Sam,

For BLAS/LAPACK/PARDISO,ingeneral, libmkl_intel_lp64, libmkl_intel_thread, libmkl_corelibiomp5 are needed.
libmkl_blacs_intelmpi_lp64.a libmkl_gf_lp64.a andlibmkl_scalapack_lp64.a may not needed if you are not using blacs or scalapack andGnu fotran compiler.

But for exact libs, it may depend on your real application and how you link them into your application.
first, you maytry MKL link advisor to get what library you needto linked in your application.

second thing, MKL provide both static library and dynamic library. (almost same name, but static library end with *.a and dynamic library end with *.so).

So you may consider the link type.
if you link static mkl library, then no MKL library need to be redistribute.
if you link dynamic mkl library, you can use
>ldd yourapplication.exe
to show which mkl library is linked in your program.
but in general, except theones show inldd result, you need to redistribute almost all of *.so under mkl linux 64 in computational layer if your applicationwill support all kinds of platform.,, areneededat run time. Kernel for processors based on the Intel Core microarchitecture ernel for the Intel Core i7 processors Kernel for the Intel Xeon processor using the Intel 64 architecture

All functionality of MKL libs are discribledin MKL Userguide. You may read more details about what functionality of each MKL libs in MKL User guide.

Best Regards,

for example, i have one exe file, test show thatlibmkl_intel_lp64, lib mkl_intel_thread, libmkl_core and libiomp5 are needed. They are dynamic library.

[yhu5@kentsfield-01 MKL_issue]$ ldd tester_fix => not found => not found => not found => not found => /lib64/ (0x000000380de00000) => /lib64/ (0x000000380d600000) => /lib64/ (0x000000380d200000)
/lib64/ (0x000000380ce00000)

0 Kudos
I am afrid I don't quite understand the libs needed for static linking. I remove all .a and .so except following:
ibmkl_blacs_intelmpi_lp64.a libmkl_gf_lp64.a libmkl_intel_thread.a
libmkl_core.a libmkl_intel_lp64.a libmkl_scalapack_lp64.a lib libiomp5.a

But when I link, I first got mesaage:

-L/u/xeons03/people/xian/dev/superlu/4.1/linux -lsuperlu -L/u/xeons03/people/xian/dev/intel/10.3.1/linux/composerxe-2011.1.107/mkl/lib/intel64 -lmkl_scalapack_lp64 -lmkl_gf_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -L/u/xeons03/people/xian/dev/intel/10.3.1/linux/composerxe-2011.1.107/compiler/lib/intel64 -liomp5 -lpthread -lm -lStarCommon -lStarDiscretization -lStarMachine -lStarStorage -lStarNeo -lStarPhysics -lStarSolve -lSundials -o /u/xeons03/people/xian/dev/star/lib/linux-x86_64-2.5/gnu4.5/lib/
/tmp_mnt/u/seattle01/dev/dev_ccm+/compilers/linux-x86_64-2.3.4/gnu4.5.1/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.1/../../../../x86_64-unknown-linux-gnu/bin/ld: /u/xeons03/people/xian/dev/intel/10.3.1/linux/composerxe-2011.1.107/compiler/lib/intel64/libiomp5.a(kmp_ftn_cdecl.o): relocation R_X86_64_32 against `_2__STRING.0' can not be used when making a shared object; recompile with -fPIC
/u/xeons03/people/xian/dev/intel/10.3.1/linux/composerxe-2011.1.107/compiler/lib/intel64/libiomp5.a: could not read symbols: Bad value
collect2: ld returned 1 exit status

Then I put back. The above message was gone but more appear: (too long to include all, I just include few)

__tmp_sp_ilp64_dsytrs_bk.f:(.text+0x2057): undefined reference to `mkl_blas_sgemv'
__tmp_sp_ilp64_dsytrs_bk.f:(.text+0x208f): undefined reference to `mkl_blas_sswap'
/u/xeons03/people/xian/dev/intel/10.3.1/linux/composerxe-2011.1.107/mkl/lib/intel64/libmkl_core.a(sp_dgetf2_p.o): In function `mkl_pds_sp_dgetf2_pardiso':
__tmp_sp_ilp64_dgetf2_p.f:(.text+0x2b2): undefined reference to `mkl_blas_sswap'
__tmp_sp_ilp64_dgetf2_p.f:(.text+0x305): undefined reference to `mkl_blas_sswap'
/u/xeons03/people/xian/dev/intel/10.3.1/linux/composerxe-2011.1.107/mkl/lib/intel64/libmkl_core.a(sp_dgetc2_p.o): In function `mkl_pds_sp_dgetc2_pardiso':
__tmp_sp_ilp64_dgetc2_p.f:(.text+0x294): undefined reference to `mkl_blas_sswap'
__tmp_sp_ilp64_dgetc2_p.f:(.text+0x2f5): undefined reference to `mkl_blas_sswap'
/u/xeons03/people/xian/dev/intel/10.3.1/linux/composerxe-2011.1.107/mkl/lib/intel64/libmkl_core.a(sp_ch_blkslvs1.o): In function `mkl_pds_sp_ch_blkslvs1_pardiso':
__tmp_sp_ilp64_ch_blkslvs1.f:(.text+0x173): undefined reference to `mkl_blas_ctrsm'
__tmp_sp_ilp64_ch_blkslvs1.f:(.text+0x1e0): undefined reference to `mkl_blas_cgemv'

0 Kudos
There are locale directories under each lib subdirectories (e.g. composerxe-2011.1.107/compiler/lib/intel64/locale). Do I need include them for redistribution?
0 Kudos
Hi Sam,

Your question seems related to many factors. Let's consider them one by one, then in whole.

1) Regardinglocale directories
no, it is not necessary to redistribute the directory.For example,under MKL locale directory, theuser guide mentioned they are

Run-time Libraries (RTL)

BLACS routines supporting Intel MPI and MPICH2


Catalog of Intel Math Kernel Library (Intel MKL) messages in English


Catalog of Intel MKL messages in Japanese. Available only if the Intel MKL package provides Japanese localization. Please see the Release Notes for this information

2) about redistribution
2.1) what filescan be redistributed?
You mayhave read the fileredist.txt file in /opt/intel/composerxe-2011/Documentation/mkl. All files listedin it can be redistributed.

2.2) What files need be redistributed?
In general, if you link static mkl library, then no files in MKL directoryneed to redistributed.
But as is linked in your application too. So the is need to redistributed as your application will need it at run time.

0 Kudos
3) Regarding the error of libiomp5.a
...2011.1.107/compiler/lib/intel64/libiomp5.a(kmp_ftn_cdecl.o): relocation R_X86_64_32 against `_2__STRING.0' can not be used when making a shared object;

The static libiomp5.a is designed intentionally not to work in shared objects. It is recommended to use the dynamic library:

4) MKL related so far.
4.1) undefined reference to `mkl_blas_sswap' etc.

You may try the Intel Math Kernel Library Link Line Advisor
If you hope to use static library, it will give your command line like

-Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_intel_thread.a $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group -liomp5 -lpthread

and the grouping areneeded because

some symbols are cross-reference in the library in group.

Some explanation in MKL User guide:
In case of static linking,
enclose the cluster components, interface, threading, and computational libraries in grouping symbols (for example, -Wl,--start-group $MKLPATH/libmkl_cdft_core.a $MKLPATH/libmkl_blacs_intelmpi_ilp64.a $MKLPATH/libmkl_intel_ilp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group).

The order of listing libraries on the link line is essential, except for the libraries enclosed in the grouping symbols above.

If your compiler doesn't support the option-Wl,--start-group, you may need tosolve the symbols by link them several time. for example

Best Regards,

0 Kudos

4.2) Build& Distributing Your Custom Shared Object

I guess, it is not a problem for you to build a custom dll with the command
xeons03 335> make libintel64 export=my_func_list.txt MKLROOT=/u/xeons03/people/xian/dev/intel_7_1_2011/10.3.1/linux/composerxe-2011.1.107/mkl

But regarding the error ida_superlu.c:21: undefined reference to `MKL_Set_Num_Threads', .....
I haven't see exact command about howyou during build yourdll, may be, so I can't say more.
Butplease notice that the order of listing libraries on the link line is essential under linux.The is supposed at the end of your *.o or at least after libsuperlu.a.

Once you decide to use the, then just distribute and, no other mkl library isrequired.

Hope it helps,

0 Kudos