Scenario-Aware Dataflow (SADF)
SADF is a new dataflow model of computation for design-time analysis of dynamic streaming and signal processing applications. It extends the Synchronous Dataflow model, which is also known as Weighted Marked Graphs in Petri Net theory, with the concept of scenarios. Such scenarios denote different modes of operations in which resource requirements can differ considerably. The scenario concept enables to coherently capture the variations in behaviour of different processes in a streaming application. A key novelty of SADF is the use of a stochastic approach to capture the scenario occurrences as well as the occurrence of different execution times within a scenario in an abstract way. Despite the improved expressive power compared to Synchronous Dataflow and Cyclo-Static Dataflow, correctness and performance properties like absence of deadlock and throughput are still analysable at design time. An introductory presentation of Scenario-Aware Dataflow can be found here. A detailed explanation of Scenario-Aware Dataflow can be found here.
SADF provides several ways to express dynamism, including
- Paremeterised numbers of consumed/produced tokens
- Inactive processes
- Discrete execution time distributions
- (Hierarchical) correlations between the above for different processes
- Pipelined reconfiguration
- Order in which variations may occur does not need to be according to reoccurring fixed patterns
- Streaming data and control
- Hard and soft real-time
- Design-time verification of functional correctness
- Design-time performance analysis of extrema, reachability and long-run performance properties
Apart from some subtleties, SADF can be used to succinctly express other models of computation, including (Homogeneous) Synchronous Dataflow (HSDF and SDF), Parameterised Synchronous Dataflow (PSDF), Cyclo-Static Dataflow (CSDF), Boolean Dataflow (BDF), Integer-Controlled Dataflow (ICDF) and (Conditional) Task Graphs (CTG). SADF may also be used to develop succinct analysis models of Kahn Process Networks (KPN) and Reactive Process Networks (RPN).