gpt4 book ai didi

multithreading - 使用 mkl 编译 r(支持多线程)

转载 作者:行者123 更新时间:2023-12-04 17:23:44 26 4
gpt4 key购买 nike

我根据这些指南编译了 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。

我都试过:

MKL="-L${MKL_LIB_PATH} -lmkl_gf_lp64 -lmkl_gnu_thread \
-lmkl_core -fopenmp -lpthread"


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?

最佳答案

我想添加我的程序来编译 R 3.0.1 与 MKL 库。我在核心 i7 英特尔处理器、8G RAM 上使用 Debian 7.0。首先,我安装了 MKL 库,然后我使用以下命令设置了 MKL 相关的环境变量(MKLROOT 和 LD_LIBRARY_PATH):

>source /opt/intel/mkl/bin/mklvars.sh intel64

所以我使用以下参数来./configure:
>./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

真正的收获!

关于multithreading - 使用 mkl 编译 r(支持多线程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14996697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com