Skip to content

The LibreRT Project

LibreRT (Portable Heterogeneous Real-Time Programming for the Embedded Computing Continuum) is a research project funded under the Italian PRIN 2022 program. It addresses the increasing demand for embedded systems that combine high responsiveness, real-time capabilities, and high computational throughput. The project aims to develop a portable software stack—including programming models, operating systems, and compiler tools—capable of running across the entire embedded spectrum, from ultra-low-power microcontrollers to high-performance meta-edge platforms equipped with embedded GPUs.

Programming Models for Real Time

A key innovation of LibreRT is the extension of the SYCL programming model to support real-time constraints. SYCL, a modern C++ standard for heterogeneous parallelism, lies at the heart of the project, providing both compiler extensions to support embedded GPUs and library extensions for advanced features. Specifically, the project introduces real-time capabilities into SYCL via a set of extensions that support new features such as kernel-level priority scheduling and preemptive multitasking for CPUs and GPUs alike, as well as integration with Worst-Case Execution Time (WCET) analysis to ensure timing predictability. These innovations allow developers to express real-time constraints directly in high-level code while maintaining portability across a range of hardware platforms.

Real-Time Operating Systems

LibreRT also focuses on operating system support for real-time execution, particularly on resource-constrained micro-edge devices. Enhancements to the Miosix real-time operating system include the development of a high-resolution timing subsystem capable of expressing time in nanoseconds, a critical feature for applications that demand precise scheduling and low latency. The system also introduces clock synchronization features to enable coordinated execution across distributed nodes. Additionally, LibreRT brings heterogeneous scheduling support to Miosix, allowing it to manage both CPU and GPU tasks under a unified model that accounts for dependencies and timing constraints. This is achieved through novel scheduling algorithms based on control theory, which ensure predictability even in highly dynamic or constrained environments.

Approximate Computing and Automatic Tuning

To further enhance performance while respecting real-time deadlines, LibreRT integrates techniques from approximate computing with advanced autotuning strategies. The project incorporates mixed-precision arithmetic, where the accuracy of computations is selectively reduced to gain speed and reduce power consumption, as well as kernel perforation, a method that skips certain computations to improve throughput. These techniques are not static; instead, they are dynamically adjusted using autotuning approaches based on iterative compilation and machine learning. The system can automatically evaluate different trade-offs between accuracy and performance, selecting the optimal configuration for the current workload and timing constraints. This enables a new class of adaptive, self-optimizing embedded applications that intelligently balance quality and responsiveness.