Back to Search Start Over

Multi-threaded code generation from Signal program to OpenMP

Authors :
Kai Hu
Zhibin Yang
Teng Zhang
State key Laboratory of Software Development Environment [Beijing]
Beihang University (BUAA)
Assistance à la Certification d’Applications DIstribuées et Embarquées (IRIT-ACADIE)
Institut de recherche en informatique de Toulouse (IRIT)
Université Toulouse 1 Capitole (UT1)
Université Fédérale Toulouse Midi-Pyrénées-Université Fédérale Toulouse Midi-Pyrénées-Université Toulouse - Jean Jaurès (UT2J)-Université Toulouse III - Paul Sabatier (UT3)
Université Fédérale Toulouse Midi-Pyrénées-Centre National de la Recherche Scientifique (CNRS)-Institut National Polytechnique (Toulouse) (Toulouse INP)
Université Fédérale Toulouse Midi-Pyrénées-Université Toulouse 1 Capitole (UT1)
Université Fédérale Toulouse Midi-Pyrénées
Centre National de la Recherche Scientifique - CNRS (FRANCE)
Institut National Polytechnique de Toulouse - Toulouse INP (FRANCE)
Université Toulouse III - Paul Sabatier - UT3 (FRANCE)
Université Toulouse - Jean Jaurès - UT2J (FRANCE)
Université Toulouse 1 Capitole - UT1 (FRANCE)
Beihang University (CHINA)
Institut de Recherche en Informatique de Toulouse - IRIT (Toulouse, France)
Source :
Frontiers of Computer Science, Frontiers of Computer Science, Springer Verlag, 2013, 7 (5), pp.617-626. ⟨10.1007/s11704-013-3906-4⟩
Publication Year :
2013
Publisher :
Springer Science and Business Media LLC, 2013.

Abstract

International audience; 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.

Details

ISSN :
20952236 and 20952228
Volume :
7
Database :
OpenAIRE
Journal :
Frontiers of Computer Science
Accession number :
edsair.doi.dedup.....21ff1e324ce49e13d26b2061c2a1fdd9
Full Text :
https://doi.org/10.1007/s11704-013-3906-4