问题标签 [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 回答
389 浏览

r - R doParallel foreach中的并行处理

我编写了一个运行良好的脚本,但它似乎没有进行并行处理。我尝试将内核从 3 个更改为 16 个,但生成数据的速度没有改变。谁能让我知道我做错了什么以及如何让它发挥作用?

0 投票
2 回答
7099 浏览

r - doParallel (包) foreach 不适用于 R 中的大迭代

我在分别具有 4 个和 8 个物理内核和逻辑内核的 PC(OS Linux)上运行以下代码(从doParallel 的 Vignettes中提取)。

使用或更少运行代码iter=1e+6,一切都很好,我可以从 CPU 使用情况中看到,所有内核都用于此计算。然而,随着迭代次数的增加(例如iter=4e+6),并行计算似乎在这种情况下不起作用。当我还监控 CPU 使用率时,只有一个核心参与计算(100% 使用率)。

示例 1

你知道可能是什么原因吗?记忆可能是原因吗?

我四处搜索,发现与我的问题有关,但关键是我没有遇到任何错误,而且 OP 似乎通过在foreach循环中提供必要的包来提出解决方案。但是可以看出,我的循环中没有使用任何包。

更新1

我的问题仍然没有解决。根据我的实验,我不认为记忆可能是原因。我在运行以下简单并行(在所有 8 个逻辑内核上)迭代的系统上有 8GB 内存:

示例 2

我运行这段代码没有问题,但是当我监控 CPU 使用率时,只有一个核心(共 8 个)是 100%。

更新2

至于Example2,@SteveWeston(感谢您指出这一点)表示(在评论中):“您更新中的示例遇到了小任务。只有主人有任何真正的工作要做,包括发送任务和处理“

但是,Example1仍未解决。当我运行它并使用 监视进程htop时,更详细的情况如下:

p1让我们通过命名所有 8 个创建的进程p8。状态(中的列Shtop表示p1R正在运行并且保持不变。然而,p2直到p8,几分钟后,状态变为D(即不间断睡眠),几分钟后,再次变为Z(即终止但未被其父级收割)。你知道为什么会这样吗?

0 投票
1 回答
934 浏览

r - R doParallel foreach中的并行处理保存数据

在使并行处理部分正常工作方面取得了进展,但使用提取距离保存向量无法正常工作。我得到的错误是

我尝试更改下面的代码,以便将 foreach 步骤输出到 x_lake_length。但这并没有像我希望的那样输出向量。如何将实际结果保存到 csv 文件中。我正在使用 R x64 3.3.0 运行 Windows 8 计算机。

提前谢谢你仁

这是完整的代码。

0 投票
1 回答
71 浏览

r - 如何拆分数据框并在其上并行运行自定义功能?

我有一个大约 25L 行的大型数据集,其中应用了这个函数“状态”。它是一个标记程序。在 fn 内部,操作被矢量化并使用应用函数。c1-c4 是我数据中的列。执行 fn 仍然需要大约 5-6 小时。

有什么办法可以进一步加快fn. 我在一个有 16 个内核的服务器上工作。所以我相信它可以进一步加速。

0 投票
0 回答
3021 浏览

r - R中的并行编程:写入连接时出错

我正在使用该foreach包并行运行我的代码。尽管它适用于“小型”数据集,但无法运行较大的数据集。更具体地说,它会引发此错误:

序列化错误(数据,node$con):写入连接时出错

这是我的代码:

运行时,我在任务管理器中注意到在程序停止之前内存几乎达到 100%。我尝试使用各种数量的核心并尝试设置memory.limit(),但不是以系统的方式,问题仍然存在。我的问题可能是什么,我该如何解决?

计算机:Windows 10 64 位,28GB 内存,CPU 8 核,R3.2.2(64 位)

我知道这里发布了类似的内容,但当时问题没有解决。

0 投票
1 回答
209 浏览

r - 高效/多线程运行回归预测

我知道有很多关于内存消耗问题的帖子,mclapply但我仍然想看看是否有什么可以帮助我的情况。

我正在将随机森林模型拟合到 ~600 x 60,000(通过变量矩阵 X 响应 y)矩阵:

然后我想将该拟合与随机拟合进行比较,为此我正在做的是:

不幸的是,这太占用内存(需要超过 100GB),这使得它不切实际。

顺便说一句,我运行的环境是 Linux。

有什么建议么?

0 投票
1 回答
346 浏览

r - 如何使用 R 中的 if 语句并行化嵌套 for 循环?

下面是说明我的问题的示例代码:

上面这段代码计算时间太长,有没有办法并行化上面的代码?

val_1、val_2 和 A 是大约 50k 个元素的向量

0 投票
1 回答
66604 浏览

r - 在 R 中并行运行 for 循环

我有一个类似这样的 for 循环:

你能告诉我怎么做这个平行吗?

我根据在线示例进行了尝试,但不确定语法是否正确。它也没有提高速度。

0 投票
1 回答
221 浏览

r - R中的并行处理做错了吗?

我有一个代码,我正在尝试使用 foreach 包并行处理。代码可以运行,但是当我在 4 核的计算机上运行它时,大约需要 26 分钟,当我切换到 32 核的计算机时,仍然需要 13 分钟才能完成。我想知道我是否做错了什么,因为我使用了 8 倍的内核,但只减少了一半的时间。我的代码如下所示:

对于具有 4 核的计算机,我得到以下时间:

这是正常的吗?如果是这样,有没有人知道如何加速它,也许使用不同的包?非常感谢任何类型的帮助!

编辑:这些是我按照建议应用更正后得到的时间。对于 32 核:

对于 4 核:

请注意,之前,我通过一些循环进行了多次计算,这就是计算时间大幅减少的原因,但我相信仍然可以看出两台计算机之间的差异有所增加。

0 投票
1 回答
5348 浏览

r - 在R中将嵌套的for循环转换为并行

您可以在下面找到 R 中的一段代码,我想将其转换为使用多个 CPU 作为并行进程运行。我尝试使用foreach包,但没有走远.. 鉴于我有 3 级嵌套循环,我找不到一个很好的例子如何使它工作。帮助将不胜感激。下面的代码示例 - 我制作了一个简单的函数,因此可以作为示例:

常规方式获取结果:

现在尝试使用 foreach 做同样的事情:

这不像我想要的那样工作,因为它返回一个 30x2 维度的矩阵而不是 3x3。我的目的是模拟 i 和 j 组合 k 次的场景,并希望获得 i 和 j 的每个组合的这些 k 模拟的平均值。