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 を使用するわけではありません。

私は両方を試しました:

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"

オプション。

利用可能なすべての CPU を R に強制的に使用させるにはどうすればよいですか?

RがMKLを使用しているかどうかを確認するにはどうすればよいですか?

4

4 に答える 4

0

(本当の答えではありません: 私は MKL を使用しません。R-admin マニュアルで説明されているように、共有 BLAS としてOpenBlas を使用します。)

  • 最適化された BLAS が使用されているかどうかを簡単に確認するために、行列の乗算を行います。コアが 1 つしか使用されていない場合でも、最適化された BLAS の方が、標準の BLAS R が付属している場合よりも高速になるはずです。

  • 使用中のコア数を確認するtopには、行列の乗算中に (または CPU 使用率グラフ/モニター) を調べます。

  • 過去に CPU アフィニティで問題が発生したため、BLAS が $n$ スレッドを開始しましたが、それらはすべて同じコアで実行されていました。R 制限付きの並列処理を参照してください。
    r-devel (3.0.0-to-be) には CPU アフィニティを設定する機能があります。

于 2013-02-21T08:36:32.647 に答える
0

完全なチュートリアルは次の場所にあります。

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

または単に使用する:

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

于 2014-11-14T14:21:21.787 に答える