是否收到的计数始终与MPI消息的发送计数匹配?

时间:2019-05-25 23:04:59

标签: mpi

当您在一个进程中发送包含某些n的{​​{1}}个元素的一条MPI消息,然后又以接收MPI_typecount的方式接收另一个消息时,您一定会总是收到所有> n元素吗?

从本质上讲,如果您通过阻塞模式n发送一条消息,然后通过一个具有足够大接收缓冲区的阻塞模式MPI_Send接收消息,您是否可以确保获得全部消息?

或者有机会您可能只获得拳头MPI_Recv元素,并且应该反复调用k < n直到获得完整内容。

我很确定答案是肯定的,但同时查看官方documentationspecification notes都找不到肯定的答案。

1 个答案:

答案 0 :(得分:0)

正如吉尔斯和戴维在评论中所说,答案是肯定的。正如Gilles所说,您永远不会收到截断的消息。如果n > count,则MPI将报告错误并失败。

如果n <= count将完成receive,但通常您不知道n的值是什么(传入消息的大小)。您需要通过调用MPI_Get_count()从状态变量中提取出来。