Data-Flow¶
Requirements analysis¶
Requirements for a CCA data-flow engine.
Features¶
- Easy usage / convenient API
- Parallel computation (multi-core)
- Distribution of components/nodes over the network
- Arbitration of concurrent access on components/nodes
- Specific timing of components/nodes
- Real-time capable
- Activating / deactivating of nodes / node groups
- Introspection
- Error / exception handling
- Modeling support
- Resource modeling
- dynamic configuration
Skeletons¶
Skeletons we probably want to / will use in our data-flow graph:
- Parallelization
- Pipeline
- Farm
- Data-Flow
- SPMC
- MPSC
- SPMC
Farm = Farm of parallel worker threads
SPMC = Single Producer, Multi Consumer - Task/Input of one node is subdevided into subtasks and passed as inputs to several nodes. (data parallelization)
MPSC = Multi Producer, Single Consumer - Outputs from several nodes are passed as input to one single node.
Other / nice-to-have¶
- Flexibility
- Allow streaming of user specified types
- Little software dependencies
- Documentation
- Active development
- Active community?