MPI 互通:什么是对等通讯器?

MPI inter communication: What is the peer communicator?

我正在尝试了解如何使用 MPI_Intercomm_create 创建一个组到另一个组的通信句柄。这两个组也写在它们自己的 C 文件中,所以除非我使用全局变量等,否则一组无法直接访问另一组的通信句柄。如何获得另一组的 "peer_comm" (调用的第三个参数)?还是我只是不明白什么?

MPI_Intercomm_create() 在通信器上运行(例如 MPI_Comm),not 在组上运行(例如 MPI_Group)所以让我们在这里使用正确的语义.

如果您使用相同的 mpirun 命令行启动多个二进制文件,那么它们都在 MPI_COMM_WORLD 中,这可能是您想要用于 peer_comm.

如果您使用 MPI_Comm_spawn() 来启动 "the other binaries",那么它 returns 您的内部通信器,因此您可能甚至不需要 MPI_Intercomm_create()

我强烈建议你写一篇Minimal, Complete, and Verifiable example。它不仅可以帮助您消除一些困惑,一旦问题被明确说明,您将更有可能得到准确的答案。