rm(list = ls())
install.packages("foreach")
install.packages("doMC")
library(foreach)
library(doMC)
registerDoMC(4) # Number of CPU cores used in parallel computing
### for loop, using single CPU core ###
df <- data.frame()
for(i in 1:10) {
Sys.sleep(1)
df <- rbind(df, data.frame("value"=i, "quadratic"=i*i, "cubic"=i*i*i))
}
### foreach loop, using single CPU core ###
dfs <- foreach(i=1:10, .combine=rbind) %do% {
Sys.sleep(1)
data.frame("value"=i, "quadratic"=i*i, "cubic"=i*i*i)
}
identical(df, dfs)
### foreach loop, using multiple CPU cores ###
dfp <- foreach(i=1:10, .combine=rbind) %dopar% {
Sys.sleep(1)
data.frame("value"=i, "quadratic"=i*i, "cubic"=i*i*i)
}
identical(df, dfp)
2016年10月10日 星期一
讓R語言的迴圈跑平行處理
R語言中,可以用foreach搭配doMC這兩個套件來完成迴圈的平行化,程式碼如下:
Labels:
Parallel平行處理,
R語言
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言