期刊文献+

Multi-threaded code generation from Signal program to OpenMP 被引量:2

Multi-threaded code generation from Signal program to OpenMP
原文传递
导出
摘要 The use of multi-core processors will become a trend in safety critical systems. For safe execution of multi- threaded code, automatic code generation from formal spec- ification is a desirable method. Signal, a synchronous lan- guage dedicated for the functional description of safety crit- ical systems, provides soundness semantics for determinis- tic concurrency. Although sequential code generation of Sig- nal has been implemented in Polychrony compiler, deter- ministic multi-threaded code generation strategy is still far from mature. Moreover, existing code generation methods use certain multi-thread library, which limits the cross plat- form executions. OpenMP is an application program inter- face (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 intermedi- ate representation of the core syntax of Signal using syn- chronous guarded actions is defined. Then, according to the compositional semantics of Signal equations, the Signal pro- gram is synthesized to dependency graph (DG). After par- allel 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. The use of multi-core processors will become a trend in safety critical systems. For safe execution of multi- threaded code, automatic code generation from formal spec- ification is a desirable method. Signal, a synchronous lan- guage dedicated for the functional description of safety crit- ical systems, provides soundness semantics for determinis- tic concurrency. Although sequential code generation of Sig- nal has been implemented in Polychrony compiler, deter- ministic multi-threaded code generation strategy is still far from mature. Moreover, existing code generation methods use certain multi-thread library, which limits the cross plat- form executions. OpenMP is an application program inter- face (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 intermedi- ate representation of the core syntax of Signal using syn- chronous guarded actions is defined. Then, according to the compositional semantics of Signal equations, the Signal pro- gram is synthesized to dependency graph (DG). After par- allel 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.
出处 《Frontiers of Computer Science》 SCIE EI CSCD 2013年第5期617-626,共10页 中国计算机科学前沿(英文版)
关键词 MULTI-THREAD synchronous language Signal code generation OPENMP multi-thread, synchronous language, Signal,code generation, OpenMP
  • 相关文献

参考文献26

  • 1IEEE POSIX standardization authority, http://standards.ieee.org/regauth/ posix/.
  • 2Microsoft windows threads, http://msdn.microsoft.com/.
  • 3MPI: A message-passing interface standard version 3.0. http://www.mpi-forum.org/docs/mpi-3.0/mpi30-report.pdf.
  • 4The OpenMP API specification for parallel programming. http://openmp.org/wp/.
  • 5lntel thread building blocks, http://www.threadingbuildingblocks.org/.
  • 6Lee E A. The problem with threads. Computer, 2006, 39(5): 33-42.
  • 7Benveniste A, Berry G. The synchronous approach to reactive and real- time systems. Proceedings of the IEEE, 1991, 79(9): 1270-1282.
  • 8Benveniste A, Caspi E Edwards S A, Halbwachs N, Le Guernic P, De Simone R. The synchronous languages 12 years later. Proceedings of the IEEE, 2003, 91(1): 64-83.
  • 9Berry G, Gonthier G. The esterel synchronous programming language: design, semantics, implementation. Science of Computer Program- ming, 1992, 19(2): 87-152.
  • 10Halbwachs N, Caspi P, Raymond P, Pilaud D. The synchronous data flow programming language lustre. Proceedings of the IEEE, 1991, 79(9): 1305-1320.

同被引文献2

引证文献2

二级引证文献7

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部