2.2 Dataflow classes
2.2.3 Dynamic extensions to static dataflow programs
In order to extend the expressiveness of the static dataflow MoC s, several extensions capable of handling some dynamic behavior have been introduced. They can be classified in two categories: the ones that allow the graph to change the topology at run-time and the ones that allow the amount of data exchanged between actors to change at run-time. The MoC s from the first group (such as Boolean Dataflow and Integer Dataflow) introduce specialized actors that can change the topology of the graph at run-time using some parameters. The second group relies on the usage of parameters to control the amount of data communicated between the actors. This Section presents some of the models from both groups.
Boolean Dataflow and Integer Dataflow
Boolean Dataflow (B DF ) belongs to the models focusing on altering the graph topology at run-time. It was originally introduced in [46] as an extension of SDF adding an "if-then-else" functionality. This functionality is provided by two special actors: switch and select. The first one has a single data input and two data outputs. It receives boolean input tokens at a boolean control input that enables the selection of an output. In the same way, the select actor consisting of two inputs and one output makes the choice of an input. A B DF graph is analyzed just like an SDF graph, except for the switch and select actors. Analyzing these actors requires calculating the rates related to the proportion of true tokens on their input boolean streams. Integer Dataflow (I DF ) is an extension to B DF proposed in [47]. It replaces the boolean streams with integer streams so that the ports can be selected over many, not just
two ports. Both models slightly increase the expressiveness of SDF , but do not allow making changes in the production/consumption rates.
Parametrized Synchronous Dataflow
Parametrized Synchronous Dataflow (P SDF ) [48] allows arbitrary attributes of a dataflow graph to be parametrized. Each parameter is associated with a set of admissible values to be taken at any given time. The attributes can be scalar or vector attributes of individual actors, edges or graphs. This dataflow representation consists of three cooperating dataflow graphs referred to as the body graph, the subinit graph and the init graph. The body graph typically represents the functional core of the implemented algorithm, whereas the sub-init and init graphs are dedicated to managing its parameters. Changes to the body graph parameters occurring according to the parameters computed by the init and sub-init graphs cannot occur at arbitrary points in time. Instead, the body graph executes uninterrupted through an iteration, where the notion of iteration can be specified by the user. A combination of cooperating body, init, and subinit graphs is referred to as a P SDF specification. These specifications can be abstracted as P SDF actors in higher level P SDF graphs, hence they can be hierarchically integrated. P SDF does not allow changes in the topology of the graph.
Scenario-Aware Dataflow
Scenario-Aware Dataflow (S ADF ) is a modification to the original SDF model by means of system scenarios [49]. It introduces a special type of actor, called a detector, and enables using parameters as port rates. The role of the detectors is to detect the current scenario the application operates on and apply a change to the port rates accordingly. Detectors are assigned to non-overlapping sets of actors, so that each actor is controlled by exactly one detector using a control link. When an actor fires, it first reads a token from the control link that configures the values of its parameters, and then waits until it has sufficient tokens on its input edges. The set of possible scenarios is finite and known at compile-time. A scenario is defined by a set of values, one for each parametrized rate. Since all scenarios are known at compile-time, S ADF is analyzed by considering all possible SDF graphs that result from each scenario. S ADF resembles C SDF in the sense that it uses a fixed set of possible rates on each port. The difference is that it does not impose any ordering at compile-time. Unlike other models using the parametric rates, S ADF does not require a parametric analysis as all configurations can be analyzed separately as SDF at compile-time. However, this approach can become expensive, when the number of scenarios is large. Hence, it remains reasonable when the number of scenarios is limited and manageable by a human. The dynamic changes can take place only in between the iterations, but include both dynamic rates and dynamic topology changes.
Schedulable Parametric Dataflow
Schedulable Parametric Dataflow (SP DF ) is a MoC enabling dynamic changes of the rates of an actor within an iteration of the graph [50]. It uses symbolic rates which can be the products of positive integers or symbolic variables (parameters). The variable values are set by the special actors of the graph, called modifiers. Actors that have parameters on their port rates or at their solutions are called users of a parameter. The parameter values are produced by the modifiers and propagated towards all the users through an auxiliary network. Modifiers and users have their respective writing and reading periods, indicating the number of times an actor should fire before producing/consuming a new value for a parametric rate. The writing periods are annotated for each modifier and the reading periods are calculated by analyzing the graph. Some writing periods, i .e., the ones causing inconsistency, are not allowed. Comparing to other parametric models,SP DF provides the maximum flexibility
in terms of changing of the parameter values. However, the increased expressiveness makes the scheduling problem very challenging, because the data dependencies are parametric and can change at any time during the execution, unlike for other parametric models, where a schedule can be established at the beginning of an iteration. Changes of the topology of the graph are not allowed.
Boolean Parametric Dataflow
Boolean Parametric Dataflow (B P DF ) [51] is a model combining integer and boolean parame- ters. It allows expressing dynamic rates and the activation/deactivation of communication channels. Similarly to other parametric models, the input/output ports are labeled with consumption/production rates that can be parametric. Integer parameters can change at run- time between two iterations. Moreover, the edges can be annotated with boolean parameters allowed to change also within an iteration. Hence, both types of changes: production/con- sumption rates and graph topology are allowed. B P DF is mostly considered for executions on
ST HOR M many-core chip from ST Mi cr oel ec t r oni c s [52], for which a scheduling algorithm
for B P DF graphs exists [53].
Transaction Parametrized Dataflow
Transaction Parametrized Dataflow (T P DF ) [54] is a recently defined MoC extending C SDF with parametric rates and a new type of control actor, channel and port. Hence, it aims at enabling dynamic changes of the graph topology and time constraints semantics. It has been designed to be statically analyzable (i .e., in terms of deadlock and boundedness properties), while avoiding the restrictions of decidable dataflow models mentioned earlier. The dynamic behaviors can be viewed as a collection of different behaviors, called cases, occurring in certain
unknown patterns. Each case is considered to be static by itself and predictable in performance.
T P DF can be considered similar to B P DF with an extension to impose real-time constraints.