I don't quite understand your architecture enough to answer your question.  
E.g., someone pointed out to me off-list that if you only have 1 listener, a 
send is effectively the same thing as a broadcast (for which you could 
test/wait on a non-blocking receive, for example).

MPI broadcasts only work on fixed communicators -- meaning that you effectively 
have to know the root and the receivers ahead of time.  If the receivers don't 
know who the root will be beforehand, that's unfortunately not a good match for 
the MPI_Bcast operation.



On May 3, 2011, at 4:07 AM, Randolph Pullen wrote:

> 
> From: Randolph Pullen <randolph_pul...@yahoo.com.au>
> Subject: Re: Re: [OMPI users] is there an equiv of iprove for bcast?
> To: us...@open-mpi.or
> Received: Monday, 2 May, 2011, 12:53 PM
> 
> Non blocking Bcasts or tests would do it.
> I currently have the clearing-house solution working but it is unsatisfying 
> because of its serial node. - As it scales it will overload this node.
> 
> The problem rephrased:
> Instead of n*2 processes, I am having to use n*2+1 with the extra process 
> serially receiving listener messages on behalf of the workers before 
> transmitting these messages to workers in its comm_group.
> 
> Is there a way to Bcast directly from each listener to the worker pool?  
> (listeners must monitor their ports most of the time and cant participate in 
> global bcasts)
> Not knowing which listener is going to transmit prevents the correct 
> comm_group being used with Bcast calls.
> 
> --- On Sat, 30/4/11, Jeff Squyres <jsquy...@cisco.com> wrote:
> 
> From: Jeff Squyres <jsquy...@cisco.com>
> Subject: Re: [OMPI users] is there an equiv of iprove for bcast?
> To: randolph_pul...@yahoo.com.au, "Open MPI Users" <us...@open-mpi.org>
> Received: Saturday, 30 April, 2011, 7:17 AM
> 
> On Apr 29, 2011, at 1:21 AM, Randolph Pullen wrote:
> 
> > I am having a design issue:
> > My server application has 2 processes per node, 1 listener and 1 worker.
> > Each listener monitors a specified port for incoming TCP connections with 
> > the goal that on receipt of a request it will distribute it over the 
> > workers in a SIMD fashion.
> > 
> > My problem is this: how can I get the workers to accept work from any of 
> > the listeners?
> > Making a separate communicator does not help as the sender is unknown.  
> > Other than making a serial 'clearing house' process I cant think of a way  
> > - Iprobe for Bcast would be useful.
> 
> I'm not quite sure I understand your question.
> 
> There currently is no probe for collectives, but MPI-3 has non-blocking 
> collectives which you could MPI_Test for.  There's a 3rd party library 
> implementation called libNBC (non-blocking collectives) that you could use 
> until such things become natively available.
> 
> -- 
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
> 
> _______________________________________________
> 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