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
>

Reply via email to