Parallel Code Generation of Synchronous Programs for a Many‐core Architecture
Amaury Graillat1,a, Matthieu Moy2, Pascal Raymond1,b and Benoît Dupont de Dinechin 3
1Verimag - Univ. Grenoble Alpes Saint Martin d'Heres, France
aAmaury.Graillat@univ-grenoble-alpes.fr
b Pascal.Raymond@univ-grenoble-alpes.fr
2LIP Lyon, France
matthieu.moy@univ-lyon1.fr
3Kalray Montbonnot, France
benoit.dinechin@kalray.eu
ABSTRACT
Embedded systems tend to require more and more computational power. Many‐core architectures are good candidates since they offer power and are considered more time predictable than classical multi‐cores. Data‐flow Synchronous languages such as Lustre or Scade are widely used for avionic critical software. Programs are described by networks of computational nodes. Implementation of such programs on a many‐core architecture must ensure a bounded response time and preserve the functional behavior by taking interference into account. We consider the top‐level node of a Lustre application as a software architecture description where each sub‐node corresponds to a potential parallel task. Given a mapping (tasks to cores), we automatically generate code suitable for the targeted many‐core architecture. This minimizes memory interferences and allows usage of a framework to compute the Worst‐Case Response Time.