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
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2023年 / 45卷 / 02期
关键词
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 条
  • [31] Memory Utilization-Based Dynamic Bandwidth Regulation for Temporal Isolation in Multi-Cores
    Saeed, Ahsan
    Dasari, Dakshina
    Ziegenbein, Dirk
    Rajasekaran, Varun
    Rehm, Falk
    Pressler, Michael
    Hamann, Arne
    Mueller-Gritschneder, Daniel
    Gerstlauer, Andreas
    Schlichtmann, Ulf
    2022 IEEE 28TH REAL-TIME AND EMBEDDED TECHNOLOGY AND APPLICATIONS SYMPOSIUM (RTAS), 2022, : 133 - 145
  • [32] All-Digital Control-Theoretic Scheme to Optimize Energy Budget and Allocation in Multi-Cores
    Zoni, Davide
    Cremona, Luca
    Fornaciari, William
    IEEE TRANSACTIONS ON COMPUTERS, 2020, 69 (05) : 706 - 721
  • [33] A memory-bounded, deterministic and terminating semantics for the synchronous programming language CEU
    Lima, Guilherme F.
    Santos, Rodrigo C. M.
    Ierusalimschy, Roberto
    Haeusler, Edward H.
    Sant'Anna, Francisco
    JOURNAL OF SYSTEMS ARCHITECTURE, 2019, 97 : 239 - 257
  • [34] A Memory-Bounded, Deterministic and Terminating Semantics for the Synchronous Programming Language CEU
    Santos, Rodrigo C. M.
    Lima, Guilherme F.
    Sant'Anna, Francisco
    Ierusalimschy, Roberto
    Haeusler, Edward H.
    ACM SIGPLAN NOTICES, 2018, 53 (06) : 1 - 18
  • [35] DarkCache: Energy-Performance Optimization of Tiled Multi-Cores by Adaptively Power-Gating LLC Banks
    Zoni, Davide
    Colombo, Luca
    Fornaciari, William
    ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2018, 15 (02)
  • [36] Energy Reduction Through Memory Aware Real-Time Scheduling on Virtual Machine in Multi-Cores Server
    Alqudah, Mohammad A.
    Ahmed, Iqra
    Ahmad, Fahad
    Naseem, Shahid
    Nisar, Kottakkaran Sooppy
    IEEE ACCESS, 2021, 9 : 55436 - 55447
  • [37] A Markup Language for Parallel Programming Model on Multi-Core System
    Zhang Yingqian
    Sun Bin
    Liu Jia
    2009 INTERNATIONAL CONFERENCE ON SCALABLE COMPUTING AND COMMUNICATIONS & EIGHTH INTERNATIONAL CONFERENCE ON EMBEDDED COMPUTING, 2009, : 640 - +
  • [38] An object-oriented bulk synchronous parallel library for multicore programming
    Yzelman, A. N.
    Bisseling, Rob H.
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2012, 24 (05) : 533 - 553
  • [39] Dynamic Triple Modular Redundancy in Interleaved Hardware Threads: An Alternative Solution to Lockstep Multi-Cores for Fault-Tolerant Systems
    Barbirotta, Marcello
    Menichelli, Francesco
    Cheikh, Abdallah
    Mastrandrea, Antonio
    Angioli, Marco
    Olivieri, Mauro
    IEEE ACCESS, 2024, 12 : 95720 - 95735
  • [40] Use of parallel deterministic dynamic programming and hierarchical adaptive genetic algorithm for reservoir operation optimization
    Zhang, Zhongbo
    Zhang, Shuanghu
    Wang, Yuhui
    Jiang, Yunzhong
    Wang, Hao
    COMPUTERS & INDUSTRIAL ENGINEERING, 2013, 65 (02) : 310 - 321