问题标签 [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.
r - R doParallel foreach中的并行处理
我编写了一个运行良好的脚本,但它似乎没有进行并行处理。我尝试将内核从 3 个更改为 16 个,但生成数据的速度没有改变。谁能让我知道我做错了什么以及如何让它发挥作用?
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
。状态(中的列S
)htop
表示p1
它R
正在运行并且保持不变。然而,p2
直到p8
,几分钟后,状态变为D
(即不间断睡眠),几分钟后,再次变为Z
(即终止但未被其父级收割)。你知道为什么会这样吗?
r - R doParallel foreach中的并行处理保存数据
在使并行处理部分正常工作方面取得了进展,但使用提取距离保存向量无法正常工作。我得到的错误是
我尝试更改下面的代码,以便将 foreach 步骤输出到 x_lake_length。但这并没有像我希望的那样输出向量。如何将实际结果保存到 csv 文件中。我正在使用 R x64 3.3.0 运行 Windows 8 计算机。
提前谢谢你仁
这是完整的代码。
r - 如何拆分数据框并在其上并行运行自定义功能?
我有一个大约 25L 行的大型数据集,其中应用了这个函数“状态”。它是一个标记程序。在 fn 内部,操作被矢量化并使用应用函数。c1-c4 是我数据中的列。执行 fn 仍然需要大约 5-6 小时。
有什么办法可以进一步加快fn. 我在一个有 16 个内核的服务器上工作。所以我相信它可以进一步加速。
r - R中的并行编程:写入连接时出错
我正在使用该foreach
包并行运行我的代码。尽管它适用于“小型”数据集,但无法运行较大的数据集。更具体地说,它会引发此错误:
序列化错误(数据,node$con):写入连接时出错
这是我的代码:
运行时,我在任务管理器中注意到在程序停止之前内存几乎达到 100%。我尝试使用各种数量的核心并尝试设置memory.limit()
,但不是以系统的方式,问题仍然存在。我的问题可能是什么,我该如何解决?
计算机:Windows 10 64 位,28GB 内存,CPU 8 核,R3.2.2(64 位)
我知道这里发布了类似的内容,但当时问题没有解决。
r - 高效/多线程运行回归预测
我知道有很多关于内存消耗问题的帖子,mclapply
但我仍然想看看是否有什么可以帮助我的情况。
我正在将随机森林模型拟合到 ~600 x 60,000(通过变量矩阵 X 响应 y)矩阵:
然后我想将该拟合与随机拟合进行比较,为此我正在做的是:
不幸的是,这太占用内存(需要超过 100GB),这使得它不切实际。
顺便说一句,我运行的环境是 Linux。
有什么建议么?
r - 如何使用 R 中的 if 语句并行化嵌套 for 循环?
下面是说明我的问题的示例代码:
上面这段代码计算时间太长,有没有办法并行化上面的代码?
val_1、val_2 和 A 是大约 50k 个元素的向量
r - 在 R 中并行运行 for 循环
我有一个类似这样的 for 循环:
你能告诉我怎么做这个平行吗?
我根据在线示例进行了尝试,但不确定语法是否正确。它也没有提高速度。
r - R中的并行处理做错了吗?
我有一个代码,我正在尝试使用 foreach 包并行处理。代码可以运行,但是当我在 4 核的计算机上运行它时,大约需要 26 分钟,当我切换到 32 核的计算机时,仍然需要 13 分钟才能完成。我想知道我是否做错了什么,因为我使用了 8 倍的内核,但只减少了一半的时间。我的代码如下所示:
对于具有 4 核的计算机,我得到以下时间:
这是正常的吗?如果是这样,有没有人知道如何加速它,也许使用不同的包?非常感谢任何类型的帮助!
编辑:这些是我按照建议应用更正后得到的时间。对于 32 核:
对于 4 核:
请注意,之前,我通过一些循环进行了多次计算,这就是计算时间大幅减少的原因,但我相信仍然可以看出两台计算机之间的差异有所增加。
r - 在R中将嵌套的for循环转换为并行
您可以在下面找到 R 中的一段代码,我想将其转换为使用多个 CPU 作为并行进程运行。我尝试使用foreach
包,但没有走远.. 鉴于我有 3 级嵌套循环,我找不到一个很好的例子如何使它工作。帮助将不胜感激。下面的代码示例 - 我制作了一个简单的函数,因此可以作为示例:
常规方式获取结果:
现在尝试使用 foreach 做同样的事情:
这不像我想要的那样工作,因为它返回一个 30x2 维度的矩阵而不是 3x3。我的目的是模拟 i 和 j 组合 k 次的场景,并希望获得 i 和 j 的每个组合的这些 k 模拟的平均值。