Multithreaded code from synchronous programs: extracting independent threads for OpenMP

  • Authors:
  • Daniel Baudisch;Jens Brandt;Klaus Schneider

  • Affiliations:
  • University of Kaiserslautern, Germany;University of Kaiserslautern, Germany;University of Kaiserslautern, Germany

  • Venue:
  • Proceedings of the Conference on Design, Automation and Test in Europe
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Synchronous languages offer a deterministic model of concurrency at the level of actions. However, essentially all compilers for synchronous languages compile these actions into a single thread by sophisticated methods to guarantee dynamic schedules for the sequential execution of these actions. In this paper, we present the compilation of synchronous programs to multi-threaded OpenMP-based C programs. We thereby start at the level of synchronous guarded actions which is a comfortable intermediate language for synchronous languages. In addition to the explicit parallelism given in the source program, our method also exploits the implicit parallelism which is due to the underlying synchronous model of computation and the data dependencies of the guarded actions. We show how viable tasks can be constructed from the actions of a program and show the feasibility of our approach by a small example.