Hello ![]()
amjad ali wrote:First of all, it really is good form to post receives as early as possible.
Please tell me that if have multiple such ISEND-RECV squrntially for sending receiving data then DO we need to declare separate status(MPI_STATUS_SIZE) with for example status1, status2, ....; or a single declaration of it will work for all??
Anyhow, when you have multiple requests being completed at once, you need more than one status. So, you declare an array of statuses. Check the man page for MPI_Waitall. E.g.,
INCLUDE 'mpif.h'
INTEGER REQS(M)
INTEGER STATS(MPI_STATUS_SIZE,M)
DO I = 1, M
CALL MPI_IRECV(BUF?, COUNT?, DATATYPE?, SOURCE?, TAG?, COMM?, REQS(I), IER)
END DO
DO I = 1, N
CALL MPI_SEND(BUF?, COUNT?, DATATYPE?, DEST?, TAG?, COMM?, IER)
END DO
CALL MPI_WAITALL(M, REQS, STATS, IER)
If you don't care about the statuses, don't declare STATS and just use
CALL MPI_WAITALL(M,REQS,MPI_STATUSES_IGNORE,IER)
_______________________________________________
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users