[mpi3-coll] Question on reduction operation in intercommunicators
Jesper Larsson Traeff
traff at it.neclab.eu
Wed Mar 4 02:40:41 CST 2009
I think that in general, there should be no essential distinctions
about requirements and restrictions on predefined and user-defined
op's. The standard might need some clearing up in this respect, although
I will not propose anything for now
It would probably be reasonable for intercomms only to require that
the same op is given between processes in the same local group (the
intention of intercomms being (?) that as much as possible is done
locally, and that communication between the two groups is applied
a) it would complicate the semantics even more
b) I'm not sure what really the benefit would be, if any (would be good
if you could support with a strong example)
c) it would disallow implementations where data would be communicated to
the other group and (partly) reduced there
So unless there's a really compelleing case for this, I'd rather leave as
is (maybe the text needs clearing up?)
On Fri, Feb 13, 2009 at 12:57:10PM -0800, Adam Moody wrote:
> Hi everyone,
> The spec is a bit fuzzy regarding the op parameter for reduction-type
> collectives on intercommunicators. There are a few lines in the
> intracommunicator text under MPI_REDUCE, which says:
> page 161, lines 11-15:
> "Furthermore, the datatype and op given for predefined operators
> must be the same on all processes."
> "Note, that it is possible for users to supply different
> user-defined operations to MPI_REDUCE in each process. MPI does not
> define which operations are used on which operands in this case."
> However, nothing is explicitly said along such lines for
> intercommunicators. I assume by default the above statements must
> extend to intercommunicators as well.
> I have two questions.
> 1) For intracommunicators, I understand the restriction on having
> the same op specified by all processes for predefined operators --
> performance. I could see a similar argument being made that all
> processes (from both groups) in an intercomm also specify the same op
> for predefined ops. However, I also see utility in forcing all
> processes within a group to specify the same op, but allowing each group
> to specify different ops (e.g., one may want the maximum of values from
> group A and the minimum of values from group B). The downside in this
> case is that processes of one group don't know the operation used by
> processes in the other group without some communication. Also, we'd
> need to be precise in specifying what data the two ops apply to (i.e.,
> do I apply the op specified in group A to the data from group A or the
> data from group B?).
> 2) A similar question arises for user-defined operators, since here
> the current spec says that different processes may specify different
> ops. It says MPI can apply which ever ops to which ever operands in
> such a case for intracommunicators. Again, I could see value in
> enabling the user to specify the same user-defined op within a group,
> but different ops across groups.
> Any thoughts?
> mpi3-coll mailing list
> mpi3-coll at lists.mpi-forum.org
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 4642 bytes
Desc: not available
More information about the mpiwg-coll