geopm  3.1.1.dev272+gdfb40a8d
GEOPM - Global Extensible Open Power Manager
Public Member Functions | Static Public Member Functions | List of all members
geopm::TreeComm Class Referenceabstract

#include <TreeComm.hpp>

Inheritance diagram for geopm::TreeComm:
Inheritance graph
[legend]

Public Member Functions

 TreeComm ()=default
 
virtual ~TreeComm ()=default
 
virtual int num_level_controlled (void) const =0
 Returns the number of tree levels controlled by the Controller on this node. This determines which levels can be used for send_down() and receive_up(). More...
 
virtual int max_level (void) const =0
 Returns the number of tree levels participated in by the Controller on this node. This determines which levels can be used for sending or receiving, including with the parent. More...
 
virtual int root_level (void) const =0
 Returns the level of the root of the tree, which is equal to the number of levels in the tree. More...
 
virtual int level_rank (int level) const =0
 Returns the rank of the given level. More...
 
virtual int level_size (int level) const =0
 Returns the number of children for each parent in the given level. More...
 
virtual void send_up (int level, const std::vector< double > &sample)=0
 Send samples up to the parent within a level. More...
 
virtual void send_down (int level, const std::vector< std::vector< double > > &policy)=0
 Send policies down to children within a level. More...
 
virtual bool receive_up (int level, std::vector< std::vector< double > > &sample)=0
 Receive samples from children within a level. More...
 
virtual bool receive_down (int level, std::vector< double > &policy)=0
 Receive policies from the parent within a level. More...
 
virtual size_t overhead_send (void) const =0
 Returns the total number of bytes sent from the entire tree. More...
 

Static Public Member Functions

static std::vector< int > fan_out (const std::shared_ptr< Comm > &comm)
 Returns the number of children at each level. More...
 

Constructor & Destructor Documentation

◆ TreeComm()

geopm::TreeComm::TreeComm ( )
default

◆ ~TreeComm()

virtual geopm::TreeComm::~TreeComm ( )
virtualdefault

Member Function Documentation

◆ fan_out()

std::vector< int > geopm::TreeComm::fan_out ( const std::shared_ptr< Comm > &  comm)
static

Returns the number of children at each level.

◆ level_rank()

virtual int geopm::TreeComm::level_rank ( int  level) const
pure virtual

Returns the rank of the given level.

Implemented in geopm::TreeCommImp.

◆ level_size()

virtual int geopm::TreeComm::level_size ( int  level) const
pure virtual

Returns the number of children for each parent in the given level.

Implemented in geopm::TreeCommImp.

◆ max_level()

virtual int geopm::TreeComm::max_level ( void  ) const
pure virtual

Returns the number of tree levels participated in by the Controller on this node. This determines which levels can be used for sending or receiving, including with the parent.

Implemented in geopm::TreeCommImp.

◆ num_level_controlled()

virtual int geopm::TreeComm::num_level_controlled ( void  ) const
pure virtual

Returns the number of tree levels controlled by the Controller on this node. This determines which levels can be used for send_down() and receive_up().

Implemented in geopm::TreeCommImp.

◆ overhead_send()

virtual size_t geopm::TreeComm::overhead_send ( void  ) const
pure virtual

Returns the total number of bytes sent from the entire tree.

Implemented in geopm::TreeCommImp.

◆ receive_down()

virtual bool geopm::TreeComm::receive_down ( int  level,
std::vector< double > &  policy 
)
pure virtual

Receive policies from the parent within a level.

Implemented in geopm::TreeCommImp.

◆ receive_up()

virtual bool geopm::TreeComm::receive_up ( int  level,
std::vector< std::vector< double > > &  sample 
)
pure virtual

Receive samples from children within a level.

Returns
True if all of the children have only non-NaN data

Implemented in geopm::TreeCommImp.

◆ root_level()

virtual int geopm::TreeComm::root_level ( void  ) const
pure virtual

Returns the level of the root of the tree, which is equal to the number of levels in the tree.

Implemented in geopm::TreeCommImp.

◆ send_down()

virtual void geopm::TreeComm::send_down ( int  level,
const std::vector< std::vector< double > > &  policy 
)
pure virtual

Send policies down to children within a level.

Implemented in geopm::TreeCommImp.

◆ send_up()

virtual void geopm::TreeComm::send_up ( int  level,
const std::vector< double > &  sample 
)
pure virtual

Send samples up to the parent within a level.

Implemented in geopm::TreeCommImp.


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