当没有消息时我调用MPI_IRecv / MPI_Recv时应该是预期的行为

时间:2015-02-25 23:29:44

标签: mpi

我是MPI的新手所以请耐心等待。 在这种情况下,我可以找到有关预期行为的任何文件。

假设我从MPI_IRecv调用{1}来调用ANY_SOURCE,但是没有人发送任何东西到proc#1,我会收到空​​缓冲区还是会收到错误?

1 个答案:

答案 0 :(得分:2)

由于MPI_IRecv是异步版本,因此基本上什么都不会发生。

如果你是MPI_Wait在生成的请求中会发生同样的事情,就像您直接调用MPI_Recv一样:您的程序将(通常)阻止,直到有适当的消息到达。

如果您没有发送该消息,您的程序就会挨饿。

注意:"通常"指由于某些其他相关或不相关的问题而产生错误的所有可能情况。