我可以使用MPI_Probe来探测集合操作发送的消息吗?

cpp*_*ame 0 parallel-processing mpi

在我的代码中,我有一个服务器进程反复探测传入的消息,它有两种类型.每个进程将发送一次这两种类型,以向服务器进程提供有关其终止的提示.

我想知道使用MPI_Broadcast广播这些终止消息并使用MPI_Probe来探测其到达是否有效.

我尝试使用这种组合,但失败了.这种失败可能是由其他一些事情引起的.所以我想任何知道此事的人都要确认一下.

Jon*_*rsi 5

不,您只能使用MPI_Probe来测试点对点通信.对于集体沟通来说,参与的唯一方式就是积极地进行集体呼吁.根据标准MPI_Probe的定义,"该调用与在程序中同一点执行的MPI_RECV(...,源,标签,通信,状态)调用所接收的相同消息相匹配" -例如,它只匹配像Recv那样的点对点的东西.

使用新的非阻塞集合体进入MPI3,您可以使用MPI_Test(或MPI_Wait)来检查非阻塞请求的状态,就像使用非阻塞发送/接收一样,尽管我没有关注工作组的工作太紧密,所以我不知道细节.