gpt4 book ai didi

r - R : how to "source" on every node? 中的并行化

转载 作者:行者123 更新时间:2023-12-04 11:21:26 26 4
gpt4 key购买 nike

我使用以下方法创建了并行 worker (都在同一台机器上运行):

MyCluster = makeCluster(8)

如何使这 8 个节点中的每一个都成为我编写的 R 文件?
我试过:
clusterCall(MyCluster, source, "myFile.R")
clusterCall(MyCluster, 'source("myFile.R")')

还有几个类似的版本。但没有一个奏效。
你能帮我找出错误吗?

非常感谢!

最佳答案

以下代码可用于您的目的:

library(parallel)

cl <- makeCluster(4)
clusterCall(cl, function() { source("test.R") })

## do some parallel work

stopCluster(cl)

您也可以使用 clusterEvalQ()做同样的事情:
library(parallel)

cl <- makeCluster(4)
clusterEvalQ(cl, source("test.R"))

## do some parallel work

stopCluster(cl)

但是,这两种方法之间存在细微差别。 clusterCall()在每个节点上运行一个函数,而 clusterEvalQ()计算每个节点上的表达式。如果您有一个可变的文件列表来源, clusterCall()将更容易使用,因为 clusterEvalQ(cl,expr)将视任何 expr作为一个表达式,所以在那里放置一个变量并不方便。

关于r - R : how to "source" on every node? 中的并行化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21583617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com