我正在处理https://github.com/mplatzer/BTYDplus/blob/master/R/pareto-nbd-mcmc.r中给出的BTYD加代码。该代码使用MCMC技术估计BTYD模型的Pareto / NBD参数。
所以,如果你看到代码的第224-228行,它就会使用函数&mclapply' - 我发现它只能在Linux或MAC上运行。我正在使用Windows机器,需要转换这部分代码,以便我也可以在Windows机器上执行它。那么,任何人都可以帮助我使用这个特定的代码,或者可以大致了解如何使用' mclapply'对于Windows?
任何帮助将不胜感激。
答案 0 :(得分:6)
使用parLapply
:
Sys.info()["sysname"]
# sysname
#"Windows"
library(parallel)
cl <- makeCluster(getOption("cl.cores", 2))
l <- list(1, 2)
system.time(
parLapply(cl, l, function(x) {
Sys.sleep(10)
})
)
#user system elapsed
#0 0 10
stopCluster(cl)
如果您的任务包含随机数生成,您可能需要查看doRNG包的可重现性。
答案 1 :(得分:0)
在并行软件包的文档中,我发现了以下内容:
“作为lapply的类似物
parLapply(cl,x,FUN,...)
mclapply(X,FUN,...,mc.cores)
Windows上没有mclapply ...“
https://stat.ethz.ch/R-manual/R-devel/library/parallel/doc/parallel.pdf
的第3页所以我猜猜parLapply就是你要找的东西。
警告:我必须说我自己还没有使用过parLapply。我在Windows中用R运行的唯一并行计算是使用foreach包完成的。