On May 3, 2011, at 8:20 PM, Randolph Pullen wrote: > Sorry, I meant to say: > - on each node there is 1 listener and 1 worker. > - all workers act together when any of the listeners send them a request. > - currently I must use an extra clearinghouse process to receive from any of > the listeners and bcast to workers, this is unfortunate because of the > potential scaling issues > > I think you have answered this in that I must wait for MPI-3's non-blocking > collectives.
Yes and no. If each worker starts N non-blocking broadcasts just to be able to test for completion of any of them, you might end up consuming a bunch of resources for them (I'm *anticipating* that pending non-blocking collective requests maybe more heavyweight than pending non-blocking point-to-point requests). But then again, if N is small, it might not matter. > Can anyone suggest another way? I don't like the serial clearinghouse > approach. If you only have a few workers and/or the broadcast message is small and/or the broadcasts aren't frequent, then MPI's built-in broadcast algorithms might not offer much more optimization than doing your own with point-to-point mechanisms. I don't usually recommend this, but it may be possible for your case. -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/