在R中并行化循环的最佳方法是什么?

时间:2016-02-20 00:12:56

标签: r foreach parallel-processing

我试图找到一种方法来并行化下一个for循环:

lambda_pois <- 25
for(k  in 1:100000){
        N=rpois(1, lambda_pois)
        S=0
        for(i in 1:N){
           u=runif(1)
           S=uniroot(f.inv,c(0,35000000000))$root+S
        }
        P[k]=S
        print(k)
    }

正如你所看到的,第一个是发生困难的事情,所以我试图并行化使用这个:

library(foreach)
library(doMC)
cores_to_use <- detectCores() 
cores_to_use
registerDoMC(cores_to_use - 2)

然后用foreach改变第一个for:

foreach(k=1:100000) %dopar%{

使用32核的CPU我没有必要的加速,连续7天,现在大约需要7个小时,我还能有更好的加速可能使用另一种并行吗? GPU或类似的东西,但仍使用R ???

0 个答案:

没有答案