AMPERE develops a new generation of computing software and systems design ecosystem for applications in industrial sectors with tight interactions among subsystems Cyber-Physical Systems of Systems (CPSoS). The ecosystem aims at helping system developers to leverage low-energy and highly-parallel and heterogeneous computation in their development process while fulfilling the non-functional constraints inherited from the cyber-physical interactions. 

The main challenge addressed in AMPERE is to bridge the gap currently existing between the techniques used for the construction of complex CPSoS, and the techniques used for effectively exploiting parallel architectures:

  • Model-Driven Engineering (MDE) is a common methodology for the development of complex systems mainly because of two reasons: it allows formal verification of functional and non-functional requirements with composability features, and it enables the use of code generation tools for a development process based on a correct-by-construction paradigm.
  • Parallel Programming Models (PPMs) are mandatory for achieving productivity on parallel architectures, in terms of programmability, portability, and performance.

AMPERE’s use cases target the automotive and railway domains. CPSoS offers the opportunity to leverage low-energy and highly-parallel and heterogeneous systems, while fulfilling the non-functional constraints on these domains, opening the door to the development of more efficient and autonomous mobility solutions. Nonetheless, AMPERE’s developments are also applicable to other domains with the same or similar constraints, like industrial control systems, and robotic systems, among others.

Software Ecosystem 

The figure below shows a schematic view of the AMPERE software ecosystem stack and the set of layers to be integrated:

 

AMPERE devises a complete system design and computing software ecosystem including the complete stack for designing, implementing, and efficiently executing dependable and physically-entangled systems on platforms composed of the most advanced  Commercial-Off-The-Shelf (COTS) energy-efficient parallel heterogeneous architectures.

Demos Ampere
Watch technical demos by clicking the icon above. 

Enhanced model-driven languages, like AMALTHEA and CAPELLA capable of expressing and verifying non-functional constraints including performance, energy, safety, and time predictability in the context of parallel heterogeneous computing.

Having a common system specification that follows industrial standards allows easier integration into industrial product design processes. While CAPELLA covers the component-based system design approaches, AMALTHEA focuses on the dynamic system architecture. In Ampere we bridged the two design approaches. Ampere enables a model-based approach from CAPELLA through AMALTHEA to source code that is executed on the platform to facilitate certifiability for parallel heterogeneous computing.

In a context such as the one considered in AMPERE, the earlier a safety requirement can be identified the easier it can be managed. CAPELLA allows the designer to express safety requirements since the early phase of the project, for instance by labelling with “safety related” a module considered to be encapsulating safety requirements. Later, the system can check that the AMALTHEA model is coherent with requirements expressed in CAPELLA and that Amalthea components derived from a CAPELLA “safety related” module contains more specialised safety requirements. Finally, a check can be made at the code generation level to be sure that code implementing safety requirements is compliant to software safety standards.

We additionally extended the AMALTHEA meta model to cover modern pub/sub communication infrastructures like ROS and AUTOSAR Adaptive and enriched applications suited for parallel execution in hardware platforms with heterogeneous accelerators that is used by (semi-)automated code synthesis tools.

Software components:

Loading content ...
Loading content ...
Loading content ...

The LLVM compilation framework has been extended to extract the control- and data-flow information in order to generate a complete representation of the parallel application in the form of a Task Dependency Graph (TDG). This representation serves as interface between the compilation system and the different analysis tools to perform multi-criteria optimisations. Furthermore, LLVM is also extended to support all augmentations/modifications proposed for OpenMP (e.g., replication, static scheduling), so it is able to transform the parallel directives into the corresponding runtime calls. Finally, the compilation ecosystem includes tools for the compilation and synthesis of hardware blocks to be deployed on FPGA-enabled platforms.

Software components:

Loading content ...
Loading content ...
Loading content ...