【问题标题】:R Snowfall - Call a parallel function within parallel function?R Snowfall - 在并行函数中调用并行函数?
【发布时间】: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 个),因此拆分进程的其他部分不会节省时间。

【问题讨论】:

    标签: r parallel-processing snowfall


    【解决方案1】:

    您应该只并行化外部循环,因为您有足够的迭代来使用所有内核。如果迭代次数和内核数量不同,事情可能会变得很棘手,但对于您的问题,并行化其他循环只会损害性能。

    我写了一个关于并行运行嵌套循环的小插曲:Nesting Foreach Loops。虽然您没有使用foreach,但您可能会发现它很有帮助。

    【讨论】:

      猜你喜欢
      • 2015-07-23
      • 2013-09-13
      • 2014-02-13
      • 2017-02-17
      • 2014-06-05
      • 2014-05-26
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      相关资源
      最近更新 更多