Added a way to specify if the MPI operation used in global scans is commutative. #23
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem: There was no way to specify if a custom operation used in
global_scan*
is noncommutative.Solution: Added a parameter to the
global_scan*
functions (only the ones that accept a function as a custom operation) for specifying if the operation is commutative.PS: This is possibly a hacky solution for the problem. In my opinion, a possibly better way to handle this is to add a variation of
global_scan*
which takesmxx::custom_op
as an argument. The user can then create thecustom_op
for noncommutative operations and provide that as an argument to theglobal_scan*
operations. I think this would be closer to the way MPI interface handles this.I have gone with the least intrusive solution for now but can implement the aforementioned solution if it seems more sensible.