好吧,标题听起来令人困惑,但概念并不算太糟糕。基本上,我有两个正在运行的进程(让我们称它们为进程0和进程1)。他们都同时运行一个功能。在此功能运行时,有时它们需要彼此的数据。因此,进程0有时会请求进程1的数据,反之亦然。由于他们彼此依赖,我不希望一个过程在另一个之前完成。如果进程0完成其工作,它应该继续检查进程1的请求(否则进程1将无法完成)。两个流程完成工作后,才会继续工作。
我在执行此操作时遇到了问题。现在,我让每个进程在完成后向所有其他进程发送通知(因此进程1在其工作完成时向进程2发送通知)。然后我有一个循环,它应该继续,直到它收到来自所有其他进程的通知。只有这样,循环才会退出并继续进程。但是,这不起作用。这些过程在其他过程完成之前就会继续进行。我觉得这可能是一个更简单的方法来做到这一点,我没有想到。
我是MPI的新手,所以我希望我能够正确解释这一点。此外,这需要适用于任何数量的流程,而不仅仅是两个流程。谢谢你的帮助!