MPI 非阻塞发送和接收排序
Posted
技术标签:
【中文标题】MPI 非阻塞发送和接收排序【英文标题】:MPI non-blocking send and receive ordering 【发布时间】:2021-12-30 10:11:35 【问题描述】:在 2 核系统上,对于以下代码
if(rank == 0)
MPI_Isend(A) // to rank 1
// Do something else.
MPI_Isend(B) // to rank 1
// Do something else.
MPI_Wait(B is sent)
MPI_Wait(A is sent)
else
MPI_Irecv(buffer1) // Listen to rank 0
// Do something else.
MPI_Irecv(buffer2) // Listen to rank 0
// Do something else.
MPI_Wait(buffer2 is finished receiving)
MPI_Wait(buffer1 is finished receiving)
是否保证 rank 1 在缓冲区 1 中接收 A,在缓冲区 2 中接收 B?
谢谢!
【问题讨论】:
你的例子很少,但我会说是的 【参考方案1】:MPI 消息是“非超车”的。来自同一来源的两条消息不能以与它们发送(阻塞情况)或发起(非阻塞情况)不同的顺序到达。当然,您可以随时通过指定不同的标签来放心。
【讨论】:
以上是关于MPI 非阻塞发送和接收排序的主要内容,如果未能解决你的问题,请参考以下文章