Gather reduction operation using Tuple/Set reducers
This is CkReduction::set with source identifiers per contribution.
We could have 2 arrays with the same number of elements, one with source indices and one with delimited contributions.
Or we could have a source field in each contribution struct...
#2 Updated by Sam White about 3 years ago
This could be implemented using the new Tuple reducer type with two CkReduction::set reducers, one containing the array index of the contributor and the other containing the data contributed. However, this is much less elegant than having a native CkReduction::gather type with gatherElements forming a linked list where each element contains the array index of the contributor, the data size, and the actual data.
#3 Updated by Sam White about 3 years ago
- Status changed from New to Implemented
- Target version set to 6.8.0
- Assignee set to Steve Hoelle
Steve Hoelle's fix for using set reductions inside tuple reductions: https://charm.cs.illinois.edu/gerrit/#/c/1219/
This enables straightforward implementation of unordered gather operations, which can be reordered as needed on the receiver's side. This is adequate for AMPI's use case, and I don't know of any other current use cases in our applications.
Edit: Eric B expressed interest in a gather operation for OpenAtom. See AMPI_Allgather for the contribution and gatherResult for the ordering of messages by contributor's rank: https://charm.cs.illinois.edu/gerrit/#/c/1220/
#5 Updated by Sam White about 3 years ago
I'm fine with closing it, though I think the documentation should be updated for Tuple/Stats reducers, and perhaps an example of a gather (tuple/set) would be useful as a replacement for the current example of set reducers here: http://charm.cs.illinois.edu/manuals/html/charm++/4.html#SECTION01361000000000000000
#6 Updated by Sam White almost 3 years ago
- translation missing: en.field_closed_date set to 2016-08-05 09:31:28.926867
- Status changed from Implemented to Merged
- Subject changed from CkReduction::gather operation with source chare idx identifiers per contribution to Gather reduction operation using Tuple/Set reducers
Closing this now since there is an open issue for the documentation, #1140.