【发布时间】:2018-04-03 12:15:07
【问题描述】:
我试图了解如何使用 MPI_Intercomm_create 创建从一个组到另一个组的通信句柄。这两组也写在自己的 C 文件中,因此除非我使用全局变量等,否则一组无法直接访问另一组的通信句柄。如何获得另一组的“peer_comm”(调用的第三个参数)?还是我只是不明白什么?
【问题讨论】:
标签: mpi communication
我试图了解如何使用 MPI_Intercomm_create 创建从一个组到另一个组的通信句柄。这两组也写在自己的 C 文件中,因此除非我使用全局变量等,否则一组无法直接访问另一组的通信句柄。如何获得另一组的“peer_comm”(调用的第三个参数)?还是我只是不明白什么?
【问题讨论】:
标签: mpi communication
MPI_Intercomm_create() 作用于通信器(例如MPI_Comm)而不作用于组(例如MPI_Group),所以让我们在这里使用正确的语义。
如果您使用相同的mpirun 命令行启动多个二进制文件,那么它们都在MPI_COMM_WORLD 中,这很可能是您想要用于peer_comm 的内容。
如果您使用MPI_Comm_spawn() 来启动“其他二进制文件”,那么它会返回您的内部通信器,因此您可能甚至不需要MPI_Intercomm_create()。
我强烈建议您写Minimal, Complete, and Verifiable example。它不仅可以帮助您消除一些困惑,而且一旦清楚地说明问题,您更有可能得到准确的答案。
【讨论】: