簡體   English   中英

用R配置MKL

[英]Configuring MKL with R

我在使用MKL庫觸發帶有R的線程時遇到問題。 我目前正在使用Ubuntu 18.04.2 LTS。

Linux pedro-HP-EliteOne-800-G1-AiO 4.18.0-15-generic #16~18.04.1-Ubuntu SMP Thu Feb 7 14:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

r-open$ screenfetch 
                          ./+o+-       pedro@pedro-HP-EliteOne-800-G1-AiO
                  yyyyy- -yyyyyy+      OS: Ubuntu 18.04 bionic
               ://+//////-yyyyyyo      Kernel: x86_64 Linux 4.18.0-15-generic
           .++ .:/++++++/-.+sss/`      Uptime: 19h 27m
         .:++o:  /++++++++/:--:/-      Packages: 1834
        o:+o+:++.`..```.-/oo+++++/     Shell: bash
       .:+o:+o/.          `+sssoo+/    Resolution: 1920x1080
  .++/+:+oo+o:`             /sssooo.   DE: GNOME 
 /+++//+:`oo+o               /::--:.   WM: GNOME Shell
 \+/+o+++`o++o               ++////.   WM Theme: Adwaita
  .++.o+++oo+:`             /dddhhh.   GTK Theme: Ambiance [GTK2/3]
       .+.o+oo:.          `oddhhhh+    Icon Theme: ubuntu-mono-dark
        \+.++o+o``-````.:ohdhhhhh+     Font: Ubuntu 11
         `:o+++ `ohhhhhhhhyo++os:      CPU: Intel Core i5-4590S @ 4x 3.7GHz [27.8°C]
           .o:`.syhhhhhhh/.oo++o`      GPU: intel
               /osyyyyyyo++ooo+++/     RAM: 2659MiB / 7867MiB
                   ````` +oo+++o\:    
                          `oo++.      

注意 :我的機器有4個核心

最初,我在intel網站上下載了文件l_mkl_2019.2.187.tgz ,並完成了/home/pedro/的安裝。 后來我下載了R-3.5.2.tar.gz文件來編譯具有多線程MKL支持的R。 我通過以下方式執行了編譯:

source /home/pedro/intel/mkl/bin/mklvars.sh intel64
cd /home/pedro/Downloads/R-3.5.2 && ./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

顯然,編譯過程沒有任何問題。 使用sessionInfo()命令,我得到以下結果:

> sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.2 LTS

Matrix products: default
BLAS/LAPACK: /home/pedro/intel/compilers_and_libraries_2019.2.187/linux/mkl/lib/intel64_lin/libmkl_gf_lp64.so

locale:
 [1] LC_CTYPE=pt_BR.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=pt_BR.UTF-8        LC_COLLATE=pt_BR.UTF-8    
 [5] LC_MONETARY=pt_BR.UTF-8    LC_MESSAGES=pt_BR.UTF-8   
 [7] LC_PAPER=pt_BR.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.2

基本上,我試圖使用parallel :: mclapply函數並行化Monte Carlo模擬。 事實是,串行(1核)使用MKL會有更好的結果,但是當嘗試並行化時,我意識到4核中沒有觸發線程。

我使用parallel::mclapply函數parallel::mclapply是:

parallel::mclapply(1:8, FUN = function(x) func_metodos(), mc.cores = 4)) ,其中func_metodos()是我在R中實現的函數,想重復8次。

注意 :除了使用Microsoft R Open之外,我還需要其他解決方案。 我不喜歡使用微軟指責的東西。

最好的祝福。

我在某種程度上涵蓋了

正如我在那里演示的那樣,這可以完全自動化。 我可以添加更多顏色,但現在必須運行...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM