Synchronous Deterministic Parallel Programming for Multicores with ForeC - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Rapport (Rapport De Recherche) Année : 2016

Synchronous Deterministic Parallel Programming for Multicores with ForeC

Programmation parallèle, synchrone et déterministe de multi-coeurs avec ForeC

Résumé

Cyber-physical systems (CPSs) are embedded systems that are tightly integrated with their physical environment. The correctness of a CPS depends on the output of its computations and on the timeliness of completing the computations. The increasing use of high-performing and low-power multi-core processors in embedded systems is pushing embedded programmers to be parallel programming experts. Parallel programming is challenging because of the skills, exper ences, and knowledge needed to avoid common parallel programming traps and pitfalls. This paper proposes the ForeC language for the deterministic, parallel, and reactive programming of embedded multi-cores. The synchronous semantics of ForeC is designed to greatly simplify the understanding and debugging of parallel programs. ForeC allows programmers to express many forms of parallel patterns while ensuring that ForeC programs can be compiled efficiently for parallel execution and be amenable to static timing analysis. ForeC’s main innovation is its shared variable semantics that provides thread isolation and deterministic thread communication. All ForeC programs are correct by construction and deadlock-free because mutual exclusion constructs are not needed. Through benchmarking, we demonstrate that ForeC can achieve better parallel performance than Esterel, a widely used synchronous language for concurrent safety-critical systems, and OpenMP, a popular desktop solution for parallel programming. We demonstrate that the worst-case execution time of ForeC programs can be estimated to a high degree of precision.
Les systèmes cyber-physiques sont des systèmes embarqués qui sont très fortement couplés à leur environnement. La correction d’un tel système dépend à la fois des sorties calculées et des dates auxquelles ces sorties sont produites. L’usage croissant de processeurs haute performance multi-cœurs dans les systèmes embarqués pousse les programmeurs à devenir des experts en programmation parallèle. La programmation parallèle représente un défi en raison des compétences, de l’expérience, et des savoirs qui sont requis afin d’éviter les pièges classiques. Dans cet article, nous proposons le langage de programmation ForeC pour la programmation déterministe, parallèle et réactive des processeurs embarqués multi-cœurs. La sémantique synchrone de ForeC a été conçue pour simplifier grandement la compréhension et la mise au point des programmes parallèles. ForeC permet aux programmeurs d’exprimer de nombreuses formes de schémas parallèles tout en garantissant que les programmes ForeC peuvent être compilés efficacement pour une exécution parallèle, et que leur temps d’exécution peut être calculé statiquement. La principale innovation de ForeC réside dans la sémantique des variables partagées, qui garantit l’isolation des fils d’exécution et une communication déterministe entre les fils d’exécution. Tous les programmes ForeC sont correct par construction et sans inter-blocage car les constructions d’exclusion mutuelle ne sont pas nécessaires. Grâce à des benchmarks, nous démontrons que ForeC peut obtenir de meilleures performances parallèles qu’Esterel, un langage synchrone largement utilisé pour les systèmes concurrents à sûreté critique, ainsi qu’OpenMP, une solution utilisée classiquement pour la programmation parallèle. Nous démontrons que le temps d’exécution au pire cas des programmes ForeC peut être estimé avec un très haut degré de précision.
Fichier principal
Vignette du fichier
RR-8943.pdf (4.5 Mo) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01351552 , version 1 (03-08-2016)

Identifiants

  • HAL Id : hal-01351552 , version 1

Citer

Eugene Yip, Partha S. Roop, Alain Girault, Morteza Biglari-Abhari. Synchronous Deterministic Parallel Programming for Multicores with ForeC: Programming Language, Semantics, and Code Generation. [Research Report] RR-8943, Inria - Research Centre Grenoble – Rhône-Alpes. 2016. ⟨hal-01351552⟩
229 Consultations
319 Téléchargements

Partager

Gmail Facebook X LinkedIn More