Periodic Reporting for period 1 - AMPERE (A Model-driven development framework for highly Parallel and EneRgy-Efficient computation supporting multi-criteria optimisation)
Berichtszeitraum: 2020-01-01 bis 2021-06-30
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.
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.
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%.