将整个包裹传递到雪群

时间:2012-09-02 01:00:02

标签: r parallel-processing scope

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

1 个答案:

答案 0 :(得分:7)

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

 clusterApply(cl, library(thePackageYouUse))

我认为最新R版本附带的parallel软件包有示例 - 请参阅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 }) 软件包随处可见:

{{1}}