Sorry for the delay.  Answers inline.

On Feb 29, 2012, at 1:09 PM, Eric Chamberland wrote:

> I would like to know which of "waitone" vs "waitany" is optimal and of 
> course, will never produce deadlocks.

In your sample application, either will work just fine -- they will not 
deadlock.

> After executing several times, on different number of processes and different 
> number of nodes and almost always large value of "lNbInt", I *think* these 
> could be good conclusions? :
> 
> #1- Both version take almost the same wall clock time to complete
> #2- Both version do *not* produce deadlock

For this application, I agree.

> #3- MPI_WAIT_ANY_VERSION could do better if some work was really done with 
> received data.

Probably so.  It would probably do even better if the senders were sending at 
staggered times.

> #4- MPI_WAIT_ANY_VERSION received always the data from processes on the same 
> host.

I'm not sure what you mean by that statement.

> I haven't be able to reproduce a deadlock even while varying array length, 
> number of processes and number of hosts.  How can I conclude there are no 
> problem with this code?  Any reading suggestion?


I think the classical conditions for deadlock apply here.  Summarizing, if 
you're going to block, you need to ensure that *something* will eventually 
complete that blocking (i.e., either the specific/WAIT will complete, or *some* 
sender/WAITANY will complete).

-- 
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