[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: next ballot
On Wed, Oct 24, 2001 at 04:57:18PM -0500, William Gropp wrote:
>
> Because MPI_Accumulate allows only predefined ops. This already introduces
> an exception: not all MPI routines that accept MPI_Op accept user-defined
> MPI_Op. Saying the MPI_Accumulate accepts only predefined MPI_Op but
> allows conforming user-defined types is just a different restriction.
>
> The more that I think about it, the more that I want to vote against
> 7. MPI_REPLACE should behave like the other predefined operations (your
> option 3). For MPI-1 collective, it should apply only to predefined
> datatypes. For MPI_Accumulate, it should be allowed for derived datatypes
> whose basic elements are a single predefined type, just as for the other
> predefined ops.
>
> It is true that if we had thought about it, we might have chosen to extend
> predefined MPI_Op's to the same datatypes allowed for MPI_Accumulate in
> MPI_Reduce etc. I propose that we leave that for MPI-3 :)
>
> Bill
What about the following replacement for p.120, lines 6-13. It clearly
says that predefined operations including MPI_REPLACE behave uniformly,
and that the extension to derived datatype is an extension that only
applies to MPI_ACCUMULATE:
---
A new predefined operation, MPI_REPLACE, is defined. It corresponds
to the associative function f(a,b)=b, i.e., the current value in the
target memory is replaced by the value supplied by the origin. MPI_REPLACE
can be used the same way as the other predifined operations.
The datatype arguments can be any of the predefined datatypes as explained
in Section 4.9, and in that case both origin and target datatype must be
the same predefined datatype. For MPI_ACCUMULATE the predefined operations
are extended to work for derived datatypes, where all basic components
are of the {\em same} predefined datatype. Both datatype arguments must be
constructed from the same predefined datatype. The operation {\sf op} applies
to elements of that predefined datatype. The target datatype must not
specify overlapping entries, and the target buffer must fit in the
target window.
---
Jesper