A Functional Safety OpenMP ^* for Critical Real-Time Embedded Systems

OpenMP* has recently gained attention in the embedded domain by virtue of the augmentations implemented in the last specification. Yet, the language has a minimal impact in the embedded real-time domain mostly due to the lack of reliability and resiliency mechanisms. As a result, functional safety properties cannot be guaranteed. This paper analyses in detail the latest specification to determine whether and how the compliant OpenMP implementations can guarantee functional safety. Given the conclusions drawn from the analysis, the paper describes a set of modifications to the specification, and a set of requirements for compiler and runtime systems to qualify for safety critical environments. Through the proposed solution, OpenMP can be used in critical real-time embedded systems without compromising functional safety.

[1]  Giorgio C. Buttazzo,et al.  A static scheduling approach to enable safety-critical OpenMP applications , 2017, 2017 22nd Asia and South Pacific Design Automation Conference (ASP-DAC).

[2]  Mitsuhisa Sato,et al.  Evaluation of Multicore Processors for Embedded Systems by Parallel Benchmark Program Using OpenMP , 2009, IWOMP.

[3]  Alejandro Duran,et al.  Compiler Automatic Discovery of OmpSs Task Dependencies , 2012, LCPC.

[4]  David Gay,et al.  Effective static deadlock detection , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[5]  Andrew J. Kornecki,et al.  Criteria for Software Tools Evaluation in the Development of Safety-Critical Real-Time Systems , 2004 .

[6]  Eduardo Quiñones,et al.  Response-time analysis of DAG tasks under fixed priority scheduling with limited preemptions , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[7]  K Lakshmanan,et al.  Scheduling Parallel Real-Time Tasks on Multi-core Processors , 2010, 2010 31st IEEE Real-Time Systems Symposium.

[8]  Barton P. Miller,et al.  What are race conditions?: Some issues and formalizations , 1992, LOPL.

[9]  Bronis R. de Supinski,et al.  A ROSE-Based OpenMP 3.0 Research Compiler Supporting Multiple Runtime Libraries , 2010, IWOMP.

[10]  Daniel Kroening,et al.  Sound static deadlock analysis for C/Pthreads , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[11]  Nasser Giacaman,et al.  Exception Handling with OpenMP in Object-Oriented Languages , 2015, IWOMP.

[12]  Eduardo Quiñones,et al.  OpenMP and timing predictability: A possible union? , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[13]  Alejandro Duran,et al.  Towards an Error Model for OpenMP , 2010, IWOMP.

[14]  Patrice Quinton,et al.  ompVerify: Polyhedral Analysis for the OpenMP Programmer , 2011, IWOMP.

[15]  Benoît Dupont de Dinechin,et al.  Time-critical computing on a single-chip massively parallel processor , 2014, 2014 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[16]  Yuan Lin,et al.  Static Nonconcurrency Analysis of OpenMP Programs , 2005, IWOMP.

[17]  Eduardo Quiñones,et al.  OpenMP Tasking Model for Ada: Safety and Correctness , 2017, Ada-Europe.

[18]  Alejandro Duran,et al.  Auto-scoping for OpenMP Tasks , 2012, IWOMP.

[19]  Sara Royuela,et al.  Compiler analysis for OpenMP tasks correctness , 2015, Conf. Computing Frontiers.

[20]  Zijiang Yang,et al.  Symbolic Analysis of Concurrency Errors in OpenMP Programs , 2013, 2013 42nd International Conference on Parallel Processing.

[21]  Eduardo Quiñones,et al.  Timing characterization of OpenMP4 tasking model , 2015, 2015 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES).

[22]  Luca Benini,et al.  Supporting OpenMP on a multi-cluster embedded MPSoC , 2011, Microprocess. Microsystems.

[23]  Alejandro Duran,et al.  A Proposal for Error Handling in OpenMP , 2005, International Journal of Parallel Programming.

[24]  Informatika Link-Time Optimization , 2010 .

[25]  Christian Terboven,et al.  Classification of Common Errors in OpenMP Applications , 2014, IWOMP.

[26]  Zhiqiang Ma,et al.  A theory of data race detection , 2006, PADTAD '06.

[27]  Claudia Fohry,et al.  Common Mistakes in OpenMP and How to Avoid Them - A Collection of Best Practices , 2005, IWOMP.

[28]  Jens Palsberg,et al.  Sherlock: scalable deadlock detection for concurrent programs , 2014, SIGSOFT FSE.