' mclapply'对于Windows

时间:2015-11-19 08:05:00

标签: r

我正在处理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?

任何帮助将不胜感激。

2 个答案:

答案 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包完成的。