Fix in global_scan and global_scan_inplace. #24
Merged
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: Currently, in the
mxx::global_scan*
functions, the local scan results are updated on every process with the prefix sum from the previous process. However, the prefix sum on process 0 is just the zero-initialized value corresponding to the type. This may lead to erroneous results on process 0 in some cases, e.g. while scanning usingmin
on an array if the minimum element in the array is greater than zero.Solution: The result of
local_scan
on process 0 should not be updated with thepresum
.