Programming and Timing Analysis of Parallel Programs on Multicores

Multicore processors provide better power-performance trade-offs compared to single-core processors. Consequently, they are rapidly penetrating market segments which are both safety critical and hard real-time in nature. However, designing time-predictable embedded applications over multicores remains a considerable challenge. This paper proposes the ForeC language for the deterministic parallel programming of embedded applications on multicores. ForeC extends C with a minimal set of constructs adopted from synchronous languages. To guarantee the worst-case performance of ForeC programs, we offer a very precise reachability-based timing analyzer. To the best of our knowledge, this is the first attempt at the efficient and deterministic parallel programming of multicores using a synchronous C-variant. Experimentation with large multicore programs revealed an average over-estimation of only 2% for the computed worst-case execution times (WCETs). By reducing our representation of the program's state-space, we reduced the analysis time for the largest program (with 43, 695 reachable states) by a factor of 342, to only 7 seconds.

[1]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[2]  Samarjit Chakraborty,et al.  Timing analysis of esterel programs on general-purpose multiprocessors , 2010, Design Automation Conference.

[3]  Riccardo Mariani,et al.  Towards functional-safe timing-dependable real-time architectures , 2011, 2011 IEEE 17th International On-Line Testing Symposium.

[4]  Marian Boldt,et al.  Worst Case Reaction Time Analysis of Concurrent Reactive Programs , 2008, Electron. Notes Theor. Comput. Sci..

[5]  A. Girault A Survey of Automatic Distribution Method for Synchronous Programs , 2005 .

[6]  Barbara M. Chapman,et al.  OpenMP , 2005, Parallel Comput..

[7]  Samarjit Chakraborty,et al.  Context-sensitive timing analysis of Esterel programs , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[8]  Klaus Schneider,et al.  Multithreaded code from synchronous programs: Extracting independent threads for OpenMP , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[9]  Partha S. Roop,et al.  Tight WCRT analysis of synchronous C programs , 2009, CASES '09.

[10]  Charles E. McDowell,et al.  Debugging concurrent programs , 1989, ACM Comput. Surv..

[11]  Reinhold Heckmann,et al.  Software Structure and WCET Predictability , 2011, PPES.

[12]  Albert Cohen,et al.  A Stream-Comptuting Extension to OpenMP , 2010, IWOMP 2010.

[13]  Martin Schoeberl,et al.  Time-Predictable Computer Architecture , 2009, EURASIP J. Embed. Syst..

[14]  Sebastian Fischmeister,et al.  Semantics-preserving implementation of synchronous specifications over dynamic TDMA distributed architectures , 2010, EMSOFT '10.

[15]  R. Wilhelm,et al.  Predictability Considerations in the Design of Multi-Core Embedded Systems ∗ , 2010 .

[16]  Albert Cohen,et al.  A stream-computing extension to OpenMP , 2011, HiPEAC.

[17]  Reinhard von Hanxleden,et al.  SyncCharts in C: a proposal for light-weight, deterministic concurrency , 2009, EMSOFT '09.

[18]  Partha S. Roop,et al.  Compiling Esterel for Multi-core Execution , 2011, 2011 14th Euromicro Conference on Digital System Design.

[19]  Edward A. Lee The problem with threads , 2006, Computer.

[20]  Roopak Sinha,et al.  Efficient WCRT analysis of synchronous programs using reachability , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[21]  Gerard J. Holzmann,et al.  The power of 10: rules for developing safety-critical code , 2006, Computer.

[22]  Heonshik Shin,et al.  Scratchpad memory management for portable systems with a memory management unit , 2006, EMSOFT '06.

[23]  Pascal Sainrat,et al.  PapaBench: a Free Real-Time Benchmark , 2006, WCET.