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,
On Fri, Aug 14, 2009 at 6:42 AM, Eugene Loh <Eugene.Loh_at_[hidden]> 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),
> 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