paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC

面向多核的 ForeC 同步确定性并行编程
TOPLAS 45(2)2023匹配度 1/10 · 该论文研究面向嵌入式多核的同步确定性并行语言 ForeC,重点在并发语言设计、编译与静态时序分析,与用户关注的 PL 与 AI/LLM 交叉、浮点程序分析及贝叶斯程序分析均无直接关联。引用 3 inbox
Eugene Yip, Alain Girault, Partha S. Roop, Morteza Biglari-Abhari
crossref: 2026-09-10

AI 速览

一句话:提出同步多线程语言 ForeC,用共享变量语义实现多核嵌入式程序的确定性并行、无死锁与静态时序分析。

嵌入式实时系统与物理环境紧密耦合,其正确性同时依赖输出结果与计算时限。多核普及使嵌入式程序员必须应对并行编程,但并行程序难以理解、调试且易出错。本文提出 ForeC 同步多线程语言,面向嵌入式多核的确定性、并行与反应式编程。ForeC 的同步语义简化并行程序理解与调试,其核心创新是共享变量语义,提供线程隔离与确定性线程通信;无需非确定性构造,程序构造即正确且无死锁。ForeC 可高效编译并行执行,并支持静态时序分析。作者用中等规模基准评估,显示其并行性能优于 Esterel,与 OpenMP 有竞争力,且最坏执行时间可高精度估计。

问题
嵌入式实时多核系统需要并行编程,但传统并行模型难以避免非确定性、死锁,并难以保证可调试性与时限。
方法
提出 ForeC 同步多线程语言及其编译器,以同步语义和共享变量语义实现线程隔离、确定性通信、无死锁,并支持并行代码生成和静态 WCET 分析。
评估
用多个中等规模 ForeC 程序在多核上基准测试,与 Esterel 和 OpenMP 比较并行性能,并评估最坏执行时间估计精度。
原文摘要(Abstract)

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.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2132,
  title = {Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC},
  author = {Eugene Yip and Alain Girault and Partha S. Roop and Morteza Biglari-Abhari},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {45},
  number = {2},
  year = {2023},
  doi = {10.1145/3591594}
}