Project

General

Profile

Cleanup #12

Factor out massive duplication in reductions

Added by Phil Miller over 6 years ago. Updated over 1 year ago.

Status:
New
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
02/05/2013
Due date:
% Done:

0%


Description

The code that implements reductions is duplicated to varying extents across groups, nodegroups, and arrays. Refactor it to a single common instance.


Related issues

Related to Charm++ - Feature #29: Reduction Starting messages Closed 02/06/2013 02/28/2013
Related to Charm++ - Feature #2: Reduce memory usage of reductions Merged 02/05/2013
Related to Charm++ - Bug #1278: ReductionStarting overhead in SMP mode Merged 11/02/2016

History

#1 Updated by Phil Miller over 6 years ago

  • Tracker changed from Bug to Cleanup

#2 Updated by Phil Miller over 6 years ago

  • Target version set to Unscheduled

#3 Updated by Eric Bohm over 6 years ago

  • Assignee set to Phil Miller

#4 Updated by Phil Miller over 6 years ago

  • Target version changed from Unscheduled to 6.6.0

#5 Updated by Phil Miller almost 6 years ago

  • Target version changed from 6.6.0 to 6.7.0

This will happen after the reductionStarting fix is integrated, which leaves very little time before the 6.6 release.

#6 Updated by Ronak Buch over 3 years ago

  • Assignee changed from Phil Miller to Ronak Buch

#7 Updated by Nikhil Jain over 3 years ago

  • Target version changed from 6.7.0 to 6.7.1

#8 Updated by Phil Miller over 3 years ago

  • Target version changed from 6.7.1 to 6.8.0

No way this sort of mass change is happening in a patch release.

#9 Updated by Phil Miller over 3 years ago

  • Assignee changed from Ronak Buch to Phil Miller

Potentially moving those over to Charmworks, assuming Ronak hasn't started in on it yet.

#10 Updated by Phil Miller over 3 years ago

Replicas of the reduction infrastructure in Charm++:

  • src/ck-core/ckreduction.C (x2: CkReductionMgr, CkNodeReductionMgr; also some useful documentation at the top of this file)
  • src/ck-core/ckarrayreductionmgr.C
  • src/libs/ck-libs/multicast/ckmulticast.C

Each of those 4 copies carries variation in the implementation based on their particular context. They still share a lot of common bits, though.

Ideally, we would come away with a standalone component that gets passed a stream of reduction contribution messages from various contributors and iterations, and spits out its own contributions as it sees each reduction locally complete. Since this involves no communication, it could be tested in isolation. Each of those four cases above would either carry an instance of this class configured for their need, or derive their own specialization of it with virtual methods called from the common base class code implementing the points of differentiation.

#11 Updated by Phil Miller over 2 years ago

With the fix for #1278, CkArrayReductionMgr has been abolished. Four copies are become three.

#12 Updated by Phil Miller over 2 years ago

  • Target version changed from 6.8.0 to 6.9.0

#13 Updated by Phil Miller over 1 year ago

  • Target version deleted (6.9.0)

#14 Updated by Phil Miller over 1 year ago

#15 Updated by Phil Miller over 1 year ago

  • Assignee changed from Phil Miller to Juan Galvez

Per Eric B - reassign to Juan as supervisor of the collectives subgroup. It could be a good way to get a new person into the codebase.

Also available in: Atom PDF