hi,

s anwar wrote:
> Thank you for the clarification. Why is MPI_COMM_SELF not the correct
> communicator for MPI_Comm_spawn(). My application will have a single
> master only.
yes for a single master this should be the same, but never try this.
> 
> Also, can I merge the intercommunicator into an intracommunicator via
> MPI_Intercomm_merge(intercomm, 0, &intracomm) and use MPI_Bcast(..., 0,
> intracomm) instead of sending MPI_ROOT or 0 (root's rank in local group).
dito, never try this, but it should work

bye
bert wesarg
> 
> Thanks.
> 
> On 7/18/06, *Bert Wesarg* <wes...@informatik.uni-halle.de
> <mailto:wes...@informatik.uni-halle.de>> wrote:
> 
>     hi,
> 
>     yes sorry for my first reply, my words were to rough.
> 
>     a bcast for a intercomm works this way (in your words):
> 
>     - your masters want to send a buffer to your slaves
>     - one of the masters must provide the MPI_ROOT as root in the
>     MPI_BCAST call
>     - all slaves must provide the rank of this MPI_ROOT as the root argument
>     - all others ranks from the masters, must provide MPI_PROC_NULL as root
> 
>     so the buffer will be send from MPI_ROOT to all slaves
> 
>     if this isn't that clear, you should understand the concept of mpi
>     intercomms. a good starting point could be the standard:
>     http://www.mpi-forum.org/docs/mpi-11-html/node111.html
>     <http://www.mpi-forum.org/docs/mpi-11-html/node111.html>
> 
>     by the way:
>     * your one_int is never intitialized
>     * i don't know if the MPI_COMM_SELF is the right comm for the
>     MPI_COMM_SPAWN
> 
>     by
>     bert wesarg
> 
>     s anwar wrote:
>     > I don't think I blamed the implementation in any way in my original
>     > email. My intent is to gain understanding of why my code
>     does/should not
>     > work. I assumed that I was not passing the correct intercommunicator.
>     > However, I am at a loss on how to construct a proper
>     intercommunicator
>     > in this case. You have mentioned that I haven't defined any group
>     to be
>     > the root group. Could you care to elaborate on how can I make a
>     group a
>     > root group?
>     >
>     > Thanks.
>     >
>     > On 7/18/06, *Bert Wesarg* < wes...@informatik.uni-halle.de
>     <mailto:wes...@informatik.uni-halle.de>
>     > <mailto:wes...@informatik.uni-halle.de
>     <mailto:wes...@informatik.uni-halle.de>>> wrote:
>     >
>     >     Hi,
>     >
>     >     s anwar wrote:
>     >     > Please see attached source file.
>     >     >
>     >     > According to my understanding of MPI_Comm_spawn(), the
>     >     intercommunicator
>     >     > returned is the same as it is returned by
>     MPI_Comm_get_parent() in
>     >     the
>     >     > spawned processes. I am assuming that there is one
>     intercommunicator
>     >     > which contains all the (spawned) child processes as well as
>     the parent
>     >     > process. If this is the case, then why does an MPI_Bcast()
>     using
>     >     such an
>     >     > intercommunicator wait indefinately?
>     >
>     >     your code from line 75:
>     >
>     >             MPI_Bcast(&one_int, 1, MPI_INT, 0, intercomm);
>     >
>     >     from the mpi 2 standard " 7.3.2.1 <http://7.3.2.1>
>     <http://7.3.2.1>. Broadcast"
>     >
>     >     "If comm is an intercommunicator, then the call involves all
>     >     processes in
>     >     the intercommunicator, but with one group (group A) defining
>     the root
>     >     process. All processes in the other group (group B) pass the same
>     >     value in
>     >     argument root, which is the rank of the root in group A. The
>     root passes
>     >     the value MPI_ROOT in root. All other processes in group A
>     pass the
>     >     value
>     >     MPI_PROC_NULL in root. Data is broadcast from the root to all
>     >     processes in
>     >     group B. The receive buffer arguments of the processes in group B
>     >     must be
>     >     consistent with the send buffer argument of the root."
>     >
>     >     so, you define no group to be the root group (group A). i
>     don't know
>     >     what
>     >     schould happen, when no root group is defined, but your code
>     firstly
>     >     don't
>     >     conform to the standard, so don't blame the implementation first.
>     >
>     >     by
>     >     bert wesarg
>     >
>     >     _______________________________________________
>     >     users mailing list
>     >     us...@open-mpi.org <mailto:us...@open-mpi.org> <mailto:
>     us...@open-mpi.org <mailto:us...@open-mpi.org>>
>     >     http://www.open-mpi.org/mailman/listinfo.cgi/users
>     >
>     >
>     >
>     >
>     ------------------------------------------------------------------------
> 
>     >
>     > _______________________________________________
>     > users mailing list
>     > us...@open-mpi.org <mailto:us...@open-mpi.org>
>     > http://www.open-mpi.org/mailman/listinfo.cgi/users
>     _______________________________________________
>     users mailing list
>     us...@open-mpi.org <mailto:us...@open-mpi.org>
>     http://www.open-mpi.org/mailman/listinfo.cgi/users
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to