我正在运行R
版本(未使用intel parallel studio编译)并且正在尝试加载我自己编译的英特尔编译的共享Fortran
库。在我用来运行的脚本中,我包含LD_LIBRARY_PATH
,然后使用Rscript
运行R
脚本(调用dyn.load("My_Fortran.so")
,使用ifort和mkl编译)。
但是,当我运行脚本时,它会因Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so
而失败。 Rscript
是否有可能取消LD_LIBRARY_PATH
的设置?如果没有,是不是因为这个版本的R没有用intel parallel studio编译,它是否有可能无法加载共享库?
以下是我运行R脚本并加载路径的方法:
#!/bin/bash
module load R/3.1.0
LD_LIBRARY_PATH=/path/to/intel_parallel_studio/xe_2015_u3/install/mkl/lib/intel64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
Rscript myRscript.r
R脚本失败并显示:
Running R code
Attempting to load Fortran compiled shared library ... Done!
Calling Fortran subroutine from within R ...
MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so
答案 0 :(得分:1)
您可以查看R
和Rscript
的shell脚本源代码。
通常,此类PATH设置(对于可执行文件以及共享库)通常仅添加到而不会被覆盖。所以你可能有另一个问题。
可以修改/etc/ld.so.conf
吗?
修改还要考虑在之前设置LD_LIBRARY_PATH
module load R/3.1.0
。