我是 MPI 编程(mpich2 fedora)的新手。我在写是因为,当将 MPI_Barrier 与另一个不同于 MPI_COMM_WORLD 的通信器一起使用时,我得到了死锁。
我做了2个这样的沟通者:
MPI_Comm_split (MPI_COMM_WORLD, 颜色, 等级, &split_comm);
如果我在所有颜色都可以通过的地方放置一个 MPI_Barrier,那就没问题了。
但是如果我把一个 MPI_Barrier 放在只有 color == 1 可以通过的地方,我就会死锁。
如何将 MPI_Barrier 与另一个通信器一起使用?我也在使用 MPI_Bcast ()(与另一个不同的通信器 MPI_COMM_WORLD),但是当没有人调用 MPI_Bcast 时它也没有被阻止。MPI_COMM_WORLD 的不同通信器可以同步您自己的进程吗?