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 条
  • [41] A Parallel Dynamic Programming Algorithm on a Multi-core Architecture
    Tan, Guangming
    Sun, Ninghui
    Gao, Guang R.
    SPAA'07: PROCEEDINGS OF THE NINETEENTH ANNUAL SYMPOSIUM ON PARALLELISM IN ALGORITHMS AND ARCHITECTURES, 2007, : 135 - +
  • [42] Dependent Types for Multi-Rate Flows in Synchronous Programming (System Description)
    Blair, William
    Xi, Hongwei
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2017, (241): : 36 - 44
  • [43] Parallel evolution using multi-chromosome cartesian genetic programming
    Walker, James Alfred
    Voelk, Katharina
    Smith, Stephen L.
    Miller, Julian Francis
    GENETIC PROGRAMMING AND EVOLVABLE MACHINES, 2009, 10 (04) : 417 - 445
  • [44] A parallel dynamic programming algorithm for multi-reservoir system optimization
    Li, Xiang
    Wei, Jiahua
    Li, Tiejian
    Wang, Guangqian
    Yeh, William W. -G.
    ADVANCES IN WATER RESOURCES, 2014, 67 : 1 - 15
  • [45] Multi-Machine Traction Drive Based on Parallel Connected Synchronous Machines
    Pirouz, Hassan Mohammadi
    2021 29TH IRANIAN CONFERENCE ON ELECTRICAL ENGINEERING (ICEE), 2021, : 226 - 230
  • [46] Worst-Case Reaction Time Optimization on Deterministic Multi-Core Architectures with Synchronous Languages
    Hili, Nicolas
    Girault, Alain
    Jenn, Eric
    2019 IEEE 25TH INTERNATIONAL CONFERENCE ON EMBEDDED AND REAL-TIME COMPUTING SYSTEMS AND APPLICATIONS (RTCSA 2019), 2019,
  • [47] Comparative analysis of debugging tools in parallel programming for multi-core processors
    Shipunov, Valeriy
    Gavryushenko, Andrey
    Kuznetsov, Eugene
    2007 PROCEEDINGS OF THE 9TH INTERNATIONAL CONFERENCE ON THE EXPERIENCE OF DESIGNING AND APPLICATION OF CAD SYSTEMS IN MICROELECTRONICS, 2007, : 426 - 428
  • [48] Parallel Programming Patterns for Multi-Processor SoC: Application to Video Processing
    Paulin, Pierre G.
    Oezcan, Ali Erdem
    Gagne, Vincent
    Lavigueur, Bruno
    Benny, Olivier
    ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2013, 12
  • [49] Optimizing image processing on multi-core CPUs with Intel parallel programming technologies
    Cheong Ghil Kim
    Jeom Goo Kim
    Do Hyeon Lee
    Multimedia Tools and Applications, 2014, 68 : 237 - 251
  • [50] Parallel Computing of Kernel Density Estimation with Different Multi-core Programming Models
    Michailidis, Panagiotis D.
    Margaritis, Konstantinos G.
    PROCEEDINGS OF THE 2013 21ST EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED, AND NETWORK-BASED PROCESSING, 2013, : 77 - 85