[mpich-discuss] How expensive is MPI_Win_create() compared to memcpy()?
Jed Brown
jedbrown at mcs.anl.gov
Tue Dec 27 21:49:39 CST 2011
On Tue, Dec 27, 2011 at 21:27, Pavan Balaji <balaji at mcs.anl.gov> wrote:
> Hmm... On second thought, it might be possible to make it not synchronize
> by passing an info argument (though it's not implemented yet). In this
> case, the base address and other information can be queried on-demand when
> the next PUT/GET/ACCUMULATE operation occurs.
>
Or in the next Win_post/Win_start sequence?
> When memory registration is involved, this will be even messier. So I
> guess it's theoretically possible, though there's no plan to do it at
> present. Also, from a portability perspective, you can never assume that
> there will not be synchronization (other MPI implementations might not
> respect this info argument).
>
I don't care about the semantics of synchronization (it always occurs
inside a collective interface anyway), it's just a question of performance.
If the operation always involves an MPI_Allgather() then it can't be used
in performance-sensitive places on a large machine (because the cost of a
scalar MPI_Allreduce() is already many times more than "halo exchange").
> In MPI-3, there's an option for dynamically attaching memory to windows.
> That's probably the best option for you. We are working on implementing
> it for our next major release (1.5).
>
I'd be happy to test it out in some of our use scenarios.
> The part I don't understand here is what benefit does wrapping an existing
> window object around new memory give you? Why not create a new window
> object around your new memory?
>
Nothing in terms of semantics, but if it is less expensive to wrap new
memory than to create a new window, then we can do that.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20111227/373f73a1/attachment.htm>
More information about the mpich-discuss
mailing list