将整个包裹传递到雪群

Mic*_*ael 7 parallel-processing scope r

我正在尝试并行化(使用snow::parLapply)一些依赖于包的代码(即,除了之外的包snow).调用的函数中引用的对象parLapply必须使用显式传递给集群clusterExport.有没有办法将整个包传递给集群,而不是必须明确命名每个函数(包括用户函数调用的包的内部函数!)clusterExport

Dir*_*tel 7

在所有节点上安装软件包,并library(thePackageYouUse)通过一个可用的命令在所有节点上调用代码,类似于

 clusterApply(cl, library(thePackageYouUse))
Run Code Online (Sandbox Code Playgroud)

我认为parallel最新R版本附带的软件包有一些示例 - 例如,这里可以看到软件包在help(clusterApply)哪里boot加载:

 ## A bootstrapping example, which can be done in many ways:
 clusterEvalQ(cl, {
   ## set up each worker.  Could also use clusterExport()
   library(boot)
   cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
   cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
   NULL
 })
Run Code Online (Sandbox Code Playgroud)

  • 我意识到这是一个老帖子,但我认为第一个建议(`clusterApply`)应该是:`clusterCall(cl,function()library(thePackageYouUse))` (18认同)