Hedgehog
3.1.0
A library to generate hybrid pipeline workflow systems
|
Abstraction for cores/nodes that can form groups. More...
#include "any_groupable_abstraction.h"
Public Member Functions | |
AnyGroupableAbstraction (size_t const numberThreads) | |
Constructor using the number of threads. | |
virtual | ~AnyGroupableAbstraction ()=default |
Default destructor. | |
size_t | numberThreads () const |
Accessor to the number of threads. | |
bool | isInGroup () const |
Test if a group is needed. | |
std::string | nodeId () const |
Accessor to the node id (redirection to NodeAbstraction::nodeId) | |
std::shared_ptr< std::set< AnyGroupableAbstraction * > > const & | group () const |
Group of cores accessor. | |
std::shared_ptr< std::set< NodeAbstraction * > > | groupAsNodes () const |
Create a set of the NodeAbstraction constituting the group. | |
AnyGroupableAbstraction * | groupRepresentative () const |
Group representative accessor. | |
std::string | groupRepresentativeId () const |
Group id representative accessor. | |
void | groupRepresentative (AnyGroupableAbstraction *groupRepresentative) |
Group representative setter. | |
void | group (std::shared_ptr< std::set< AnyGroupableAbstraction * > > const &group) |
Group setter. | |
size_t | numberActiveThreadInGroup () const |
Accessor to the number of nodes alive in the group. | |
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minmaxWaitDurationGroup () const |
Accessor to the min / max wait duration of the nodes in the group. | |
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | meanSDWaitDurationGroup () const |
Accessor to the mean / standard deviation wait duration of the nodes in the group. | |
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minmaxExecutionDurationGroup () const |
Accessor to the min / max execution duration of the nodes in the group. | |
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | meanSDExecutionDurationGroup () const |
Accessor to the mean / standard deviation execution duration of the nodes in the group. | |
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minmaxExecTimePerElementGroup () const |
Accessor to the min / max execution per elements duration of the nodes in the group. | |
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | meanSDExecTimePerElementGroup () const |
Accessor to the mean / standard deviation execution per elements duration of the nodes in the group. | |
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | minmaxMemoryWaitTimeGroup () const |
Accessor to the min / max wait time duration of the nodes in the group. | |
std::pair< std::chrono::nanoseconds, std::chrono::nanoseconds > | meanSDMemoryWaitTimePerElementGroup () const |
Accessor to the mean / standard deviation wait time duration of the nodes in the group. | |
std::pair< size_t, size_t > | minmaxNumberElementsReceivedGroup () const |
Accessor to the min / max number of elements received in the group. | |
std::pair< double, double > | meanSDNumberElementsReceivedGroup () const |
Accessor to the mean / standard deviation number of elements received in the group. | |
virtual void | createGroup (std::map< NodeAbstraction *, std::vector< NodeAbstraction * > > &)=0 |
Create a group to insert in the map. | |
Private Attributes | |
size_t const | numberThreads_ = 0 |
Number of threads. | |
AnyGroupableAbstraction * | groupRepresentative_ = nullptr |
Group representative. | |
std::shared_ptr< std::set< AnyGroupableAbstraction * > > | group_ = nullptr |
Node's group. | |
Abstraction for cores/nodes that can form groups.
Definition at line 39 of file any_groupable_abstraction.h.
|
inlineexplicit |
Constructor using the number of threads.
numberThreads | Number of threads (cores) in the group |
Definition at line 48 of file any_groupable_abstraction.h.
|
virtualdefault |
Default destructor.
|
pure virtual |
Create a group to insert in the map.
|
inline |
Group of cores accessor.
Definition at line 78 of file any_groupable_abstraction.h.
|
inline |
Group setter.
group | Group to set |
Definition at line 113 of file any_groupable_abstraction.h.
|
inline |
Create a set of the NodeAbstraction constituting the group.
Definition at line 84 of file any_groupable_abstraction.h.
|
inline |
Group representative accessor.
Definition at line 94 of file any_groupable_abstraction.h.
|
inline |
Group representative setter.
groupRepresentative | Group representative to set |
Definition at line 109 of file any_groupable_abstraction.h.
|
inline |
Group id representative accessor.
std::runtime_error | A group representative is not a NodeAbstraction |
Definition at line 99 of file any_groupable_abstraction.h.
|
inline |
Test if a group is needed.
Definition at line 64 of file any_groupable_abstraction.h.
|
inline |
Accessor to the mean / standard deviation execution per elements duration of the nodes in the group.
std::runtime_error | All the nodes in a group are not of the same types |
Definition at line 292 of file any_groupable_abstraction.h.
|
inline |
Accessor to the mean / standard deviation execution duration of the nodes in the group.
Definition at line 229 of file any_groupable_abstraction.h.
|
inline |
Accessor to the mean / standard deviation wait time duration of the nodes in the group.
std::runtime_error | All the nodes in a group are not of the same types |
Definition at line 363 of file any_groupable_abstraction.h.
|
inline |
Accessor to the mean / standard deviation number of elements received in the group.
std::runtime_error | All the nodes in a group are not of the same types |
Definition at line 435 of file any_groupable_abstraction.h.
|
inline |
Accessor to the mean / standard deviation wait duration of the nodes in the group.
std::runtime_error | All the nodes in a group are not of the same types |
Definition at line 175 of file any_groupable_abstraction.h.
|
inline |
Accessor to the min / max execution per elements duration of the nodes in the group.
std::runtime_error | All the nodes in a group are not of the same types |
Definition at line 258 of file any_groupable_abstraction.h.
|
inline |
Accessor to the min / max execution duration of the nodes in the group.
Definition at line 215 of file any_groupable_abstraction.h.
|
inline |
Accessor to the min / max wait time duration of the nodes in the group.
std::runtime_error | All the nodes in a group are not of the same types |
Definition at line 331 of file any_groupable_abstraction.h.
|
inline |
Accessor to the min / max number of elements received in the group.
std::runtime_error | All the nodes in a group are not of the same types |
Definition at line 402 of file any_groupable_abstraction.h.
|
inline |
Accessor to the min / max wait duration of the nodes in the group.
std::runtime_error | All the nodes in a group are not of the same types |
Definition at line 140 of file any_groupable_abstraction.h.
|
inline |
Accessor to the node id (redirection to NodeAbstraction::nodeId)
Definition at line 68 of file any_groupable_abstraction.h.
|
inline |
Accessor to the number of nodes alive in the group.
std::runtime_error | The cores in the groups are not of the same type |
Definition at line 118 of file any_groupable_abstraction.h.
|
inline |
Accessor to the number of threads.
Definition at line 60 of file any_groupable_abstraction.h.
|
private |
Node's group.
Definition at line 43 of file any_groupable_abstraction.h.
|
private |
Group representative.
Definition at line 42 of file any_groupable_abstraction.h.
|
private |
Number of threads.
Definition at line 41 of file any_groupable_abstraction.h.