R Snowfall - 在并行函数中调用并行函数?
Posted
技术标签:
【中文标题】R Snowfall - 在并行函数中调用并行函数?【英文标题】:R Snowfall - Call a parallel function within parallel function? 【发布时间】:2013-09-17 07:17:10 【问题描述】:我最近开始在 R 中使用 Snowfall 包。我让它在相当复杂的实现中成功运行,如下所示(并行处理 y 循环):
increment x from 1:100
increment y from 1:100
increment z from 1:20
increment q from 1:20
我在 2 或 4 处理器计算机上运行它。理论上,我想我可以并行运行 x、y、z 和 q 循环。所以并行运行 x 计数器,然后对于每个并行 x 进程,并行运行 y 等等。
我的问题是,使用这么少的处理器是否有意义?例如对于四个处理器,我想象的 y 循环计算将保持进程以最大输出运行(每个处理器在任何时候平均 25 个),因此拆分进程的其他部分不会节省时间。
【问题讨论】:
【参考方案1】:您应该只并行化外部循环,因为您有足够的迭代来使用所有内核。如果迭代次数和内核数量不同,事情可能会变得很棘手,但对于您的问题,并行化其他循环只会损害性能。
我写了一个关于并行运行嵌套循环的小插曲:Nesting Foreach Loops。虽然您没有使用foreach
,但您可能会发现它很有帮助。
【讨论】:
以上是关于R Snowfall - 在并行函数中调用并行函数?的主要内容,如果未能解决你的问题,请参考以下文章