charmplusplus / charm

The Charm++ parallel programming system. Visit https://charmplusplus.org/ for more information.
Apache License 2.0
203 stars 49 forks source link

Factor out massive duplication in reductions #12

Open PhilMiller opened 11 years ago

PhilMiller commented 11 years ago

Original issue: https://charm.cs.illinois.edu/redmine/issues/12


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

PhilMiller commented 5 years ago

Original date: 2013-10-07 19:32:33


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

PhilMiller commented 5 years ago

Original date: 2015-11-11 02:50:22


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

PhilMiller commented 5 years ago

Original date: 2016-02-16 22:49:46


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

PhilMiller commented 5 years ago

Original date: 2016-02-17 16:05:22


Replicas of the reduction infrastructure in Charm++:

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.

PhilMiller commented 5 years ago

Original date: 2017-02-12 02:24:26


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

PhilMiller commented 5 years ago

Original date: 2017-11-03 17:27:21


A little progress here: https://charm.cs.illinois.edu/gerrit/3224 https://github.com/UIUC-PPL/charm/commit/ee88c35cd39ac5ae8b48047a4abbf4826277b997

PhilMiller commented 5 years ago

Original date: 2017-12-29 18:12:31


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.