Hello Mr. Eugene Loh, THANK YOU VERY MUCH, IT WORKED. I used both ISEND and IRECV and then a combined call to WAITALL with MPI_STATUSES_IGNORE.
with best regards, Amjad Ali. On Fri, Aug 14, 2009 at 6:42 AM, Eugene Loh <eugene....@sun.com> wrote: > amjad ali wrote: > > 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?? >> > > First of all, it really is good form to post receives as early as possible. > > 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 > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >