我试图了解如何使用MPI_Intercomm_create创建从一个组到另一个组的通信句柄。这两个组也用自己的C文件编写,因此除非我使用全局变量等,否则一组不能直接访问其他通信句柄。我如何获得" peer_comm" (另一组的电话的第三个参数)?或者我只是不理解某事?
答案 0 :(得分:1)
MPI_Intercomm_create()
对群组上的传播者(例如MPI_Comm
)和不进行操作(例如MPI_Group
),所以让我们在这里使用正确的语义。
如果您使用相同的mpirun
命令行启动多个二进制文件,则它们都在MPI_COMM_WORLD
中,这可能是您要用于peer_comm
的内容。
如果您使用MPI_Comm_spawn()
启动“其他二进制文件”,那么它会返回您的内部通信器,因此您甚至可能不需要MPI_Intercomm_create()
。
我强烈建议你写一个Minimal, Complete, and Verifiable example。它不仅可以帮助您清除一些混淆,一旦明确说明问题,您就更有可能获得准确的答案。