Skip to content

Conversation

@hjelmn
Copy link
Member

@hjelmn hjelmn commented Feb 11, 2015

With certain datatypes the opal_datatype_unpack method for performing
the accumulate operation does not work. This commit modifies the
accumulate code in the osc base to use opal_convertor_raw instead.

Fixes #385

With certain datatypes the opal_datatype_unpack method for performing
the accumulate operation does not work. This commit modifies the
accumulate code in the osc base to use opal_convertor_raw instead.

Fixes open-mpi#385
@mellanox-github
Copy link

Refer to this link for build results (access rights to CI server needed):
http://bgate.mellanox.com/jenkins/job/gh-ompi-master-pr/225/
Test PASSed.

@bosilca
Copy link
Member

bosilca commented Feb 11, 2015

Nathan, I think I spotted the issue here. If the op is called while using the optimized version of the datatype (the one ofter commit), instead of getting the original count you might get the number of bytes (because in a homogeneous environment the optimized datatype description merged everything as bytes in order to create the largest possible contiguous regions).

@hjelmn
Copy link
Member Author

hjelmn commented Feb 11, 2015

@bosilca The code in question set the convertor to use the non-optimized description. Does something else need to be set?

The new code works for all datatypes and isn't quite as complex as the unpack code. I have been using something similar to deal with datatypes in the new rdma osc component.

@hjelmn
Copy link
Member Author

hjelmn commented Feb 12, 2015

Passing MTT. Merging.

hjelmn added a commit that referenced this pull request Feb 12, 2015
osc/base: fix accumulate on derived datatypes
@hjelmn hjelmn merged commit dd8aaca into open-mpi:master Feb 12, 2015
jsquyres pushed a commit to jsquyres/ompi that referenced this pull request Nov 10, 2015
@hjelmn hjelmn deleted the osc_datatype_fix branch May 23, 2016 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incorrect behaviour of MPI_Accumulate with derived datatypes

3 participants