Feature #982

Gather reduction operation using Tuple/Set reducers

Added by Sam White over 3 years ago. Updated over 2 years ago.

Target version:
Start date:
Due date:
% Done:



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...


Documentation #1140: Document tuple/stats reducersMergedSam White

Related issues

Related to Charm++ - Feature #985: Make AMPI_Gather and its variants use Tuple/Set Reductions Merged 02/17/2016


#1 Updated by Eric Bohm over 3 years ago

  • Tracker changed from Bug to Feature

this is not a bug, it is a new feature request.

#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:

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:

#4 Updated by Phil Miller about 3 years ago

We can close this as 'Merged' now, right?

#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:

#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.

#7 Updated by Phil Miller over 2 years ago

  • Target version changed from 6.8.0 to 6.8.0-beta1

Also available in: Atom PDF