问题标签 [parallel-foreach]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
173 浏览

r - foreach循环的嵌套R

我有一个与此非常相似的代码:

每个随机矩阵可以独立于另一个生成,每个阈值矩阵可以独立于另一个生成,但是阈值矩阵取决于随机矩阵。我将如何为这样的代码进行嵌套并行化?我必须只选择一个循环并行执行吗?

谢谢。

0 投票
2 回答
1227 浏览

r - 在 foreach 循环中使用 mclapply 出现 R 错误

基于这里的这篇文章,我尝试编写一个脚本,在这里看到:

它最初工作,但现在抛出错误代码:

知道发生了什么吗?甚至可以将 mclapply 放在 foreach 循环中吗?

编辑:我还想说这是在单个 8 核机器上,而不是集群上。

0 投票
1 回答
1031 浏览

r - R 并行共享内存对象(Windows)

我有一个大数据表。每个并行进程从中读取数据,处理数据并返回一个小得多的 data.table。我不希望将大 DT 复制到所有进程,但似乎包中的%dopar%函数foreach必须复制。

有没有办法让所有进程(在 Windows 中)共享对象?也就是说,通过使用除foreach.

示例代码

(我对在不使用并行的情况下在 data.table 中执行此操作的更好方法不感兴趣。这只是为了说明子进程需要读取所有要处理的数据,但永远不要更改它的情况)

0 投票
0 回答
622 浏览

r - R中的并行处理---没有名为“SNFtool”的包

我想借助“parallel”包在 R 中运行并行代码,这是我的代码:

我得到的具体错误是:

但是我确实有包“SNFtool”,并且可以从命令行从 Rstudio 和 R 加载它。问题似乎只存在于使用并行进程运行脚本时。

0 投票
0 回答
415 浏览

r - R 中的嵌套并行进程 - 在 Foreach 循环中使用 ParSapply

我正在使用 doParallel 包并想parSapply ()在 a中使用,Foreach loop但我不确定如何在另一个并行循环中使用并行函数。

我有这个错误:

0 投票
2 回答
887 浏览

r - For循环在R中使用多核和foreach

我有一段非常长的代码,它由多个用户定义的函数组成,这些函数来源于我的代码开头。整个脚本在一个for循环中,它一个一个地读取 csv 文件,分析它们并每次迭代输出 2 个 csv 文件和一个 PNG。平均而言,每个文件的代码大约需要 18 秒,通常一次分析大约 150/200 个文件。

这需要很长时间,所以我想利用我 PC 上的 8 核。

我已将主for循环更改为foreach并添加了%dopar%,但是,我的代码不起作用。

显示了一个示例:

我认为问题在于其他加载的包无法在foreach循环中使用。如果是这种情况,我该如何纠正?其次,这是否也意味着之前在循环之外加载的任何源代码文件都无法使用?即我的用户定义函数?

我可能没有抓住重点,但我想有一种更简单的方法可以做到这一点,但我还没有掌握。任何意见,将不胜感激。

0 投票
2 回答
4282 浏览

r - R foreach:从单机到集群

以下(简化的)脚本在 unix 集群(4 个虚拟核心)的主节点上运行良好。

我想利用集群中的 16 个节点(16 * 4总共虚拟核心)。

我想我需要做的就是更改makeCluster. 但是我该怎么做呢?文档不是很清楚。

基于这篇相当古老的(2013 年)帖子http://www.r-bloggers.com/the-wonders-of-foreach/似乎我应该更改默认类型(sock或者MPI- 哪个 - 可以在 unix 上使用? )

编辑

来自foreach 的作者的这个小插曲:

默认情况下,doParallel 在类 Unix 系统上使用多核功能,在 Windows 上使用雪功能。请注意,多核功能仅在单台计算机上运行任务,而不是在计算机集群上运行。但是,您可以使用 snow 功能在集群上执行,使用类 Unix 操作系统、Windows 或什至组合。

是什么you can use the snow functionality意思?我该怎么做?

0 投票
1 回答
1901 浏览

r - 将 R 中并行作业的输出保存到一个文件中

我正在运行一项相当长的工作,我需要复制 100 次,因此我转向了 R 中的 foreach 功能,然后我通过 shell 脚本在 8 核集群上运行。我正在尝试将每次运行的所有结果输入到同一个文件中。我已经包含了我的代码的简化版本。

作业完成后,我的 .csv 文件为空。我相信我不太了解 foreach 如何保存结果以及如何访问它们。我想避免手动合并文件。另外,我需要在我的 foreach 循环结束时写 stopCluster(cl) 还是等到最后?任何帮助将非常感激。

0 投票
3 回答
22982 浏览

r - 如何加快随机森林的训练速度?

我正在尝试训练几个随机森林(用于回归)以让它们竞争并查看哪些特征选择和哪些参数提供了最佳模型。

然而,培训似乎花费了大量的时间,我想知道我是否做错了什么。

我用于训练的数据集(train下面称为)有 217k 行和 58 列(其中只有 21 个用作随机森林中的预测变量。它们都是numericor integer,除了布尔值,它是类character.y输出是numeric)。

我运行了以下代码四次,将值4, 100, 500,2000赋给nb_trees:

以下是他们每个人训练的时间:

由于我公司的服务器有 12 个内核和 125Go 的 RAM,我想我可以按照这个答案尝试并行化训练(但是,我使用了这个doParallel包,因为它似乎永远在运行doSNOW,我不知道为什么。而且我找不到我看到的地方也doParallel可以,抱歉)。

当我运行它时,它比非并行代码花费的时间更短:

但是,我认为这仍然需要很多时间,不是吗?我知道将树木组合成最终的森林需要时间,所以我没想到 12 核的速度会快 12 倍,但它只快了 ~ 2 倍......

  • 这是正常的吗?
  • 如果不是,我可以用我的数据和/或代码做些什么来从根本上减少运行时间吗?
  • 如果没有,我应该告诉负责服务器的人它应该更快吗?

感谢您的回答。

备注:

  • 我是唯一使用此服务器的人
  • 对于我的下一个测试,我将摆脱随机森林中未使用的列
  • 我很晚才意识到我可以通过调用randomForest(predictors,decision)而不是来改善运行时间randomForest(decision~.,data=input),我将从现在开始这样做,但我认为我上面的问题仍然存在。
0 投票
2 回答
251 浏览

r - 如何使用 `Parallel::mclapply` 有效地运行 800 万行数据?

我尝试使用以下代码拆分大约 800 万个元素的字符向量

向量orders_largest1stGroup$Time如下

然而,15 多分钟过去了,它仍在运行。所以,我想知道我的代码或我的执行方法一定有问题。

谁能看看并告诉我如何快速运行这段代码?