RCall.jl
RCall.jl copied to clipboard
Error with MKL libraries
Got this error when I try to run something in R from RCall:
Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.
I don't get the error when I run the code straight from R.
julia> ENV["R_HOME"] "/opt/apps/R/3.5.1/lib64/R"
[bdeonovic@argon-login-2 RASCH]$ which R /opt/apps/R/3.5.1/lib64/R/bin/R
[bdeonovic@argon-login-2 RASCH]$ echo $LD_LIBRARY_PATH /opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/tbb/lib/intel64_lin/gcc4.7:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/compiler/lib/intel64_lin:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64_lin:/opt/apps/R/3.5.1/lib64/R/lib:/opt/apps/hdf5/1.8.18/lib:/opt/apps/ncurses/6.0/lib
how about locate libmkl_avx2.so and locate libmkl_def.so?
[bdeonovic@argon-login-2 ~]$ locate libmkl_avx2.so
[bdeonovic@argon-login-2 ~]$ locate libmkl_def.so
[bdeonovic@argon-login-2 ~]$
It seems that your system failed to locate the two shared libraries.
But when I run my commands in R, everything runs fine, but if I try to do the same thing through julia with RCall I get the above error....
maybe related to this issue: https://github.com/JuliaInterop/RCall.jl/issues/272 ?
@bdeonovic that issue is different. The libraries are not even loaded in your case. Could you also try
ldd $(R RHOME)/lib/libR.so
and
R --slave -e "Sys.getenv('LD_LIBRARY_PATH')"
[bdeonovic@argon-login-1 ~]$ ldd $(R RHOME)/lib/libR.so
linux-vdso.so.1 => (0x00007ffe69bf9000)
libRblas.so => /opt/apps/R/3.5.1/lib64/R/lib/libRblas.so (0x00002b73aa43c000)
libgfortran.so.3 => /lib64/libgfortran.so.3 (0x00002b73aa667000)
libm.so.6 => /lib64/libm.so.6 (0x00002b73aa98a000)
libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00002b73aac8c000)
libreadline.so.7 => /opt/apps/readline/7.0/lib/libreadline.so.7 (0x00002b73aaec8000)
libpcre.so.1 => /opt/apps/pcre/8.40/lib/libpcre.so.1 (0x00002b73ab112000)
liblzma.so.5 => /opt/apps/xz/5.2.3/lib/liblzma.so.5 (0x00002b73ab339000)
libbz2.so.1.0 => /opt/apps/bzip2/1.0.6/lib/libbz2.so.1.0 (0x00002b73ab55e000)
libz.so.1 => /opt/apps/zlib/1.2.11/lib/libz.so.1 (0x00002b73ab76f000)
librt.so.1 => /lib64/librt.so.1 (0x00002b73ab98a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002b73abb92000)
libiconv.so.2 => /opt/apps/libiconv/1.15/lib/libiconv.so.2 (0x00002b73abd97000)
libicuuc.so.58 => /opt/apps/icu/58.2/lib/libicuuc.so.58 (0x00002b73ac07d000)
libicui18n.so.58 => /opt/apps/icu/58.2/lib/libicui18n.so.58 (0x00002b73ac425000)
libgomp.so.1 => /lib64/libgomp.so.1 (0x00002b73ac89b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b73acac1000)
libc.so.6 => /lib64/libc.so.6 (0x00002b73accdd000)
/lib64/ld-linux-x86-64.so.2 (0x0000556e0446a000)
libmkl_gf_lp64.so => /opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64_lin/libmkl_gf_lp64.so (0x00002b73ad0a1000)
libmkl_gnu_thread.so => /opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64_lin/libmkl_gnu_thread.so (0x00002b73adad0000)
libmkl_core.so => /opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64_lin/libmkl_core.so (0x00002b73aed18000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b73b084a000)
libncursesw.so.6 => /opt/apps/ncurses/6.0/lib/libncursesw.so.6 (0x00002b73b0a61000)
libicudata.so.58 => /opt/apps/icu/58.2/lib/libicudata.so.58 (0x00002b73b0c9d000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00002b73b279e000)
libtinfow.so.6 => /opt/apps/ncurses/6.0/lib/libtinfow.so.6 (0x00002b73b2aa6000)
[bdeonovic@argon-login-1 ~]$ R --slave -e "Sys.getenv('LD_LIBRARY_PATH')"
[1] "/opt/apps/R/3.5.1/lib64/R/lib:/opt/apps/R/3.5.1/lib64/R/lib:/opt/apps/xz/5.2.3/lib:/opt/apps/zlib/1.2.11/lib:/opt/apps/bzip2/1.0.6/lib:/opt/apps/libpng/1.6.28/lib:/opt/apps/libxml2/2.9.4/lib:/opt/apps/freetype/2.7.1/lib:/opt/apps/libffi/3.2.1/lib64:/opt/apps/fontconfig/2.12.1/lib:/opt/apps/glib/2.51.1/lib:/opt/apps/pixman/0.34.0/lib:/opt/apps/szip/2.1.1/lib:/opt/apps/jpeg/9b/lib:/opt/apps/ncurses/6.0/lib:/opt/apps/readline/7.0/lib:/opt/apps/jdk/8u121/lib:/opt/apps/libaio/0.3.111/lib:/opt/apps/unixODBC/2.3.4/lib:/opt/apps/proj/4.9.3/lib:/opt/apps/tiff/4.0.7/lib:/opt/apps/curl/7.52.1/lib:/opt/apps/hdf5/1.8.18/lib:/opt/apps/hdf/4.2.12/lib:/opt/apps/pcre/8.40/lib:/opt/apps/cfitsio/3.410/lib:/opt/apps/expat/2.2.0/lib:/opt/apps/geos/3.6.1/lib:/opt/apps/instantclient/12.2.0.1.0:/opt/apps/jasper/1.900.1/lib:/opt/apps/libgeotiff/1.4.2/lib:/opt/apps/libiconv/1.15/lib:/opt/apps/netcdf/4.4.1.1/lib:/opt/apps/openjpeg/2.1.2/lib:/opt/apps/sqlite/3.16.2/lib:/opt/apps/binutils/2.27/lib:/opt/apps/OpenBLAS/0.2.19/lib:/opt/apps/cairo/1.14.8/lib:/opt/apps/icu/58.2/lib:/opt/apps/harfbuzz/1.4.2/lib:/opt/apps/gdal/2.1.3/lib:/opt/apps/gmp/6.1.2/lib:/opt/apps/gsl/2.3/lib:/opt/apps/jags/4.2.0/lib:/opt/apps/pango/1.40.3/lib:/opt/apps/zeromq/4.2.5/lib:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/compiler/lib/intel64:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/ipp/lib/intel64:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/tbb/lib/intel64_lin/gcc4.7:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/compiler/lib/intel64_lin:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64_lin:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/tbb/lib/intel64/gcc4.7:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/daal/linux/daal/lib/intel64_lin:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/daal/linux/daal/../tbb/lib/intel64_lin/gcc4.7:/opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/ipp/lib/intel64_lin:/opt/apps/jdk/8u121/jre/lib/amd64/server:/opt/apps/R/3.5.1/lib64/R/lib:/opt/apps/ncurses/6.0/lib"
``
If I do Sys.getenv in R from RCall in Julia i get:
julia> using RCall
R> Sys.getenv('LD_LIBRARY_PATH')
[1] "/opt/apps/R/3.5.1/lib64/R/lib:/opt/apps/ncurses/6.0/lib"
R>
also noticed slight difference in sessionInfo() between my R and using R from RCall
julia> using RCall
R> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
Matrix products: default
BLAS: /opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64_lin/libmkl_gf_lp64.so
LAPACK: /opt/apps/R/3.5.1/lib64/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8
[9] LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.5.1
[bdeonovic@argon-login-1 ~]$ R
> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
Matrix products: default
BLAS/LAPACK: /opt/apps/parallel_studio/2017.4/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64_lin/libmkl_gf_lp64.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.5.1
Any thoughts?