【发布时间】:2011-10-12 03:16:25
【问题描述】:
我有一个 C 语言的 MPI 程序。程序的一部分可以访问任意数量的进程。我只希望 2 个进程做某事,而我希望其余的不做任何事情。不知道哪个进程 ID 会到达程序的这一部分,所以我不能这样做:
if(rank == 0 || rank == 1) {
// do something
}
// (else do nothing)
rank-0 和 rank-1 进程可能永远不会到达这里。我确实知道至少两个进程会到达这里。
如何在 MPI 中实现这一点?
非常感谢:)。
【问题讨论】:
-
您能告诉我们更多关于基本问题的信息吗?为什么超过 2 个进程做一件事会不好?让“额外”进程执行某些任务的额外成本可能低于避免它所需的同步成本。