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 条
  • [31] A multi-threaded asynchronous language
    Paulino, H
    Marques, P
    Lopes, L
    Vasconcelos, V
    Silva, F
    [J]. PARALLEL COMPUTING TECHNOLOGIES, PROCEEDINGS, 2003, 2763 : 316 - 323
  • [32] A multi-threaded version of MCFM
    John M. Campbell
    R. Keith Ellis
    Walter T. Giele
    [J]. The European Physical Journal C, 2015, 75
  • [33] Multi-threaded Active Objects
    Henrio, Ludovic
    Huet, Fabrice
    Istvan, Zsolt
    [J]. COORDINATION MODELS AND LANGUAGES, COORDINATION 2013, 2013, 7890 : 90 - 104
  • [34] A multi-threaded version of MCFM
    Campbell, John M.
    Ellis, R. Keith
    Giele, Walter T.
    [J]. EUROPEAN PHYSICAL JOURNAL C, 2015, 75 (06):
  • [35] Toward a multi-threaded glish
    Schiebel, DR
    [J]. ASTRONOMICAL DATA ANALYSIS SOFTWARE AND SYSTEMS XI, 2002, 281 : 164 - 168
  • [36] Multi-threaded Object Streaming
    Di Guida, Salvatore
    Govi, Giacomo
    Ojeda, Miguel
    Pfeiffer, Andreas
    Sipos, Roland
    [J]. 21ST INTERNATIONAL CONFERENCE ON COMPUTING IN HIGH ENERGY AND NUCLEAR PHYSICS (CHEP2015), PARTS 1-9, 2015, 664
  • [37] A Generic Platform for Estimation of Multi-threaded Program Performance on Heterogeneous Multiprocessors
    Sahu, Aryabartta
    Balakrishnan, M.
    Panda, Preeti Ranjan
    [J]. DATE: 2009 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION, VOLS 1-3, 2009, : 1018 - 1023
  • [38] APECS Code Synthesis: Extending Ocarina for Multi-threaded Code Synthesis from AADL Models for Safety Critical Applications
    Anderson, Matthew
    Shukla, Sandeep K.
    [J]. 2014 IEEE 11TH INTERNATIONAL CONFERENCE ON NETWORKING, SENSING AND CONTROL (ICNSC), 2014, : 36 - 41
  • [39] Satisfiability Modulo Ordering Consistency Theory for Multi-threaded Program Verification
    He, Fei
    Sun, Zhihang
    Fan, Hongyu
    [J]. PROCEEDINGS OF THE 42ND ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '21), 2021, : 1264 - 1279
  • [40] Multi-threaded On-the-Fly Model Generation of Malware with Hash Compaction
    Nguyen Minh Hai
    Quan Thanh Tho
    Le Duc Anh
    [J]. FORMAL METHODS AND SOFTWARE ENGINEERING, ICFEM 2016, 2016, 10009 : 159 - 174