Multi-threaded code generation from Signal program to OpenMP

被引:11
|
作者
Hu, Kai [1 ]
Zhang, Teng [2 ]
Yang, Zhibin [2 ,3 ]
机构
[1] Beihang Univ, State Key Lab Software Dev Environm, Beijing 100191, Peoples R China
[2] Beihang Univ, Sch Comp Sci & Engn, Beijing 100191, Peoples R China
[3] Univ Toulouse, IRIT CNRS, F-31062 Toulouse, France
基金
中国国家自然科学基金;
关键词
multi-thread; synchronous language; Signal; code generation; OpenMP; SYNCHRONOUS LANGUAGES; SYSTEMS; DESIGN;
D O I
10.1007/s11704-013-3906-4
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
The use of multi-core processors will become a trend in safety critical systems. For safe execution of multithreaded code, automatic code generation from formal specification is a desirable method. Signal, a synchronous language dedicated for the functional description of safety critical systems, provides soundness semantics for deterministic concurrency. Although sequential code generation of Signal has been implemented in Polychrony compiler, deterministic multi-threaded code generation strategy is still far from mature. Moreover, existing code generation methods use certain multi-thread library, which limits the cross platform executions. OpenMP is an application program interface (API) standard for parallel programming, supported by several mainstream compilers from different platforms. This paper presents a methodology translating Signal program to OpenMP-based multi-threaded C code. First, the intermediate representation of the core syntax of Signal using synchronous guarded actions is defined. Then, according to the compositional semantics of Signal equations, the Signal program is synthesized to dependency graph (DG). After parallel tasks are extracted from dependency graph, the Signal program can be finally translated into OpenMP-based C code which can be executed on multiple platforms.
引用
收藏
页码:617 / 626
页数:10
相关论文
共 50 条
  • [21] Multi-Threaded Actors
    Azadbakht, Keyvan
    de Boer, Frank S.
    Serbanescu, Vlad
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2016, (223): : 51 - 66
  • [22] On multi-threaded paging
    Feuerstein, E
    de Loma, AS
    [J]. ALGORITHMS AND COMPUTATION, 1996, 1178 : 417 - 426
  • [23] ANALYSIS OF MULTI-THREADED CODE EXECUTION ON SMALL MULTI-CORE ARCHITECTURES
    Sgroi, Kevin J.
    Spetka, Scott E.
    [J]. PROCEEDINGS OF THE ASME INTERNATIONAL DESIGN ENGINEERING TECHNICAL CONFERENCES AND COMPUTERS AND INFORMATION IN ENGINEERING CONFERENCE, DETC 2010, VOL 3, A AND B, 2010, : 807 - 814
  • [24] Efficient Memory Arbitration in High-Level Synthesis From Multi-Threaded Code
    Cheng, Jianyi
    Fleming, Shane T.
    Chen, Yu Ting
    Anderson, Jason
    Wickerson, John
    Constantinides, George A.
    [J]. IEEE TRANSACTIONS ON COMPUTERS, 2022, 71 (04) : 933 - 946
  • [25] Dynamically Translating Binary Code for Multi-Threaded Programs Using Shared Code Cache
    Chia-Lun Liu
    Jiunn-Yeu Chen
    Wuu Yang
    Wei-Chung Hsu
    [J]. Journal of Electronic Science and Technology, 2014, 12 (04) : 434 - 438
  • [26] Design of X-Window program in multi-threaded environment
    Xu, Haogang
    He, Xing
    Zhang, Wenyuan
    [J]. Jisuanji Gongcheng/Computer Engineering, 2000, 26 (01): : 56 - 57
  • [27] Implementation of multi-threaded servlets for multiple choice quiz generation
    Zakis, JD
    Lee, J
    [J]. 3RD BALTIC REGION SEMINAR ON ENGINEERING EDUCATION, SEMINAR PROCEEDINGS, 1999, : 59 - 63
  • [28] BinCFP: Efficient Multi-threaded Binary Code Control Flow Profiling
    Ming, Jiang
    Wu, Dinghao
    [J]. 2016 IEEE 16TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2016, : 61 - 66
  • [29] From Global to Local Quiescence: Wait-Free Code Patching of Multi-Threaded Processes
    Rommel, Florian
    Dietrich, Christian
    Friesel, Daniel
    Koeppen, Marcel
    Borchert, Christoph
    Mueller, Michael
    Spinczyk, Olaf
    Lohmann, Daniel
    [J]. PROCEEDINGS OF THE 14TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION (OSDI '20), 2020, : 651 - 666
  • [30] Multi-Threaded Graph Partitioning
    LaSalle, Dominique
    Karypis, George
    [J]. IEEE 27TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM (IPDPS 2013), 2013, : 225 - 236