Increasing performance and reducing cost, while maintaining safety levels and programmability are the key demands for embedded and cyber-physical systems in European domains, e.g. aerospace, automation, and automotive. For many applications, the necessary performance with low energy consumption can only be provided by customized computing platforms based on heterogeneous many-core architectures. However, their parallel programming with time-critical embedded applications suffers from a complex toolchain and programming process.
The ARGO (WCET-Aware Parallelization of Model-Based Applications for Heterogeneous Parallel Systems) research project addressed this challenge with a holistic tool chain for programming heterogeneous multi- and many-core architectures using automatic parallelization of model-based real-time applications. ARGO enhances WCET-aware automatic parallelization by a cross-layer programming approach combining automatic tool-based and user-guided parallelization to reduce the need for expertise in programming parallel heterogeneous architectures. An integrated multi-core WCET analysis computes safe bounds for the WCET of parallelized programs, which qualifies the approach for the use in the hard real-time domain. The ARGO approach was assessed and demonstrated by prototyping comprehensive time-critical applications from both aerospace and industrial automation domains on customized heterogeneous many-core platforms.
The challenging research and innovation action was implemented by the unique ARGO consortium that brings together industry, leading research institutes and universities. High class SMEs such as Scilab Enterprises, AbsInt GmbH and emmtrix Technologies GmbH contributed their diverse know-how in model-based design environments, WCET calculation and automated software parallelization. The academic partners contributed their outstanding expertise in code transformations, automatic parallelization and multi-core WCET analysis.
The ARGO tool-chain translates model-based Scilab/Xcos applications into multi-core optimized C code with guaranteed real-time constraints. This is achieved by developing WCET aware automatic parallelization algorithms and a WCET analysis tool for heterogeneous multi-core architectures and parallel programs. Furthermore ARGO aims to provide a cross-layer programming interface, which allows end users to interactively control the automated parallelization process as detailed as needed.
The following figure shows an overview of the ARGO tool-flow:
More information can be found on the ARGO HiPEAC 2017 Poster: