【问题标题】:Conda install r-essentials with MKLConda 使用 MKL 安装 r-essentials
【发布时间】:2020-03-09 02:56:42
【问题描述】:

在我的 RHEL 服务器上,我没有管理员权限,但我可以创建 Conda 环境。我想创建一个使用英特尔 MKL(英特尔® 数学核心库)运行 R 的 Conda 环境。

我用 R_defaults.yml 创建环境,运行 $> conda env create --file R_defaults.yml:

name: R_defaults
channels:
  - defaults
  - conda-forge
dependencies:
  - pkgs/r::r-essentials=3.6.0=r36_0

激活环境,启动 R,和 sessionInfo() 我得到 MKL 没有被使用:

R version 3.6.1 (2019-07-05)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: Red Hat Enterprise Linux Server 7.7 (Maipo)

Matrix products: default
BLAS/LAPACK: /home/geiringe/miniconda3/envs/R_r/lib/R/lib/libRblas.so

Microsoft R Open (https://mran.microsoft.com/download) 可以与 MKL 一起安装。

Anaconda 似乎改变了对 Microsoft R Open 的看法。在 2018 年 6 月,据说它成为 Anaconda 发行版的默认 R (https://www.anaconda.com/introducing-microsoft-r-open-as-default-r-for-anaconda-distribution/)。现在他们希望我们从 Microsoft R Open 迁移出去,他们不会更新 MRO 包 (https://docs.anaconda.com/anaconda/user-guide/tasks/using-r-language/#switch-an-environment-from-r-to-mro)。 r::mro-base 的最新版本是 3.5.1,已经超过 1 年了。 r::r-essentials 的最新版本是 3.6.0

我有没有办法使用更新版本的 R 和 MKL 创建 Conda 环境?

【问题讨论】:

    标签: r conda intel-mkl microsoft-r


    【解决方案1】:

    优先考虑 Conda Forge 并明确指定 libblas 构建它对我有用 (osx-64)。例如,

    YAML

    name: R_mkl
    channels:
      - conda-forge
      - defaults
    dependencies:
      - conda-forge::r-essentials=3.6
      - conda-forge::libblas=3.8.0=14_mkl
    

    来自激活环境中R -e "sessionInfo()" 的输出:

    R version 3.6.1 (2019-07-05)
    Platform: x86_64-apple-darwin13.4.0 (64-bit)
    Running under: macOS Mojave 10.14.6
    
    Matrix products: default
    BLAS/LAPACK: /Users/mfansler/miniconda3/envs/r_mkl/lib/libmkl_rt.dylib
    
    locale:
    [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/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.6.1
    

    希望 linux-64 的情况类似。

    【讨论】:

    • 成功了!我现在也探索了 libblas=3.8.0=14_openblas 和 libblas=3.8.0=14_blis 。在 Anaconda Cloud 中,libblas 以 netlib.org/lapack 为主页。 LAPACK 3.8.0_14(2017 年 11 月)与最新版本为 2019.5 的 intel::mkl 有何关系? conda-forge::libblas=3.8.0=14 更老了吗?我没有设法用 intel::mkl=2019.5 替换。
    • @GeirInge 不,Conda Forge 的 build 14 仅一个月大 (see files) 并被列为兼容所有 2019 MKL 版本。在我的系统上,它从 defaults 频道获取最新的 mkl。
    猜你喜欢
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 2016-04-14
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多