R降雪 - 在并行功能中调用并行功能?

时间:2013-09-12 18:48:29

标签: r parallel-processing snowfall

我最近开始在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 个答案:

答案 0 :(得分:0)

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

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