SLX + AMALTHEA - tackling the automotive multicore challenge
The AMALTHEA model helps for a smooth integration of multiple applications on one platform. It is becoming more important as heterogeneous computers advance towards autonomous driving. The latest release of SLX now comes with AMALTHEA support and here Raphael Bruns, Silexica’s Solution Manager for Automotive, talks through the key features and explains what this means for your automotive multicore projects.
The AMALTHEA model unifies data exchange in cross-teams or cross-organizational projects on embedded multicore systems. It is growing in popularity as part of the solution for intelligent vehicles and after four months of development, we now incorporate it into the latest release of SLX. Here I will look at how to incorporate AMALTHEA within SLX and highlight some of the results that can be achieved. (These were trialed using an example given in the WATERS Industrial challenge 2017).
The AMALTHEA platform enables the creation and management of complex tool chains including simulation and validation. In combination with SLX it can be utilized in two ways:
- Import an ALMATHEA model and automatically generate schedules and memory mappings with SLX
- Run the SLX analysis on your source code to create an ALMATHEA Model of your application automatically
1. SLX ALMATHEA Import Scenario:
An AMALTHEA model importer has been added to the SLX Automotive Flow. You simply select this from the new project menu and name your project. Existing SLX AMALTHEA projects can also be imported in a similar manner.
The first stage is to get a deep understanding through the SLX Analyze phase. Following this exploration, a viewer highlights the inter-task and inter-runnable dependencies to provide insights into your applications. (Figure 1 and Figure 2)
Figure.1 Inter-Task Dependencies of the WATERS Challenge AMALTHEA Model.
In the next step, you use the Scheduler Configuration Dialog to select the tasks you wish to parallelize and create a mapping of tasks to processors for the schedule creation. The task splitting technology can be applied to all or a subset of processor on the target platform. As in the SLX Automotive Projects for AUTOSAR, the Worst Case Execution Times for runnables can be assigned to be used by the scheduler.
Figure 2 Inter-Runnable Dependencies of the 50ms Task of the WATERS challenge in SLX
Additionally, mapping excludes for runnables are supported to force runnable execution on a specific processor. Finally, you run the scheduler which computes schedules made available as *.rgantt files which can be investigated using the corresponding SLX viewer. (Figure 3)
To demonstrate the new feature of SLX the screenshots provided have been created on the data provided by the WATERS 2017 Industrial challenge. The data contains an AMALTHEA model that can be imported to investigate Inter Task Dependencies and Inter Runnable Dependencies.
Figure.3 Comparison of the 1000ms Task mapped to one, two and three cores using Runnable Level Parallelism
2. SLX ALMATHEA Model Creation
The AMALTHEA model creation scenario can be used to generate a system model based on the compiler-based analysis of C/C++ source code. In AUTOSAR Classic or other configurations it enables the user to create a model of the application that contains information about tasks and runnables, as well as execution order, data dependencies and performance estimation. This information is extended by necessary hardware information to calculate execution times based on processor cycles.
Based on such a generated model, it is possible to apply the Runnable-Level Parallelism approach and update the scheduling information of the AMALTHEA model as described above.
The Runnable-Level Parallelism in SLX has been improved with an analysis layer added to extract additional information. The new features support the extraction of runnables and how they are mapped to tasks. A new data dependency analysis reveals data dependencies on inter-runnable and inter-task level. Execution costs are assigned to each runnable by the SLX performance estimation and to store this information, a proprietary *.xml format has been established called the Runnable Dependency Graph (RDG).
With this information, SLX can parallelize existing legacy tasks. The inter-runnable dependencies are evaluated to calculate a valid multicore schedule. For the applied parallelization approach, there is no need to change the implementation of the runnables, since their original implementations are maintained. The parallelization approach distributes the runnables to selected cores of the hardware platform, while taking their dependencies into account.
Such a comprehensive AMALTHEA model can be used to share application specific information with other parties without the need of sharing actual source code. This is a huge benefit for developers.
Another new feature of SLX in automotive applications sees it provide automatic memory mapping according to the generated parallel schedules. This Autosar Memory Mapping feature addresses memory locality issues when migrating from a single to multicore platform. Based on the analyzed variable accesses and the generated multicore schedule, SLX maps variables to the selected platform’s memories efficiently.
This solves a major problem for developers by reducing cross core communication – a problem that is only likely to become more prominent as we vehicles become more intelligent.
The ALMATHEA approach is compatible with the AUTOSAR MemMap feature and an extended white paper is in development on this topic.
The addition of AMALTHEA compatibility is another strong addition to SLX’s automotive solutions and gives expert tooling to software professionals facing major challenges in the industry.
In today’s development scenarios involving multiple parties in the development, the exchange of application models such as AMALTHEA is necessary to verify a smooth software integration of multiple applications on a single hardware platform. SLX provides an easy entry to create such a model of an existing application and can in addition be used to perform further optimization steps.
Raphael is Silexica’s Solution Manager for Automotive. He leads an international team of programming experts in developing multicore software solutions for the most challenging intelligent vehicle projects. Prior to joining Silexica, he gained direct automotive industry experience with Visteon and Bertrandt. He has a Diploma in Computer Engineering from RWTH Aachen University.