Re: [Mpi3-rma] GetAccumulate restriction needed?
On 04/03/2011 09:32 PM, Underwood, Keith D wrote:
This would be required if the application does not want to create two buffers, one for the input and one for the output. The implementation can internally use pipelining to use a smaller buffer space.
That is not a use case :-) My understanding of fetch-and-add style operations is that you want both your increment and the old value at the target. So, I am back to: what is the use case?
I don't have a use case as in an application that uses it currently, as I don't know of any applications that do large-message fetch-and-op today.
Also, we need this for symmetry. Two-sided calls support it.
MPI_Sendrecv requires disjoint buffers, and that is the closest thing in two-sided.
Ah, yes. This is only for collectives. I misspoke.
I don't follow the implementation nightmare with this? Why is this a problem?
Would you think the user would expect that having the same source and target buffer would cause the implementation to:
-allocate a buffer -perform a get into that buffer -wait for get completion -perform an atomic -wait for atomic completion -copy the data from the internal buffer to the user buffer
Why are you trying to it atomically? Get_accumulate is only element-wise atomic. -- Pavan -- Pavan Balaji http://www.mcs.anl.gov/~balaji
participants (1)
-
Pavan Balaji