It seems that - because the signature of MPI_User_function only allows one
MPI_Datatype - there is no way to perform a user-defined reduction on a
datatype that uses addresses i.e. displacements relative to MPI_BOTTOM. Am
I wrong?
I wanted to use MPI_Type_create_hindexed_block to create a type consisting
of two contiguous vectors, where the second vector is dynamically allocated
and thus each instance of this type will have a different offset relative
to the first.
It seems the only way to do what I want is to allocate a contiguous buffers
that can hold both vectors contiguously, which increases my memory
consumption by 50%, and copy to/from it before/after the reduction.
Are there any significant errors in what I've said?
Jim Dinan already proposed a ticket that addresses at least part of this,
but I haven't seen any activity on it lately.
Thanks,
Jeff
--
Jeff Hammond
jeff.science(a)gmail.com
http://jeffhammond.github.io/