Regarding MPI_Isend, the MPI standard says "A nonblocking send call indicates that the system may start copying data out of the send buffer. The sender should not access any part of the send buffer after a nonblocking send operation is called, until the send completes." (http://www.mpi-forum.org/docs/mpi-11-html/node46.html)
Is referencing the send buffer in another send call ok, or is that included in "access any part of the send buffer"?
In other words, is the following C code for the sender correct?
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);