【发布时间】:2020-12-16 19:05:33
【问题描述】:
我有一组元素要由 R 中的用户定义函数运行。按顺序运行这些元素需要很长时间。然后我切换到使用foreach()、%dopar%、makecluster() 和registerdoparallel() 的并行计算。我想知道这些元素是如何分布到集群中的。假设我有 100 个元素并注册 5 个簇,元素 1~20 分配给簇 1,依此类推,或者它们是随机分配的。谢谢
【问题讨论】:
-
如果你真的想看看它是如何工作的,你可以通过阅读功能代码来追踪正在发生的事情。例如,在您的控制台中输入以下内容
parallel::splitIndicesWITHOUT () 将向您显示,如果任务数量超过一定数量,此方法会将它们从头到尾拆分。因此,对于 4 个集群,您将运行 1:5、6:10、11:15、16:20....除了看起来最小值为 1,000,因此您将在一个集群上运行所有操作。
标签: r foreach doparallel