Section: New Results

Priority-Driven Scheduling of Static Dataflow Graphs through Time Abstraction

Participants : Adnan Bouakaz, Thierry Gautier, Jean-Pierre Talpin.

Static dataflow graph models, such as SDF (Synchronous data-flow. E. A. Lee and D. G. Messerschmitt. Proceedings of the IEEE, 1987.) and CSDF (Cycle-static data-flow. Blisen, G. and Engels, M. and Lauwereins, R. and Peperstraete, Transactions on Signal Processing, v.2. 1996.), are widely used to design concurrent real-time streaming applications due to their inherent functional determinism and predictable performances. The state of the art usually advocates static-periodic scheduling of dataflow graphs over dynamic scheduling. Through the past decades, a considerable effort has been made to solve this problem (Software synthesis from dataflow graphs. Battacharyya, S. and Lee, E. and Murthy, P. Kluwer Academic Publishers, 1996.). Ensuring boundedness and liveness is the essence of the proposed algorithms in addition to optimizing some nonfunctional performance metrics (e.g. buffer minimization, throughput maximization, etc.).

Nowadays real-time streaming applications on MPSoCs are increasingly complex; and runtime systems are more needed to handle resource sharing, task priorities, etc. Therefore, recent works (Affine Data-Flow Graphs for the Synthesis of Hard Real-Time Applications. International Conference on Application of Concurrency to System Design. IEEE Press, 2012) (Temporal analysis flow based on an enabling rate characterization for multi-rate applications executed on MPSoCs with non-starvation-free schedulers. Hausmans, J., et al. International Workshop on Software and Compilers for Embedded Systems, 2014.) (Hard-real-time scheduling of data-dependent tasks in embedded streaming applications. Bamakhrama, M. and Stefanov, T. Embedded Systems Conference. ACM, 2011) are considering dynamic scheduling policies (e.g. earliest-deadline first scheduling, deadline monotonic scheduling, etc.) for dataflow graphs. The main motivations of these works are: (1) most existing real-time operating systems support such scheduling policies; (2) applicability of the existing schedulability theory (Real time scheduling theory: a historical perspective. Sha, L. et al. Real-Time Systems Conference. IEEE, 2004) (A survey of hard real-time scheduling for multiprocessor systems. Davis, R. and Burns, A. ACM Computing Surveys, v. 4, 2011); and (3) with such dynamic approach, multiple and independent applications, each designed as a dataflow graph, can run concurrently on the same platform.

Our work (Buffer Minimization in Earliest-First Scheduling of Dataflow Graphs. A. Bouakaz, J-P. Talpin. ACM conference on languages, compilers and tools for embedded systems. ACM Press, 2013.) (Design of Safety-Critical Java Level 1 Applications Using Affine Abstract Clocks. A. Bouakaz, J-P. Talpin. International Workshop on Software and Compilers for Embedded Systems, 2013.) [14] , [15] proposes a sequence-based framework in which a large class of priority-driven schedules can be uniformly expressed and analyzed. Infinite sequences are used to describe the dataflow graphs (e.g. rate sequences, execution time sequences) and both concrete and abstract schedules (e.g. activation clocks, priority sequences, activation relations, etc.). The framework can be then easily adapted for specific needs (e.g. affine scheduling). Our schedule construction approach is based on two steps. The first step consists in computing an abstract schedule which consists of a set of priority sequences, processor allocation sequences, and activation relations. An activation relation between two actors describes the relative order of their activations, and hence allows us to compute safe sizes of channels between them using worst-case overflow/underflow scenarios. This step must satisfy some correctness constraints such as consistency and exclusion of overflow and underflow exceptions. Once the best abstract schedule (w.r.t. to a performance metric) is computed, the schedule is refined by computing the actual periods and phases that ensure schedulability on the target architecture.