Skip to Main content Skip to Navigation

Synchronous Deterministic Parallel Programming for Multicores with ForeC: Programming Language, Semantics, and Code Generation

Abstract : 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.
Complete list of metadatas

Cited literature [138 references]  Display  Hide  Download
Contributor : Eugene Yip <>
Submitted on : Wednesday, August 3, 2016 - 11:58:56 PM
Last modification on : Friday, November 20, 2020 - 9:24:05 AM
Long-term archiving on: : Tuesday, November 8, 2016 - 9:57:21 PM


Files produced by the author(s)


  • HAL Id : hal-01351552, version 1



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⟩



Record views


Files downloads