PPL Logo

topo::SpanningTreeStrategy_nodeAware_minGens< Iterator, ValueType > Class Template Reference

A concrete tree builder that is aware of cpu topology (ie, node aware) while constructing spanning trees. More...

#include <treeStrategy_nodeAware_minGens.h>

Inheritance diagram for topo::SpanningTreeStrategy_nodeAware_minGens< Iterator, ValueType >:

Inheritance graph
[legend]
Collaboration diagram for topo::SpanningTreeStrategy_nodeAware_minGens< Iterator, ValueType >:

Collaboration graph
[legend]

Public Member Functions

virtual SpanningTreeVertexbuildNextGen (const Iterator firstVtx, const Iterator beyondLastVtx, const int maxBranches=2)
 Concrete builders should implement this (preferably only for the appropriate specializations).

Detailed Description

template<typename Iterator, typename ValueType = typename std::iterator_traits<Iterator>::value_type>
class topo::SpanningTreeStrategy_nodeAware_minGens< Iterator, ValueType >

A concrete tree builder that is aware of cpu topology (ie, node aware) while constructing spanning trees.

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.


Member Function Documentation

template<typename Iterator, typename ValueType = typename std::iterator_traits<Iterator>::value_type>
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().

Here is the call graph for this function:


The documentation for this class was generated from the following file:

Generated on Mon Sep 21 08:34:29 2020 for Charm++ by  doxygen 1.5.5