r - 将整个包裹传递给雪簇

标签 r parallel-processing scope

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

最佳答案

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

 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
 })

关于r - 将整个包裹传递给雪簇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12232629/

相关文章:

Java Spark 并行枚举

r - 嵌套函数的复杂对象初始化范围问题

r - R中的子设置/匹配行和列

R:带有 ngram 标记器和字典的 dtm 在 Ubuntu 中损坏?

c# - 是否有任何理由锁定 new object() 以外的东西?

c++ - 如何调用在 main() 内部但在外部范围内定义的变量

javascript - 如何制作返回其内部函数值的函数?

r - gsub 只是模式的一部分

r - 删除或隐藏数据点的标签

javascript - 为什么浏览器限制并行 HTTP 请求