非阻塞发送和阻塞接收是否仍然需要等待

Is wait still necessary for non-blocking send with blocking receive

我知道如果双方都是非阻塞发送和接收,那么需要MPI_WaitMPI_Test。但是我想如果我们混合使用非阻塞发送和阻塞接收,考虑到阻塞接收可以保证通信的完成,我还需要调用MPI_Wait吗?

非阻塞和阻塞通信模式的区别仅在于本地。您可以自由混合不同类型的发送和接收。无论在哪一侧使用非阻塞原语,您 必须始终发出 MPI_Wait 或类似的东西 来完成通信。

这是清理资源所必需的:如果您从未完成非阻塞发送,您将永远不会被允许重用发送缓冲区并累积延迟请求对象。