2016-06-23 2 views

答えて

1

Rで機械学習アルゴリズムを使用する場合、並列化を可能にするライブラリをいくつか呼び出すことができます。下の例では、その違いは大きいです。

あなたはこの(「2」は、クラスタのあなたの数に依存することに注意してください)のようにそれらを呼び出すことができます。

library(doParallel) 
cl <- makeCluster(2) 
registerDoParallel(cl) 

この例では、https://cran.r-project.org/web/packages/doParallel/vignettes/gettingstartedParallel.pdf

> x <- iris[which(iris[,5] != "setosa"), c(1,5)] 
> trials <- 10000 
> ptime <- system.time({ 
+ r <- foreach(icount(trials), .combine=cbind) %dopar% { 
+ ind <- sample(100, 100, replace=TRUE) 
+ result1 <- glm(x[ind,2]~x[ind,1], family=binomial(logit)) 
+ coefficients(result1) 
+ } 
+ })[3] 
> ptime 

から抽出され、よりもはるかに高速です

> stime <- system.time({ 
+ r <- foreach(icount(trials), .combine=cbind) %do% { 
+ ind <- sample(100, 100, replace=TRUE) 
+ result1 <- glm(x[ind,2]~x[ind,1], family=binomial(logit)) 
+ coefficients(result1) 
+ } 
+ })[3] 
> stime