HTGS  v2.0
The Hybrid Task Graph Scheduler
TaskGraphCommunicator Class Reference

Implements the task graph communicator where a task's address and name are mapped to their input connectors. More...

#include <htgs/core/comm/TaskGraphCommunicator.hpp>

Collaboration diagram for TaskGraphCommunicator:
Collaboration graph

Detailed Description

Implements the task graph communicator where a task's address and name are mapped to their input connectors.

This class's run function is bound to a thread once all task graphs (including sub-graphs), have been built and spawned. Once all threads are active, then a thread is bound to the task graph communicator. All graphs within execution pipelines and the main root graph have a separate task graph communicator, but share the task address mapping.

Initially the main graph represents the root of a tree of graphs with branches being defined by execution pipelines. Once all threads and execution pipelines have been created, then the root task graph communicator gathers all addresses and creates the mapping. Once the mapping is complete, then all task graph communicators are bound to separate threads. The mapping is read-only at this point.

Each task can submit a data packet into the task graph communicator, which will then send the data directly into the input connector for that data packet's destination.

A DataPacket is inserted into the task graph communicator, which provides meta data for looking up the end point location for the data packet. The data packet holds IData, which is then inserted into the end point's input connector.

Note
The IData type must match the end point input connector's data type.

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