异步例程何时更改为同步例程?
When does an asynchronous routine change to a synchronous one?
据我所知,当缓冲区已满时,异步发送 (MPI_Isend) 会更改为同步发送 (MPI_Send),因此它必须等到适当的 space available ,所以我想知道当缓冲区为空时异步接收(MPI_Irecv)是否更改为同步接收(MPI_recv)?
据我所知,MPI_Isend
不会因为缓冲区已满而变成阻塞例程。原因是Isend
使用了用户的发送缓冲区,所以内部缓冲没有问题。
也许您应该澄清“缓冲区”的含义。用户发送缓冲区,还是内部的东西?用户缓冲区永远不会“满”或“空”:您唯一可以说的是,在 MPI_Wait
之前不应重用缓冲区,在等待之后可以安全使用。
据我所知,当缓冲区已满时,异步发送 (MPI_Isend) 会更改为同步发送 (MPI_Send),因此它必须等到适当的 space available ,所以我想知道当缓冲区为空时异步接收(MPI_Irecv)是否更改为同步接收(MPI_recv)?
据我所知,MPI_Isend
不会因为缓冲区已满而变成阻塞例程。原因是Isend
使用了用户的发送缓冲区,所以内部缓冲没有问题。
也许您应该澄清“缓冲区”的含义。用户发送缓冲区,还是内部的东西?用户缓冲区永远不会“满”或“空”:您唯一可以说的是,在 MPI_Wait
之前不应重用缓冲区,在等待之后可以安全使用。