Is there any way to issue simultaneous MPI_Accumulate() requests to
different targets, then?  I need to update a distributed array, and this
serializes all of the communication.

Ben

On Thu, May 4, 2017 at 5:53 AM, Marc-André Hermanns <
m.a.herma...@fz-juelich.de> wrote:

> Dear Benjamin,
>
> as far as I understand the MPI standard, RMA operations non-blocking
> in the sense that you need to complete them with a separate call
> (flush/unlock/...).
>
> I cannot find the place in the standard right now, but I think an
> implementation is allowed to either buffer RMA requests or block until
> the RMA operation can be initiated, and the user should not assume
> either. I have seen the one and the other behavior across
> implementations in the past.
>
> For your second question, yes, flush is supposed to block until remote
> completion of the operation.
>
> That said, I think to recall that Open-MPI 1.x did not support
> asynchronous target-side progress for passive-target synchronization
> (which is used in your benchmark example), so the behavior you
> observed is to some extent expected.
>
> Cheers,
> Marc-Andre
>
>
>
> On 04.05.2017 01:25, Benjamin Brock wrote:
> > MPI_Accumulate() is meant to be non-blocking, and MPI will block until
> > completion when an MPI_Win_flush() is called, correct?
> >
> > In this (https://hastebin.com/raw/iwakacadey) microbenchmark,
> > MPI_Accumulate() seems to be blocking for me in OpenMPI 1.10.6.
> >
> > I'm seeing timings like
> >
> > [brock@nid00622 junk]$ mpirun -n 4 ./junk
> > Write: 0.499229 rq, 0.000018 fl; Read: 0.463764 rq, 0.000035 fl
> > Write: 0.464914 rq, 0.000012 fl; Read: 0.419703 rq, 0.000024 fl
> > Write: 0.499686 rq, 0.000014 fl; Read: 0.422557 rq, 0.000023 fl
> > Write: 0.437960 rq, 0.000015 fl; Read: 0.396530 rq, 0.000023 fl
> >
> > Meaning up to half a second is being spent issuing requests, but
> > almost no time is spent in flushes.  The time spent in requests scales
> > with the size of the messages, but the time spent in flushes stays the
> > same.
> >
> > I'm compiling this with mpicxx acc.cpp -o acc -std=gnu++11 -O3.
> >
> > Any suggestions?  Am I using this incorrectly?
> >
> > Ben
> >
> >
> > _______________________________________________
> > users mailing list
> > users@lists.open-mpi.org
> > https://rfd.newmexicoconsortium.org/mailman/listinfo/users
> >
>
> --
> Marc-Andre Hermanns
> Jülich Aachen Research Alliance,
> High Performance Computing (JARA-HPC)
> Jülich Supercomputing Centre (JSC)
>
> Wilhelm-Johnen-Str.
> 52425 Jülich
> Germany
>
> Phone: +49 2461 61 2509 | +49 241 80 24381
> Fax: +49 2461 80 6 99753
> www.jara.org/jara-hpc
> email: m.a.herma...@fz-juelich.de
>
>
> _______________________________________________
> users mailing list
> users@lists.open-mpi.org
> https://rfd.newmexicoconsortium.org/mailman/listinfo/users
>
_______________________________________________
users mailing list
users@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/users

Reply via email to