#include <treeStrategy_nodeAware_minGens.h>
Public Member Functions | |
virtual SpanningTreeVertex * | buildNextGen (const Iterator firstVtx, const Iterator beyondLastVtx, const int maxBranches=2) |
Concrete builders should implement this (preferably only for the appropriate specializations). |
First generates a balanced spanning tree and then promotes any PEs on the same node (up to a maximum of maxBranches) as direct children. Uses the cpuTopology API defined in charm. Hence, should be node-aware in all environments.
The algorithm prioritizes balance over minimizing inter-node traffic. By ensuring that the tree is as balanced as it can be, we can reduce the number of generations taken to span all the tree vertices.
Definition at line 26 of file treeStrategy_nodeAware_minGens.h.
virtual SpanningTreeVertex* topo::SpanningTreeStrategy_nodeAware_minGens< Iterator, ValueType >::buildNextGen | ( | const Iterator | firstVtx, | |
const Iterator | beyondLastVtx, | |||
const int | maxBranches = 2 | |||
) | [inline, virtual] |
Concrete builders should implement this (preferably only for the appropriate specializations).
Implements topo::SpanningTreeStrategy< Iterator >.
Definition at line 29 of file treeStrategy_nodeAware_minGens.h.
References topo::impl::buildNextGen_nodeAware_minGens().