Le 2015-12-17 12:45, Jeff Squyres (jsquyres) a écrit :
On Dec 17, 2015, at 8:57 AM, Eric Chamberland 
<eric.chamberl...@giref.ulaval.ca> wrote:

But I would like to know if the MPI I am using is able to do message 
progression or not: So how do an end-user like me can knows that? Does-it rely 
on hardware?  Is there a #define by OpenMPI that one can uses into his code?

An MPI program *must* call MPI_Test or MPI_Wait to complete a non-blocking 
request -- it's not optional.

Just to be clear: we *always* call MPI_Wait. Now the question was about *when* to do it.

We did 2 different things:

#1- ASAP after the MPI_Isend
#2- As late as possible, in a class destructor for example, which can occur a while after other MPI_Irecv and MPI_Isend pairs have been issued.

Is it true to tell that if there were message progression, the receiving side can complete the MPI_Wait linked to the MPI_Irecv call, event if the sending side have *not yet* called the MPI_Wait linked to the MPI_Isend ?

For performance portability, it's likely a good idea to have some calls to 
MPI_Test*() periodically.


Interesting and easy to do for us...

Thanks,

Eric

Reply via email to