- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于 R 中的 doSNOW
集群的基本问题。当我们在 R 中注册并行集群时,它会将全局环境中分配的所有变量(数据)加载到并行集群。有什么办法,我们可以指定在并行集群中加载哪些对象?
更具体一点。考虑以下示例。我在全局环境中有两个变量 x 和 y。当我注册集群时,它会将 x 和 y 加载到已注册的集群中。但是,我只需要并行集群中的 x 而不是 y。
library(doSNOW)
cl <- makeCluster(2, type="SOCK")
registerDoSNOW(cl)
x <- 1:5
y <- 6:10
foreach(x=x, .combine=c) %dopar% x^2
stopCluster(cl)
由于设置并行集群需要时间,当全局环境中有大量数据(或大数据集)但您不需要所有数据时,它可以帮助减少该时间并行集群。
最佳答案
注册 doSNOW 后,变量不会导出到工作程序。只有在执行 foreach 循环时,变量才会自动导出给工作人员,即便如此,它也只会导出在 foreach 循环主体中实际引用并在“本地”环境(不是全局环境)中定义的变量例如,如果 foreach 循环在函数中执行)。它使用这种保守的方法来避免向工作人员发送计算不需要的巨大对象。
还需要注意的是,自动导出的变量不会导出到 worker 的全局环境中,即使它们是在 master 的全局环境中定义的。它们在 doSNOW 设置的特殊环境中定义,因此它们不会破坏您可能使用 clusterExport
函数创建的任何全局变量,例如。
您可以使用 foreach .verbose=TRUE
选项来获取由 doSNOW 自动导出的变量列表。这是您的示例的报告:
> foreach(x=x, .combine='c', .verbose=TRUE) %dopar% {
+ x ^ 2
+ }
no variables are automatically exported
如果要防止自动导出特定变量,可以使用 foreach .noexport
选项。如果您想使用 clusterExport
将大型数据框导出一次给工作人员,然后在多个 foreach 循环中使用它,这可能很有用。
关于r - 指定在 doSNOW 集群中加载哪些对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34347905/
我有一个关于 R 中的 doSNOW 集群的基本问题。当我们在 R 中注册并行集群时,它会将全局环境中分配的所有变量(数据)加载到并行集群。有什么办法,我们可以指定在并行集群中加载哪些对象? 更具体一
在多核上使用 doSNOW 包访问/写入全局变量时是否有问题? 在下面的程序中,每个 MyCalculations(ii) 都写入矩阵“globalVariable”的第 ii 列... 你认为结果会
我有一个包含内部循环的外部 foreach/dopar 并行循环。内循环的每个实例都应该处理同一组随机数。其余部分,即外部主体的其余部分和并行实例应该像往常一样工作,即具有独立的随机数。 我可以通过在
我正在与本地计算机上的工作人员一起使用SOCK集群运行并行操作。如果我限制要迭代的集合(在一个测试中使用70个任务而不是完整的135个任务),那么一切都很好。如果我购买全套产品,则会收到错误消息“un
继续this question (https://stackoverflow.com/questions/17222942/allow-foreach-workers-to-register-and-
我正在学习本教程使用 R 和插入符进行机器学习简介 ( https://www.youtube.com/watch?v=z8PRU46I3NY ),并在 macOS 上与 CentOS 上并行运行 R
在 Windows 上的 R 中使用集群时,我一直在尝试找到一种将结果从集群传输到主服务器的简单方法。如果结果是一个数组或一个简单的数字,foreach/%dopar% 语句的 .combine 选项
我已经在不同的机器上运行了一些测试代码,总是得到相同的结果。我认为各种 do... 包背后的理念是它们可以互换用作 foreach 的 %dopar% 的后端。为什么情况并非如此? 例如,此代码片段有
我是一名优秀的程序员,十分优秀!