Hello list,
we have several questions regarding calls to collectives using
intercommunicators. In man for MPI_Bcast, there is a notice for the
inter-communicator case that reads the text below our questions.
If an I is an intercomunicator for communicattors C1={p1,p2,p3} and
C2={p4,p5,p6}, and a process p3 (from C1) wants to broadcast a message
to C2. Is it mandatory that p1 and p2 have to call to MPI_Bcast? Or can
the user skip adding these calls?
BTW, what is the behavior for the broadcast for p1 and p2 in this
case, simply return?
Will MPI fail if MPI_PROC_NULL is not given for the parameter root in
p1 and p2?
Thank you very much in advance.
----
** When Communicator is an Inter-communicator
When the communicator is an inter-communicator, the root process in the
first group broadcasts data to all the processes in the second group.
The first group defines the root process. That process uses MPI_ROOT as
the value of its root argument. The remaining processes use
MPI_PROC_NULL as the value of their root argument. All processes in the
second group use the rank of that root process in the first group as the
value of their root argument. The receive buffer arguments of the
processes in the second group must be consistent with the send buffer
argument of the root process in the first group.
WARNING / LEGAL TEXT: This message is intended only for the use of the
individual or entity to which it is addressed and may contain
information which is privileged, confidential, proprietary, or exempt
from disclosure under applicable law. If you are not the intended
recipient or the person responsible for delivering the message to the
intended recipient, you are strictly prohibited from disclosing,
distributing, copying, or in any way using this message. If you have
received this communication in error, please notify the sender and
destroy and delete any copies you may have received.
http://www.bsc.es/disclaimer