Update: The contents of this repo have been integrated into mainline Hypercomm. As such, this repo has been archived, and its ideas will be actively pursued at the following URL: https://github.com/jszaday/hypercomm
This repo establishes a prototype, component-based scheme for distributed spanning tree construction. Its per-element operating granularity bestows it with robust guarantees regarding element migration, creation, and deletion. Effectively, each element always "knows" its parent and children, which allows them to fire-and-forget reductions at-will without having to be concerned about these complications. The exact nature of this scheme is discussed more thoroughly in this document.
To build and experiment with this repo, you will need a built copy of Charm++ with PR#3431, and a built copy of Hypercomm with PR#42. Note, Hypercomm currently has to be built in parallel (make -j
). These should be present at CHARM_HOME
and HYPERCOMM_HOME
respectively.
Once these features are merged into their respective repos, it is intended for this repo to be merged into Hypercomm. That said, as Charm++'s section-related efforts progress, it could be adopted by Charm++ as well.