我试图找到一种方法来并行化下一个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 ???