Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC

被引:0
|
作者
Yip, Eugene [1 ]
Girault, Alain [2 ]
Roop, Partha S. [3 ]
Biglari-Abhari, Morteza [3 ]
机构
[1] Univ Bamberg, Software Technol Res Grp, D-96047 Bamberg, Germany
[2] Univ Grenoble Alpes, INRIA, CNRS, Grenoble INP,LIG, Grenoble, France
[3] Univ Auckland, Dept ECE, Auckland, New Zealand
关键词
Programming language; semantics; parallelism; synchronous; determinism; reactive programming; multi-core; worst-case execution time; code generation; REAL-TIME APPLICATIONS; TIMING ANALYSIS; LANGUAGE; EXECUTION; SEMANTICS; DESIGN; MODELS; CODE;
D O I
10.1145/3591594
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 parallel 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.
引用
收藏
页数:74
相关论文
共 50 条
  • [1] The ForeC Synchronous Deterministic Parallel Programming Language for Multicores
    Yip, Eugene
    Girault, Alain
    Roop, Partha S.
    Biglari-Abhari, Morteza
    [J]. 2016 IEEE 10TH INTERNATIONAL SYMPOSIUM ON EMBEDDED MULTICORE/MANY-CORE SYSTEMS-ON-CHIP (MCSOC), 2016, : 297 - 304
  • [2] Stream Processing on Multi-Cores with GPUs: Parallel Programming Models' Challenges
    Rockenbach, Dinei A.
    Stein, Charles M.
    Griebler, Dalvan
    Mencagli, Gabriele
    Torquati, Massimo
    Danelutto, Marco
    Fernandes, Luiz G.
    [J]. 2019 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW), 2019, : 834 - 841
  • [3] Assessing Coding Metrics for Parallel Programming of Stream Processing Programs on Multi-cores
    Andrade, Gabriella
    Griebler, Dalvan
    Santos, Rodrigo
    Danelutto, Marco
    Fernandes, Luiz G.
    [J]. 2021 47TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA 2021), 2021, : 291 - 295
  • [4] On the parallel programmability of Java']JavaSymphony for multi-cores and clusters
    Aleem, Muhammad
    Prodan, Radu
    Islam, Muhammad Arshad
    Iqbal, Muhammad Azhar
    [J]. INTERNATIONAL JOURNAL OF AD HOC AND UBIQUITOUS COMPUTING, 2019, 30 (04) : 247 - 264
  • [5] Improving the Performance of Actors on Multi-cores with Parallel Patterns
    Rinaldi, Luca
    Torquati, Massimo
    De Sensi, Daniele
    Mencagli, Gabriele
    Danelutto, Marco
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2020, 48 (04) : 692 - 712
  • [6] Automatic Evolution of Parallel Sorting Programs on Multi-cores
    Chennupati, Gopinath
    Azad, R. Muhammad Atif
    Ryan, Conor
    [J]. APPLICATIONS OF EVOLUTIONARY COMPUTATION, EVOAPPLICATIONS 2015, 2015, 9028 : 706 - 717
  • [7] Improving the Performance of Actors on Multi-cores with Parallel Patterns
    Luca Rinaldi
    Massimo Torquati
    Daniele De Sensi
    Gabriele Mencagli
    Marco Danelutto
    [J]. International Journal of Parallel Programming, 2020, 48 : 692 - 712
  • [8] A Multi-Rate Precision Timed Programming Language for Multi-Cores
    Girault, Alain
    Hili, Nicolas
    Jenn, Eric
    Yip, Eugene
    [J]. PROCEEDINGS OF THE 2019 FORUM ON SPECIFICATION AND DESIGN LANGUAGES (FDL), 2019,
  • [9] Performance and programmability of GrPPI for parallel stream processing on multi-cores
    Garcia, Adriano Marques
    Griebler, Dalvan
    Schepke, Claudio
    Garcia, Jose Daniel
    Munoz, Javier Fernandez
    Fernandes, Luiz Gustavo
    [J]. JOURNAL OF SUPERCOMPUTING, 2024, 80 (09): : 12966 - 13000
  • [10] PARALLEL ADVANCED VIDEO CODING: MOTION ESTIMATION ON MULTI-CORES
    Momcilovic, Svetislav
    Sousa, Leonel
    [J]. SCALABLE COMPUTING-PRACTICE AND EXPERIENCE, 2008, 9 (03): : 207 - 218