在雪簇上初始化RcppZiggurat RNG-Generator

时间:2016-09-23 07:44:53

标签: r random parallel-processing rcpp snow

我正在尝试在雪群上使用RcppZiggurat包的RNG。为了在每个节点上播种RNG,我使用了内置于clusterSetupRNG中的L'Ecuyer算法。但是,随机数序列在每个节点上都是相同的。即使我在没有clusterSetupRNG命令的情况下运行它,代码的结果也保持完全相同。

这是我试过的:

library(RcppZiggurat)
library(snow)

myFun <- function(i){
    rn <- zrnormLZLLV(10)
    return(rn)
}

nodes <- rep("localhost",2)

cl <- makeCluster(nodes, type="SOCK")
vars <- list("zrnormLZLLV")
clusterExport(cl=cl,list=vars,envir=environment())
clusterSetupRNG(cl=cl,type="RNGstream")

res <- parLapply(cl,c(1,2,3,4),myFun)
res 

有人知道如何才能使这项工作成功吗?当然我总是可以使用标准的RNG rnorm,但是将RcppZiggurat的速度也放在集群上会很不错。

非常感谢你的帮助!

0 个答案:

没有答案