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