Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC - Archive ouverte HAL Accéder directement au contenu
Article Dans Une Revue ACM Transactions on Programming Languages and Systems (TOPLAS) Année : 2023

Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC

Résumé

Embedded real-time systems are tightly integrated with their physical environment. Their correctness depends both on the outputs and timeliness of their computations. The increasing use of multi-core processors in such systems is pushing embedded programmers to be parallel programming experts. However, parallel programming is challenging because of the skills, experiences, and knowledge needed to avoid common parallel programming traps and pitfalls. This article proposes the ForeC synchronous multi-threaded programming 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 paral- lel programs. ForeC ensures 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 no non-deterministic constructs are needed. We have benchmarked our ForeC compiler with several medium-sized programs (e.g., a 2.274-line ForeC program with up to 26 threads and distributed on up to 10 cores, which was based on a 2.155-line non-multi-threaded C program). These benchmark programs show that ForeC can achieve better parallel performance than Esterel, a widely used imperative synchronous language for concurrent safety-critical systems, and is competitive in performance to OpenMP, a popular desktop solution for parallel programming (which implements classical multi-threading, hence is intrinsically non-deterministic). We also demonstrate that the worst-case execution time of ForeC programs can be estimated to a high degree of precision
Fichier principal
Vignette du fichier
main.pdf (5.96 Mo) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Licence : Domaine public

Dates et versions

hal-04338823 , version 1 (12-12-2023)

Licence

Paternité

Identifiants

Citer

Eugene Yip, Alain Girault, Partha S Roop, Morteza Biglari-Abhari. Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC. ACM Transactions on Programming Languages and Systems (TOPLAS), 2023, 45 (2), pp.1-74. ⟨10.1145/3591594⟩. ⟨hal-04338823⟩
13 Consultations
10 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More