为每个用户设置 R 使用的 libblas 和 liblapack(不是 global/systemwide)Debian Linux 10
Set libblas and liblapack used by R per user (not global/systemwide) Debian Linux 10
我可以为我的系统设置默认值 BLAS/LAPACK,随后由 R 使用:
sudo update-alternatives --config libblas.so.3-x86_64-linux-gnu
sudo update-alternatives --config liblapack.so.3-x86_64-linux-gnu
更新用于所有用户的 BLAS/LAPACK。我想选择 BLAS/LAPACK 而不影响所有其他用户在 R 中的 BLAS/LAPACK 用法。
我也尝试将 .bashrc
中的 $LD_LIBRARY_PATH
更改为:
LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/openblas:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH
无需更改(即使在注销并再次登录后)R 使用的默认 BLAS/LAPACK(由 sessionInfo()
检查)。
用户的单独 VM 可以工作,也许 Docker,但我希望有一个更简单的解决方案。
能够使用以下资源解决此问题:
https://www.r-bloggers.com/2020/10/installing-and-switching-to-mkl-on-fedora/ and https://www.r-bloggers.com/2020/10/switch-blas-lapack-without-leaving-your-r-session/.
简而言之,我用R's flexiblast library, itself a wrapper around flexiblas来表示每个用户使用哪个BLAS/LAPACK。将系统范围的 BLAS/LAPACK 更改为 flexiblas
后,我在 .Rprofile
中包含了以下几行
library(flexiblas)
flexiblas_load_backend('OPENBLASPTHREAD')
# [1] 2
flexiblas_switch(2)
或者当我想加载未安装在 /usr/lib/x86_64-linux-gnu/
下的英特尔 MKL BLAS/LAPACK 时,因此无法通过名称识别,例如 OPENBLASPTHREAD
:
library(flexiblas)
flexiblas_load_backend("/opt/intel/mkl/lib/intel64/libmkl_rt.so")
# [1] 2
flexiblas_switch(2)
我可以为我的系统设置默认值 BLAS/LAPACK,随后由 R 使用:
sudo update-alternatives --config libblas.so.3-x86_64-linux-gnu
sudo update-alternatives --config liblapack.so.3-x86_64-linux-gnu
更新用于所有用户的 BLAS/LAPACK。我想选择 BLAS/LAPACK 而不影响所有其他用户在 R 中的 BLAS/LAPACK 用法。
我也尝试将 .bashrc
中的 $LD_LIBRARY_PATH
更改为:
LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/openblas:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH
无需更改(即使在注销并再次登录后)R 使用的默认 BLAS/LAPACK(由 sessionInfo()
检查)。
用户的单独 VM 可以工作,也许 Docker,但我希望有一个更简单的解决方案。
能够使用以下资源解决此问题: https://www.r-bloggers.com/2020/10/installing-and-switching-to-mkl-on-fedora/ and https://www.r-bloggers.com/2020/10/switch-blas-lapack-without-leaving-your-r-session/.
简而言之,我用R's flexiblast library, itself a wrapper around flexiblas来表示每个用户使用哪个BLAS/LAPACK。将系统范围的 BLAS/LAPACK 更改为 flexiblas
后,我在 .Rprofile
library(flexiblas)
flexiblas_load_backend('OPENBLASPTHREAD')
# [1] 2
flexiblas_switch(2)
或者当我想加载未安装在 /usr/lib/x86_64-linux-gnu/
下的英特尔 MKL BLAS/LAPACK 时,因此无法通过名称识别,例如 OPENBLASPTHREAD
:
library(flexiblas)
flexiblas_load_backend("/opt/intel/mkl/lib/intel64/libmkl_rt.so")
# [1] 2
flexiblas_switch(2)