关于 MPI_Isend,MPI 标准说“非阻塞发送调用表示系统可能开始将数据复制出发送缓冲区。在调用非阻塞发送操作后,发送方不应访问发送缓冲区的任何部分,直到发送完成。 " (http://www.mpi-forum.org/docs/mpi-11-html/node46.html)
在另一个发送调用中引用发送缓冲区是否正常,或者是否包含在“访问发送缓冲区的任何部分”中?
换句话说,以下发件人的 C 代码是否正确?
MPI_Request req[2];
MPI_Status statuses[2];
...
MPI_Isend(buf, type, count, dest0, tag, comm, &req[0]);
MPI_Isend(buf, type, count, dest1, tag, comm, &req[1]);
MPI_Waitall(2, req, statuses);