Scheduling and compiling rate-synchronous programs with end-to-end latency constraints

26 July 2024, 10:00, CSIT Level 2 - Systems Area
Speaker: Timothy Bourke (Inria)

Abstract#

This talk details a recent collaboration with Airbus on a programming language and compilation strategy for real-time control software. The main ideas were presented at the ECRTS conference last year. The work proposes an extension of the synchronous-reactive model for specifying multi-rate systems. A set of periodically executed components and their communication dependencies are expressed in a Lustre-like programming language with features for load balancing, resource limiting, and specifying end-to-end latencies. The language abstracts from execution time and phase offsets. This permits simple clock typing rules and a stream-based semantics, but requires each component to execute within an overall base period. A program is compiled to a single periodic task in two stages. First, Integer Linear Programming is used to determine phase offsets using standard encodings for dependencies and load balancing, and a novel encoding for end-to-end latency. Second, a code generation scheme is adapted to produce step functions. As a result, components are synchronous relative to their respective rates, but not necessarily simultaneous relative to the base period. This approach has been implemented in a prototype compiler and validated on an industrial application.

bars search caret-down plus minus arrow-right times arrow-up