The new MPI-3 function MPI_Improbe might be helpful here, but it may still cost 
you extra in temporary buffer space (allocated internally in MPI), depending on 
the size of the incoming message.

Meaning: OMPI (and other MPI's) will still allocate *something* for each 
matched incoming message, even if you don't receive it right away.  That 
*something* may be the entire message (if it's short), or the first part of the 
message (if it's long).

We've implemented MPI_Improbe (and friends) on the OMPI SVN trunk; it won't be 
available in a general release until the OMPI 1.7 series.  But you might want 
to give it a whirl anyway...?


On Apr 20, 2012, at 5:14 PM, Jeffrey A Cummings wrote:

> MPI_Iprobe returns a single status object if at least one message is waiting 
> in a queue.  I would like to be able to do something similar (i.e., non 
> blocking probes) which would produce an array of status objects representing 
> all messages waiting in a queue.  I would then decide on the order of actual 
> message reception based on the source field of the status array objects.  
> Does anyone know of a way to accomplish this? 
> 
> Jeff Cummings_______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to