Skip to main content
European Commission logo print header

A Model-driven development framework for highly Parallel and EneRgy-Efficient computation supporting multi-criteria optimisation

Periodic Reporting for period 1 - AMPERE (A Model-driven development framework for highly Parallel and EneRgy-Efficient computation supporting multi-criteria optimisation)

Reporting period: 2020-01-01 to 2021-06-30

The advent of advanced cyber-physical systems (CPS) demands high-performance requirements to cope with the newest functionalities across multiple application domains like autonomous and safe mobility, sustainable production and smart manufacturing, among others. In this regard, a key technological challenge is to provide the required levels of performance while executing the system components in one or more heterogeneous computing platforms connected among them, and fulfilling non-functional requirements, including predictability, energy efficiency, reliability, safety and security.

With a total amount of € 4.9M million, the AMPERE project aims to provide the foundations for future CPS which are capable of exploiting the performance capabilities of the most advanced processor architectures featuring acceleration devices while maintaining the benefits of model-driven engineering. This entails developing a software framework for the design, development and execution of advanced CPS, addressing the complete system stack from the application design with model-based engineering to an automatic transformation of the underlying parallel programming model, the analysis of the non-functional requirements, and support for the operating system and hypervisor. To do so, the AMPERE project defines three strategic goals:
1. Provide a system design ecosystem optimized for CPS composed of energy-efficient parallel heterogeneous architectures to significantly increase the productivity of the system while deriving trustable evidence about the fulfillment of non-functional requirements.
2. Provide a computer software ecosystem exploiting energy-efficient and parallel heterogeneous architectures while hiding their complexities.
3. Integrate AMPERE software solutions into relevant industrial markets requiring artificial intelligence technologies and composed of different levels of criticality.

To achieve this, the project copes with a major technical challenge: Bridging the gap between model-driven engineering used in CPS and the parallel programming models used in high-performance computing. The rewards are however rich, as by targeting the most advanced energy-efficient and highly-parallel heterogeneous platforms from model-driven techniques, full exploitation of performance-demanding emerging technologies like artificial intelligence and big data analytics should be more productive.

The AMPERE project will be evaluated in two representative use cases provided by the AMPERE partners BOSCH and THALIT, respectively: An Intelligent Predictive Cruise Control system for autonomous driving, and an Obstacle Detection Assistance System that will be demonstrated in the Florence Tramway Network.
During the period covered by this report, the AMPERE project has performed three main activities: (1) the analysis of the requirements of the different use cases and software components, (2) the development of the AMPERE software architecture addressing non-functional requirements independently from one another, and (3) the (partial) design of the use cases upon which the AMPERE software architecture will be evaluated.

Regarding the requirements, the project has thoroughly analyzed the requirements of each use case/component, and then the requirements have been structured in a traceability matrix shared by all work packages to ensure these are addressed from the design to the deployment of the system by all the components.

Regarding the software architecture, the project has carefully selected and (partially) developed a set of software components that will form the architecture, prioritizing those owned by members of the AMPERE consortium or offered as open-source components with a large community behind them, with the objective of reducing time-to-market and maximize exploitation opportunities. The AMPERE architecture consists of three different layers:
• A model-driven engineering layer including (a) domain specific modeling languages (DSML) designing CPSs involving non-functional requirements and parallel heterogeneous computing; and (b) code synthesis tools capable of (semi-)automatically transforming the DSML into optimized parallel source code.
• An offline transformation layer including (a) parallel programming models capable of effectively orchestrating the parallel execution across the platforms selected for AMPERE; (b) analysis and testing tools that guide the model-driven to programming model transformation for guaranteeing multi-criteria optimizations; and (c) compiler and hardware synthesis tools capable of maximizing multi-criteria optimizations.
• An online execution layer including (a) run-time libraries able to orchestrate parallel execution across the heterogeneous platforms used in AMPERE; (b) operating systems, including a general purpose OS and certified real-time OS (RTOS); and (c) a hypervisor, capable of managing the access to the hardware resources and ensuring safety and security.

The AMPERE components are being developed with well-defined interfaces to facilitate interoperability, portability and scalability, and provide developers with a solid infrastructure for better exploiting the distributed environments where the AMPERE project is built upon.
Current model-driven approaches typically target concurrent sequential systems. AMPERE has extended this paradigm by introducing new aspects at the DSML level to describe fine-grained parallelism and heterogeneity, and allowing an automatic transformation from the DSML to OpenMP parallel code, boosting productivity, portability and performance. Furthermore, AMPERE has proposed several extensions to the OpenMP standard to (a) boost the programmability of programming models like CUDA, (b) allow a more predictable and reliable execution of the OpenMP runtime system, and (c) enhance the performance of the system.

At the scheduling level, real-time analyses are commonly developed for single-core architectures, and analysis for multi-core systems tend to be too pessimistic and maybe even nullify the benefits of using parallel architectures. In this regard, AMPERE has studied the implications of using multi-core systems and has provided novel scheduling techniques to handle workloads with soft and hard real-time functionalities deployed in multi-core systems, and also to maximize the overall system performance.

Regarding heterogeneity, FPGA-based systems-on-chip are very attractive in safety-critical systems. Modern FPGAs allow also dynamic partial reconfiguration mechanisms for improved resource utilization. These mechanisms require however manual intervention, complicating the use of FPGAs. AMPERE has enhanced the process of designing and deploying CPSs including FPGAs by automating the design flow for hardware-software co-design.

The capabilities mentioned above are to be applied to the AMPERE use cases. We aim to generate several beneficial outcomes, including:
• Reducing software development costs by 30%.
• Reducing energy consumption by a factor of 5x.
• Avoiding or minimizing (less than 25%) performance degradation when code is automatically generated.
• Effectively using the overall system, i.e. at least 75%.
sw-pipeline.jpg