我有两个函数 fun1 和 fun2。我想在我的 R 脚本中并行运行它们。当它们完成时,我想按顺序使用它们的输出进行进一步处理。我想这意味着我需要等待它们完成。
我将非常感谢任何提示或指示。
谢谢。
最佳答案
R 的并行包主要设计用于并行运行相同的函数或表达式以及可能不同的数据。它们并非开箱即用,无法以简单的方式运行不同的功能。
最好有一个像 DAGapply 这样的函数,你可以指定一个有向无环图(哪些部分依赖于其他哪些部分)并且所有可以并行运行的部分都是,然后作为初始部分返回,然后将提交其依赖项全部完成的部分以并行运行,但我还没有在任何地方看到该功能。想过自己写,能看到调用的主要部分(但它们是非导出的,随时可能更改),但还没有找到时间。
您现在可以使用的解决方法是编写您自己的函数,该函数接受单个参数,如果该参数为 1,则它调用您的第一个函数,如果参数为 2,则它调用您的第二个函数。然后可以将这个新函数传递给并行函数(例如并行包中的 parLapply),它会依次并行运行您的函数并等待两者完成。
关于在 R 中并行运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30197280/