[Mpi3-rma] MPI_Fetch_and_op and MPI_Get_accumulate
dinan at mcs.anl.gov
Wed Nov 28 13:07:26 CST 2012
Yes, the combination of operations you describe is permitted.
Jeff's answer is correct -- Fetch_and_op allows only predefined
datatypes, so it has lower software overhead.
Another way to look at this is that the user should expect a stronger
performance "guarantee" from fetch_and_op. If the combination of FOP
and GACC results in decreased performance for a particular network, the
MPI implementation could provide an info key or assertion to indicate
that FOP and GACC will not be combined. If such a hint is broadly
useful, we could add it to the standard.
On 11/28/2012 09:43 AM, Jeff Hammond wrote:
> It was suggested to me that the reason those functions exist is
> because they have fewer arguments and do not require as many branches
> as MPI_Get_accumulate, which matters to a few people who want to dump
> bazillions of 8-byte atomic puts into the network.
> On Wed, Nov 28, 2012 at 10:41 AM, Hubert Ritzdorf
> <Hubert.Ritzdorf at emea.nec.com> wrote:
>> I have a question:
>> Is the following combination of accumulate operations allowed and is this
>> the "same operation" ?
>> Process A and Process B perform a MPI_SUM operation on the same address in
>> the same
>> window with same predefined datatype but using different RMA function calls:
>> Process A:
>> MPI_Get_accumulate (..., target_rank, 0, 1, MPI_LONG_LONG_INT, MPI_SUM, win)
>> Process B:
>> MPI_Fetch_and_op(..., MPI_LONG_LONG_INT, target_rank, 0, MPI_SUM, win)
>> If the answer is yes, I can't see the advantage of MPI_Fetch_and_op
>> ("might support special hardware operations which use is limited by the
>> functionality of MPI_Get_accumulate")
>> since these special hardware operations have to be used by all accumulate
>> in the same way (also for very large counts and derived datatypes).
>> Many thanks in advance
>> mpi3-rma mailing list
>> mpi3-rma at lists.mpi-forum.org
More information about the mpiwg-rma