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 条
  • [1] Multi-threaded code generation from Signal program to OpenMP
    Kai Hu
    Teng Zhang
    Zhibin Yang
    [J]. Frontiers of Computer Science, 2013, 7 : 617 - 626
  • [2] Multi-threaded code generation from Signal program to OpenMP
    Kai HU
    Teng ZHANG
    Zhibin YANG
    [J]. Frontiers of Computer Science., 2013, 7 (05) - 626
  • [3] On multi-threaded satisfiability solving with OpenMP
    Vander-Swalmen, Pascal
    Dequen, Gilles
    Krajecki, Michael
    [J]. OPENMP IN A NEW ERA OF PARALLELISM, PROCEEDINGS, 2008, 5004 : 146 - 157
  • [4] Multi-threaded Code Generation Tool for Synchronous Language
    Yang, Zhi-Bin
    Yuan, Sheng-Hao
    Xie, Jian
    Zhou, Yong
    Chen, Zhe
    Xue, Lei
    Bodevix, Jean-Paul
    Filali, Mamoun
    [J]. Ruan Jian Xue Bao/Journal of Software, 2019, 30 (07): : 1980 - 2002
  • [5] Multi-Threaded Circuit Simulation using OpenMP
    Zwolinski, Mark
    [J]. 2010 FIRST IEEE LATIN AMERICAN SYMPOSIUM ON CIRCUITS AND SYSTEMS (LASCAS), 2010, : 188 - 191
  • [6] CODE GENERATION FOR MULTI-THREADED ARCHITECTURES FROM DATA-FLOW GRAPHS
    MURER, S
    FARBER, P
    [J]. IFIP TRANSACTIONS A-COMPUTER SCIENCE AND TECHNOLOGY, 1993, 23 : 77 - 90
  • [7] Multi-Threaded Parallel I/O for OpenMP Applications
    Kshitij Mehta
    Edgar Gabriel
    [J]. International Journal of Parallel Programming, 2015, 43 : 286 - 309
  • [8] Multi-Threaded Parallel I/O for OpenMP Applications
    Mehta, Kshitij
    Gabriel, Edgar
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2015, 43 (02) : 286 - 309
  • [9] Generating Multi-Threaded code from Polychronous Specifications
    Jose, Bijoy A.
    Patel, HirenD.
    Shukla, Sandeep K.
    Talpin, Jean-Pierre
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2009, 238 (01) : 57 - 69
  • [10] Multi-threaded Construction of Neighbour Lists for Particle Systems in OpenMP
    Halver, Rene
    Sutmann, Godehard
    [J]. PARALLEL PROCESSING AND APPLIED MATHEMATICS, PPAM 2015, PT II, 2016, 9574 : 153 - 165