运行 在 R 中并行运行

Running functions in parallel in R

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

如果有任何提示或指点,我将不胜感激。

谢谢。

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

最好有一个像 DAGapply 这样的函数,你可以指定一个有向无环图(哪些部分取决于其他哪些部分)并且所有可能 运行 并行的部分都是,然后当初始部分返回时,其依赖项已全部完成的部分将并行提交给 运行,但我还没有在任何地方看到该功能。想过自己写,能看到调用的主要部分(不过是非导出的,随时可能变),还没找到时间。

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