8

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

4

1 回答 1

7

在所有节点上安装软件包,并library(thePackageYouUse)通过可用命令之一在所有节点上调用代码,例如

 clusterApply(cl, library(thePackageYouUse))

我认为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
 })
于 2012-09-02T01:12:55.227 回答