首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用mkl编译r(支持多读)

用mkl编译r(支持多读)
EN

Stack Overflow用户
提问于 2013-02-21 15:24:56
回答 4查看 2.7K关注 0票数 5

关于这些指南,我编译了R:

http://www.r-bloggers.com/compiling-64-bit-r-2-10-1-with-mkl-in-linux/

http://cran.r-project.org/doc/manuals/R-admin.html#MKL

但是对于矩阵代数,R并不使用所有可用的CPU。

我都试过了:

代码语言:javascript
运行
复制
MKL="-L${MKL_LIB_PATH} -lmkl_gf_lp64 -lmkl_gnu_thread \
      -lmkl_core -fopenmp -lpthread"

代码语言:javascript
运行
复制
MKL="   -L${MKL_LIB_PATH}                               \
-Wl,--start-group                               \
            ${MKL_LIB_PATH}/libmkl_gf_lp64.a        \
            ${MKL_LIB_PATH}/libmkl_gnu_thread.a     \
            ${MKL_LIB_PATH}/libmkl_core.a           \
 -Wl,--end-group                                 \
 -lgomp -lpthread"

选项。

如何强制R使用所有可用的CPU?

如何检查R是否使用MKL?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-14 22:21:22

这里提供了完整的教程:

https://software.intel.com/en-us/articles/build-r-301-with-intel-c-compiler-and-intel-mkl-on-linux

或者简单地使用:

http://mran.revolutionanalytics.com/download/

票数 0
EN

Stack Overflow用户

发布于 2013-05-19 09:54:12

我想添加我的过程来使用MKL库编译R 3.0.1。我使用的是Debian7.0的核心i7英特尔处理器,8GRAM。首先,我使用以下命令设置了与MKL相关的环境变量(MKLROOT和LD_LIBRARY_PATH),然后安装了MKL库:

代码语言:javascript
运行
复制
>source /opt/intel/mkl/bin/mklvars.sh intel64

因此,我使用了以下参数来./configure:

代码语言:javascript
运行
复制
>./configure --enable-R-shlib --enable-threads=posix --with-lapack --with-blas="-fopenmp -m64 -I$MKLROOT/include -L$MKLROOT/lib/intel64 -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread -lm"

并使用make和make install完成了安装。

作为基准,我在没有MKL的情况下做了一个介于两个5000 x 5000矩阵产品之间的产品,得到:

用户系统耗时57.455 0.104 29.033

编译后:

用户系统耗时15.993 0.176 4.333

一个真正的收获!

票数 5
EN

Stack Overflow用户

发布于 2018-04-15 22:18:28

所有这一切现在都变得容易得多--一个简短的blog post is here详细讨论了下面的步骤。

但简而言之,您所需要的就是:

代码语言:javascript
运行
复制
## get archive key
cd /tmp
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB

## add MKL to apt's repo list
sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'

## update and install (500+ mb download, 1.9gb installed)    
apt-get update
apt-get install intel-mkl-64bit-2018.2-046 

## make it system default via update alternatives
update-alternatives --install /usr/lib/x86_64-linux-gnu/libblas.so     libblas.so-x86_64-linux-gnu      /opt/intel/mkl/lib/intel64/libmkl_rt.so 50
update-alternatives --install /usr/lib/x86_64-linux-gnu/libblas.so.3   libblas.so.3-x86_64-linux-gnu    /opt/intel/mkl/lib/intel64/libmkl_rt.so 50
update-alternatives --install /usr/lib/x86_64-linux-gnu/liblapack.so   liblapack.so-x86_64-linux-gnu    /opt/intel/mkl/lib/intel64/libmkl_rt.so 50
update-alternatives --install /usr/lib/x86_64-linux-gnu/liblapack.so.3 liblapack.so.3-x86_64-linux-gnu  /opt/intel/mkl/lib/intel64/libmkl_rt.so 50

## tell ldconfig
echo "/opt/intel/lib/intel64"     >  /etc/ld.so.conf.d/mkl.conf
echo "/opt/intel/mkl/lib/intel64" >> /etc/ld.so.conf.d/mkl.conf
ldconfig

就这样。没别的了。没有重新编译或链接。例如,R现在在sessionInfo()中显示:

代码语言:javascript
运行
复制
Matrix products: default
BLAS/LAPACK: /opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/lib/intel64_lin/libmkl_rt.so
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14996697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档