On Tue, Dec 18, 2012 at 1:36 PM, Torsten Hoefler <htor@illinois.edu> wrote:
On Sun, Dec 16, 2012 at 09:53:55PM -0800, Jed Brown wrote:
> On Sat, Dec 15, 2012 at 8:08 AM, Torsten Hoefler <[1]htor@illinois.edu>
> wrote:
>
> > Those use cases
> ([3][2]http://lists.mpi-forum.org/mpi3-coll/2011/11/0239.php)
> > were all dependent on being able to reduce to overlappingYes, that would certainly work with the current proposal (not if we want
> targets.
> Depends on your definition of target. If you mean processes by
> "targets", then the current interface proposal provides this; if you
> mean memory locations at one process by "targets", then this will not be
> possible within current MPI semantics.
>
> I mean that the memory overlaps on the processor accumulating the result
> of the reduction. Think of a bunch of subdomains of a regular grid with
> one or two cells of overlap. An example of a "reduction" is to add up the
> contribution from all copies of each given cell. Cells near the middle of
> a "face" are only shared by two processes, but corner cells are shared by
> several processes.
to support MPI_IN_PLACE, but that wasn't planned anyway).
> If you remove the restriction of equal vector sizes, are you going to addYes, I understand. We did not plan on a *w interface yet, however, it's
> an MPI_Datatype describing where to put the result? (I'd expect that to be
> a neighbor_reducew.) Note that in general, there would be some points
> shared by neighbors {1,2} and other points shared by neighbors {1,3} (and
> {2,3}, ...) thus we can't just sort such that the reduction is always
> applied to the "first N" elements.
straight-forward and I'd be in favor of it. The current *v interface
would only support contiguous arrangements but I'll carry the request
for th obviously useful w interface to the Forum.
Yes, definitely! Unfortunately, DDTs are not always fast :-/.
> One remaining question is if you can always guarantee "packed" data,
> i.e., that the "empty" elements are always at the tail. Well, I guess
> you could always add identity elements in the middle to create gaps.
>
> I could pack, but I thought the point of the W interfaces was to enable
> the user to avoid packing (with possible performance advantages relative
> to fully-portable user code).