2012年6月19日 星期二

R 平行運算 Rmpi

颱風天無聊在家搞R的平行運算,還滿難搞的XD

小小紀錄一下過程。


作業系統:Ubuntu 12.04 64Bit

R 版本 2.14.1




首先打開終端機匯入PPA
sudo add-apt-repository ppa:marutter/c2d4u


更新
sudo apt-get update


安裝Rmpi和snow,一般都會把相依的套件一起裝上去。
sudo apt-get install r-cran-rmpi r-cran-snow


可以在用build-dep確認一下有沒有缺相依的套件
sudo apt-get build-dep r-cran-rmpi


接下來進入R
通常裝了套件後,R裡面就會自動裝好了,可以試一下
library(Rmpi)
library(snow)


看有沒有比較快
cl <- makeCluster(4,type="MPI")
system.time(sapply(1:1000,function(i) mean(rnorm(10000))))
system.time(parSapply(cl,1:1000,function(i) mean(rnorm(10000))))
stopCluster(cl)


其中makeCluster(4,type="MPI")是打開4個核心,

打開後在終端機輸入top會看到4個R把CPU吃滿滿,不過別擔心那是假象,

用完之後記得用stopCluster(cl)把他關掉不然就要一個個kill

參考資料:https://stat.ethz.ch/pipermail/r-sig-debian/2011-December/001747.html

沒有留言:

張貼留言