|
| CoreTask (AbstractTask< Separator, AllTypes... > *const task) |
| Create a CoreTask from a user-defined AbstractTask with one thread.
|
|
| CoreTask (AbstractTask< Separator, AllTypes... > *const task, std::string const &name, size_t const numberThreads, bool const automaticStart) |
| Create a CoreTask from a user-defined AbstractTask, its name, the number of threads and the automatic start flag.
|
|
template<class ConcreteMultiReceivers , class ConcreteMultiExecutes , class ConcreteMultiSenders > |
| CoreTask (AbstractTask< Separator, AllTypes... > *const task, std::string const &name, size_t const numberThreads, bool const automaticStart, std::shared_ptr< implementor::ImplementorSlot > concreteSlot, std::shared_ptr< ConcreteMultiReceivers > concreteMultiReceivers, std::shared_ptr< ConcreteMultiExecutes > concreteMultiExecutes, std::shared_ptr< implementor::ImplementorNotifier > concreteNotifier, std::shared_ptr< ConcreteMultiSenders > concreteMultiSenders) |
| Construct a task from the user-defined task and its concrete abstraction's implementations.
|
|
| ~CoreTask () override=default |
| Default destructor.
|
|
std::shared_ptr< AbstractMemoryManager > | memoryManager () const override |
| Accessor to the memory manager.
|
|
bool | callCanTerminate (bool lock) override |
| Call user-definable termination.
|
|
void | preRun () override |
| Initialize the task.
|
|
void | run () override |
| Main core task logic.
|
|
void | postRun () override |
| When a task terminates, set the task to non active, call user-defined shutdown, and disconnect the task to successor nodes.
|
|
bool | wait () |
| Wait statement when the node is alive and no input data are available.
|
|
void | createGroup (std::map< NodeAbstraction *, std::vector< NodeAbstraction * > > &map) override |
| Create a group for this task, and connect each copies to the predecessor and successor nodes.
|
|
bool | hasMemoryManagerAttached () const override |
| Test if a memory manager is attached.
|
|
std::string | extraPrintingInformation () const override |
| Accessor to user-defined extra information for the task.
|
|
void | copyInnerStructure (CoreTask< Separator, AllTypes... > *copyableCore) override |
| Copy task's inner structure.
|
|
std::vector< std::pair< std::string const, std::string const > > | ids () const override |
| Node ids [nodeId, nodeGroupId] accessor.
|
|
void | visit (Printer *printer) override |
| Visit the task.
|
|
std::shared_ptr< abstraction::NodeAbstraction > | clone (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &correspondenceMap) override |
| Clone method, to duplicate a task when it is part of another graph in an execution pipeline.
|
|
void | duplicateEdge (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping) override |
| Duplicate the task edge.
|
|
| TaskNodeAbstraction (std::string const &name, behavior::Node *node) |
| Create the abstraction with the node's name.
|
|
| ~TaskNodeAbstraction () override=default |
| Default destructor.
|
|
bool | isActive () const |
| Accessor to task status.
|
|
bool | isInitialized () const |
| Accessor to initialized flag.
|
|
size_t | numberReceivedElements () const |
| Accessor to the number of received elements.
|
|
std::chrono::nanoseconds const & | waitDuration () const |
| Accessor to the duration the node was in a wait state.
|
|
std::chrono::nanoseconds const & | memoryWaitDuration () const |
| Accessor to the duration the node was in a memory wait state.
|
|
std::shared_ptr< NvtxProfiler > const & | nvtxProfiler () const |
| Accessor to the NVTX profiler attached to the node.
|
|
std::chrono::nanoseconds | perElementExecutionDuration () const |
| Accessor to the duration the average duration of processing an input data.
|
|
void | isActive (bool isActive) |
| Setter to the task status.
|
|
void | incrementNumberReceivedElements () |
| Increment the number of elements received.
|
|
void | incrementWaitDuration (std::chrono::nanoseconds const &wait) |
| Increment the wait duration.
|
|
void | incrementMemoryWaitDuration (std::chrono::nanoseconds const &wait) |
| Increase the memory wait duration.
|
|
void | incrementPerElementExecutionDuration (std::chrono::nanoseconds const &exec) |
| Increase the execution time per elements.
|
|
virtual void | preRun ()=0 |
| Pre run method, called only once.
|
|
virtual void | run ()=0 |
| Run method, called when thread is attached.
|
|
virtual void | postRun ()=0 |
| Post run method, called only once.
|
|
virtual std::string | extraPrintingInformation () const =0 |
| Abstraction to add user-defined message for the printers.
|
|
virtual bool | hasMemoryManagerAttached () const =0 |
| Flag accessor to the presence of memory manager attached.
|
|
virtual std::shared_ptr< AbstractMemoryManager > | memoryManager () const =0 |
| Accessor to the attached memory manager.
|
|
behavior::Node * | node () const override |
| Node accessor.
|
|
| NodeAbstraction (std::string name) |
| Core node constructor using the core's name.
|
|
virtual | ~NodeAbstraction ()=default |
| DEfault destructor.
|
|
std::string const & | name () const |
| Accessor to the core's name.
|
|
virtual std::string | id () const |
| Core's id ('x' + address of abstraction) as string.
|
|
bool | isRegistered () const |
| Accessor to registration flag.
|
|
GraphNodeAbstraction * | belongingGraph () const |
| Belonging graph accessor.
|
|
virtual int | deviceId () const |
| Get the device identifier (got from belonging graph)
|
|
virtual size_t | graphId () const |
| Get the graph identifier (got from belonging graph)
|
|
std::chrono::nanoseconds const & | executionDuration () const |
| Execution duration.
|
|
std::chrono::time_point< std::chrono::system_clock > const & | startExecutionTimeStamp () const |
| Accessor to the starting execution timestamp.
|
|
void | startExecutionTimeStamp (std::chrono::time_point< std::chrono::system_clock > const &startExecutionTimeStamp) |
| Setter to the starting execution timestamp.
|
|
void | incrementExecutionDuration (std::chrono::nanoseconds const &exec) |
| Increment execution duration.
|
|
virtual void | registerNode (GraphNodeAbstraction *belongingGraph) |
| Register node to the given graph.
|
|
virtual std::vector< std::pair< std::string const, std::string const > > | ids () const =0 |
| Node ids [nodeId, nodeGroupId] accessor.
|
|
virtual behavior::Node * | node () const =0 |
| Node accessor.
|
|
tool::PrintOptions const & | printOptions () const |
| Print options const accessor.
|
|
tool::PrintOptions & | printOptions () |
| Print options accessor.
|
|
virtual void | visit (Printer *printer)=0 |
| Visitor method, used by the printer to visit all nodes in the graph.
|
|
| ClonableAbstraction () |
| Default constructor.
|
|
virtual | ~ClonableAbstraction ()=default |
| Default destructor.
|
|
void | storeClone (std::shared_ptr< abstraction::NodeAbstraction > const &clone) |
| Store a core clone.
|
|
virtual std::shared_ptr< abstraction::NodeAbstraction > | clone (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &correspondenceMap)=0 |
| Clone virtual function.
|
|
virtual void | duplicateEdge (std::map< NodeAbstraction *, std::shared_ptr< NodeAbstraction > > &mapping)=0 |
| Duplicate the output edges of a node.
|
|
| CleanableAbstraction ()=default |
| Constructor used by the CoreGraph to have the handles to clean inner cleanable nodes.
|
|
| CleanableAbstraction (behavior::Cleanable *const cleanableNode) |
| Constructor used by cleanable nodes.
|
|
virtual | ~CleanableAbstraction ()=default |
| Default destructor.
|
|
virtual void | gatherCleanable (std::unordered_set< hh::behavior::Cleanable * > &cleanableSet) |
| Gather cleanable node from the graph, and the state manager.
|
|
| CanTerminateAbstraction (behavior::CanTerminate *const canTerminateNode) |
| Constructor using behavior::CanTerminate node abstraction.
|
|
virtual | ~CanTerminateAbstraction ()=default |
| Default destructor.
|
|
bool | callNodeCanTerminate () const |
| Call user-definable termination.
|
|
virtual bool | callCanTerminate (bool lock)=0 |
| Interface for calling user-definable termination.
|
|
| GroupableAbstraction (CopyableNode *const copyableNode, size_t const &numberThreads) |
| Constructor using the node abstraction to call the user-defined copy and the number of threads.
|
|
| ~GroupableAbstraction () override=default |
| Default destructor.
|
|
int | threadId () const |
| Accessor to thread id.
|
|
std::shared_ptr< CopyableNode > | callCopyAndRegisterInGroup () |
| Call the used-defined copy and register the copy in the group.
|
|
virtual void | copyInnerStructure (CoreTask< Separator, AllTypes... > *copyableCore)=0 |
| Copy the inner structure of the core.
|
|
| CopyableAbstraction (CopyableNode *const copyableNode) |
| Constructor using a node abstraction.
|
|
virtual | ~CopyableAbstraction ()=default |
| Default destructor.
|
|
| 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.
|
|