Re: [Mpi3-rma] MPI_Fetch_and_op and MPI_Get_accumulate
Hi Hubert, 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. ~Jim. 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.
Jeff
On Wed, Nov 28, 2012 at 10:41 AM, Hubert Ritzdorf <[email protected]> wrote:
Hi,
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 generic functionality of MPI_Get_accumulate") since these special hardware operations have to be used by all accumulate functions in the same way (also for very large counts and derived datatypes).
Many thanks in advance
Hubert
_______________________________________________ mpi3-rma mailing list [email protected] http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi3-rma
participants (1)
-
Jim Dinan