在R中并行运行函数

时间:2015-05-12 17:04:35

标签: r snowfall

我有两个函数 fun1 fun2 。我想在我的R脚本中并行运行它们。当它们完成时,我想在顺序进一步处理中使用它们的输出。我想这意味着我需要等待他们完成。

我非常感谢任何提示或指示。

谢谢。

1 个答案:

答案 0 :(得分:4)

R的并行包主要用于与可能不同的数据并行运行相同的函数或表达式。它们不是开箱即用的,只是以简单的方式运行不同的功能。

有一个像DAGapply这样的函数可以指定一个有向无环图(哪些部分取决于哪些部分)以及可以并行运行的所有部分,然后作为返回的初始部分,这将是很好的依赖关系全部完成的部分将被提交并行运行,但我还没有看到任何功能。我想过自己编写它可以看到要调用的主要部分(但它们是非导出的并且可以随时更改)但还没有找到时间。

现在可以使用的解决方法是编写自己的函数,该函数接受一个参数,如果该参数为1则调用第一个函数,如果2中的参数调用第二个函数。然后可以将这个新函数传递给并行函数(例如并行包中的parLapply),然后它将并行运行您的函数并等待两者完成。