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 条
  • [1] The ForeC Synchronous Deterministic Parallel Programming Language for Multicores
    Yip, Eugene
    Girault, Alain
    Roop, Partha S.
    Biglari-Abhari, Morteza
    2016 IEEE 10TH INTERNATIONAL SYMPOSIUM ON EMBEDDED MULTICORE/MANY-CORE SYSTEMS-ON-CHIP (MCSOC), 2016, : 297 - 304
  • [2] A Multi-Rate Precision Timed Programming Language for Multi-Cores
    Girault, Alain
    Hili, Nicolas
    Jenn, Eric
    Yip, Eugene
    PROCEEDINGS OF THE 2019 FORUM ON SPECIFICATION AND DESIGN LANGUAGES (FDL), 2019,
  • [3] Grounding Synchronous Deterministic Concurrency in Sequential Programming
    Aguado, Joaquin
    Mendler, Michael
    von Hanxleden, Reinhard
    Fuhrmann, Insa
    PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 8410 : 229 - 248
  • [4] Accelerating Code on Multi-cores with FastFlow
    Aldinucci, Marco
    Danelutto, Marco
    Kilpatrick, Peter
    Meneghin, Massimiliano
    Torquati, Massimo
    EURO-PAR 2011 PARALLEL PROCESSING, PT 2, 2011, 6853 : 170 - 181
  • [5] Making multi-cores mainstream - from security to scalability
    Jesshope, Chris
    Hicks, Michael
    Lankamp, Mike
    Poss, Raphael
    Zhang, Li
    PARALLEL COMPUTING: FROM MULTICORES AND GPU'S TO PETASCALE, 2010, 19 : 16 - 31
  • [6] Assurance Methods for COTS Multi-cores in Avionics
    Jean, Xavier
    Mutuel, Laurence
    Brindejonc, Vincent
    2016 IEEE/AIAA 35TH DIGITAL AVIONICS SYSTEMS CONFERENCE (DASC), 2016,
  • [7] Balanced Dense Polynomial Multiplication on Multi-cores
    Maza, Marc Moreno
    Xie, Yuzhen
    2009 INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED COMPUTING, APPLICATIONS AND TECHNOLOGIES (PDCAT 2009), 2009, : 1 - +
  • [8] BALANCED DENSE POLYNOMIAL MULTIPLICATION ON MULTI-CORES
    Maza, Marc Moreno
    Xie, Yuzhen
    INTERNATIONAL JOURNAL OF FOUNDATIONS OF COMPUTER SCIENCE, 2011, 22 (05) : 1035 - 1055
  • [9] HEVC Video Encoder & Decoder Architecture for Multi-Cores
    Mody, Mihir
    2014 INTERNATIONAL CONFERENCE ON SIGNAL PROCESSING AND COMMUNICATIONS (SPCOM), 2014,
  • [10] Various Freed Multi-Cores RTOS based Linux
    Pu Yiqiao
    Zhou Qingguo
    She Kairui
    Wu Zhangjin
    2008 IEEE INTERNATIONAL SYMPOSIUM ON IT IN MEDICINE AND EDUCATION, VOLS 1 AND 2, PROCEEDINGS, 2008, : 900 - 905