[Mpi-22] [MPI Forum] #96: MPI_OP_CREATE and associativity
Jesper Larsson Traeff
traff at [hidden]
Mon Jan 12 08:19:12 CST 2009
For non-associative operators, in order to get any meaningful result,
all you can do is to perform the operations in some predefined order
(eg. rank-order) with a predefined "bracketing", ((((0+1)+2)+3)+...)+n).
That seems to imply a linear time algorithm?
Thus, I think it is right that the standard requires the operators to
be associative. Operators on FLOATs are usually treated as if they are
associative (with some/many MPI libraries providing a possibility to switch to
an algorithm with some predefined ordering and bracketing, for the cases
where this is desired).
I therefore think this extension requires a lot more thought for it to
be "mathematically well-defined" and also otherwise make sense
Jesper
On Fri, Jan 02, 2009 at 05:26:48PM -0000, MPI Forum wrote:
> #96: MPI_OP_CREATE and associativity
> -------------------------------------+--------------------------------------
> Reporter: htor | Owner: htor
> Type: Enhancements to standard | Status: new
> Priority: Forum feedback requested | Milestone: 2009/02/09 California
> Version: MPI 2.2 | Keywords:
> -------------------------------------+--------------------------------------
> Information about associativity can not be attached to user-defined
> operations. This prevents any dynamic reordering of trees, based on
> different arrival patterns (strongly recommended by the Advice to
> Implementors in Sec. 5.9.1). Architecture-dependent associativity can be
> derived for predefined types (e.g., MPI_INT is associative while MPI_FLOAT
> is not on most architectures). No such statements can be made about user-
> defined operations. This seems to be mathematically incomplete.
>
> == History ==
> This has been the status quo since MPI-1.
>
> == Proposed Solution ==
> Add an additional (bool) in-argument to MPI_OP_CREATE that indicates if
> the operation is associative or not.
>
> == Impact on Implementations ==
> low, nothing needs to be changed and the argument can be ignored. However,
> it reveals rather interesting optimization possibilities at large scale.
>
> == Impact on Applications / Users ==
> low, an additional argument can be supplied which could just be "false" to
> retain the status quo.
>
> == Alternative Solutions ==
> none
>
> == Entry for the Change Log ==
> added associativity argument to MPI_OP_CREATE
>
> --
> Ticket URL: <https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/96>
> MPI Forum <https://svn.mpi-forum.org/>
> MPI Forum
More information about the Mpi-22
mailing list