【问题标题】:Set libblas and liblapack used by R per user (not global/systemwide) Debian Linux 10为每个用户设置 R 使用的 libblas 和 liblapack(不是全局/系统范围)Debian Linux 10
【发布时间】:2021-12-06 16:27:39
【问题描述】:

我可以为我的系统设置默认的 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。我想在不影响所有其他用户在 R 中使用 BLAS/LAPACK 的情况下选择 BLAS/LAPACK。

我还尝试将我的$LD_LIBRARY_PATH 中的.bashrc 更改为:

LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/openblas:$LD_LIBRARY_PATH"; export LD_LIBRARY_PATH

不更改(即使在注销并再次登录后)R 使用的默认 BLAS/LAPACK(由sessionInfo() 检查)。

为用户使用单独的虚拟机,也许 Docker 也可以,但我希望有一个更简单的解决方案。

【问题讨论】:

    标签: r linux user-permissions lapack blas


    【解决方案1】:

    能够使用以下来源解决此问题: https://www.r-bloggers.com/2020/10/installing-and-switching-to-mkl-on-fedora/https://www.r-bloggers.com/2020/10/switch-blas-lapack-without-leaving-your-r-session/

    简而言之,我使用了R's flexiblast library,它本身就是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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 2012-04-09
      相关资源
      最近更新 更多