Skip to main content

A Functional Safety OpenMP\(^{*}\) for Critical Real-Time Embedded Systems

  • Conference paper
  • First Online:
Book cover Scaling OpenMP for Exascale Performance and Portability (IWOMP 2017)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10468))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    The integrity level, also called criticality level, refers to the consequences of the incorrect behavior of a system. These levels are defined in different scales such as the Safety Integrity Level (SIL) for automotive and the Development Assurance Level (DAL) for avionics.

  2. 2.

    Code coverage is a measure used to describe the amount of the source code of a program being executed when a particular test suite runs.

References

  1. P-SOCRATES European Project: Parallel Software Framework for Time-Critical Many-core Systems. http://p-socrates.eu

  2. OpenMP Application Programming Interface (2015). http://www.openmp.org/wp-content/uploads/openmp-4.5.pdf

  3. Banerjee, U., Bliss, B., Ma, Z., Petersen, P.: A theory of data race detection. In: Parallel and Distributed Systems: Testing and Debugging (2006)

    Google Scholar 

  4. Basupalli, V., Yuki, T., Rajopadhye, S., Morvan, A., Derrien, S., Quinton, P., Wonnacott, D.: ompVerify: polyhedral analysis for the OpenMP programmer. In: Chapman, B.M., Gropp, W.D., Kumaran, K., Müller, M.S. (eds.) IWOMP 2011. LNCS, vol. 6665, pp. 37–53. Springer, Heidelberg (2011). doi:10.1007/978-3-642-21487-5_4

    Chapter  Google Scholar 

  5. DO-178C: Software considerations in airborne systems and equipment certification (2011)

    Google Scholar 

  6. Duran, A., Ferrer, R., Costa, J.J., Gonzàlez, M., Martorell, X., Ayguadé, E., Labarta, J.: A proposal for error handling in OpenMP. IJPP 35(4), 393–416 (2007)

    MATH  Google Scholar 

  7. Eslamimehr, M., Palsberg, J.: Sherlock: scalable deadlock detection for concurrent programs. In: SIGSOFT (2014)

    Google Scholar 

  8. Fan, X., Mehrabi, M., Sinnen, O., Giacaman, N.: Exception handling with OpenMP in object-oriented languages. In: Terboven, C., Supinski, B.R., Reble, P., Chapman, B.M., Müller, M.S. (eds.) IWOMP 2015. LNCS, vol. 9342, pp. 115–129. Springer, Cham (2015). doi:10.1007/978-3-319-24595-9_9

    Chapter  Google Scholar 

  9. GNU: Link Time Optimization (2017). https://gcc.gnu.org/onlinedocs/gccint/LTO.html

  10. Hanawa, T., Sato, M., Lee, J., Imada, T., Kimura, H., Boku, T.: Evaluation of multicore processors for embedded systems by parallel benchmark program using OpenMP. In: Müller, M.S., Supinski, B.R., Chapman, B.M. (eds.) IWOMP 2009. LNCS, vol. 5568, pp. 15–27. Springer, Heidelberg (2009). doi:10.1007/978-3-642-02303-3_2

    Chapter  Google Scholar 

  11. Intel® Corporation: Interprocedural Optimization (2017). https://software.intel.com/en-us/node/522666

  12. International Electrotechnical Commission: IEC 61508, Functional Safety of Electrical/Electronic/Programmable Electronic Safety-Related Systems, 2.0nd edn. (2009)

    Google Scholar 

  13. International Organization for Standardization: ISO/DIS 26262. Road Vehicles - Functional Safety (2009)

    Google Scholar 

  14. Kornecki, A.J.: Software Development Tools for Safety-Critical. Real-Time Systems Handbook. Office of Aviation Research and Development, FAA (2007)

    Google Scholar 

  15. Kroening, D., Poetzl, D., Schrammel, P., Wachter, B.: Sound static deadlock analysis for C/Pthreads. In: ASE (2016)

    Google Scholar 

  16. Lakshmanan, K., Kato, S., Rajkumar, R.: Scheduling parallel real-time tasks on multi-core processors. In: RTSS (2010)

    Google Scholar 

  17. Liao, C., Quinlan, D.J., Panas, T., Supinski, B.R.: A ROSE-based OpenMP 3.0 research compiler supporting multiple runtime libraries. In: Sato, M., Hanawa, T., Müller, M.S., Chapman, B.M., Supinski, B.R. (eds.) IWOMP 2010. LNCS, vol. 6132, pp. 15–28. Springer, Heidelberg (2010). doi:10.1007/978-3-642-13217-9_2

    Chapter  Google Scholar 

  18. Lin, Y.: Static nonconcurrency analysis of OpenMP programs. In: Mueller, M.S., Chapman, B.M., Supinski, B.R., Malony, A.D., Voss, M. (eds.) IWOMP-2005. LNCS, vol. 4315, pp. 36–50. Springer, Heidelberg (2008). doi:10.1007/978-3-540-68555-5_4

    Chapter  Google Scholar 

  19. Ma, H., Diersen, S.R., Wang, L., Liao, C., Quinlan, D., Yang, Z.: Symbolic analysis of concurrency errors in OpenMP programs. In: ICPP (2013)

    Google Scholar 

  20. Marongiu, A., Burgio, P., Benini, L.: Supporting OpenMP on a multi-cluster embedded MPSoC. Microprocess. Microsyst. 35(8), 668–682 (2011)

    Article  Google Scholar 

  21. Melani, A., Serrano, M.A., Bertogna, M., Cerutti, I., Quinones, E., Buttazzo, G.: A static scheduling approach to enable safety-critical OpenMP applications. In: ASP-DAC (2017)

    Google Scholar 

  22. Münchhalfen, J.F., Hilbrich, T., Protze, J., Terboven, C., Müller, M.S.: Classification of common errors in OpenMP applications. In: DeRose, L., Supinski, B.R., Olivier, S.L., Chapman, B.M., Müller, M.S. (eds.) IWOMP 2014. LNCS, vol. 8766, pp. 58–72. Springer, Cham (2014). doi:10.1007/978-3-319-11454-5_5

    Google Scholar 

  23. Naik, M., Park, C.S., Sen, K., Gay, D.: Effective static deadlock detection. In: ICSE (2009)

    Google Scholar 

  24. Netzer, R.H., Miller, B.P.: What are race conditions? Some issues and formalizations. LOPLAS 1(1), 74–88 (1992)

    Article  Google Scholar 

  25. Royuela, S., Duran, A., Liao, C., Quinlan, D.J.: Auto-scoping for OpenMP tasks. In: Chapman, B.M., Massaioli, F., Müller, M.S., Rorro, M. (eds.) IWOMP 2012. LNCS, vol. 7312, pp. 29–43. Springer, Heidelberg (2012). doi:10.1007/978-3-642-30961-8_3

    Chapter  Google Scholar 

  26. Royuela, S., Duran, A., Martorell, X.: Compiler automatic discovery of OmpSs task dependencies. In: Kasahara, H., Kimura, K. (eds.) LCPC 2012. LNCS, vol. 7760, pp. 234–248. Springer, Heidelberg (2013). doi:10.1007/978-3-642-37658-0_16

    Chapter  Google Scholar 

  27. Royuela, S., Ferrer, R., Caballero, D., Martorell, X.: Compiler analysis for OpenMP tasks correctness. In: International Conference on Computing Frontiers (2015)

    Google Scholar 

  28. Royuela, S., Martorell, X., Quinones, E., Pinho, L.M.: OpenMP tasking model for ADA: safety and correctness. In: AE (2017)

    Google Scholar 

  29. Serrano, M.A., Melani, A., Bertogna, M., Quinones, E.: Response-time analysis of DAG tasks under fixed priority scheduling with limited preemptions. In: DATE (2016)

    Google Scholar 

  30. Serrano, M.A., Melani, A., Vargas, R., Marongiu, A., Bertogna, M., Quinones, E.: Timing characterization of OpenMP4 tasking model. In: CASES (2015)

    Google Scholar 

  31. Süß, M., Leopold, C.: Common mistakes in OpenMP and how to avoid them. In: OpenMP Shared Memory Parallel Programming (2008)

    Google Scholar 

  32. Vargas, R., Quinones, E., Marongiu, A.: OpenMP and timing predictability: a possible union? In: DATE (2015)

    Google Scholar 

  33. Wong, M., Klemm, M., Duran, A., Mattson, T., Haab, G., Supinski, B.R., Churbanov, A.: Towards an error model for OpenMP. In: Sato, M., Hanawa, T., Müller, M.S., Chapman, B.M., Supinski, B.R. (eds.) IWOMP 2010. LNCS, vol. 6132, pp. 70–82. Springer, Heidelberg (2010). doi:10.1007/978-3-642-13217-9_6

    Chapter  Google Scholar 

Download references

Acknowledgments

This work was funded by the EU project P-SOCRATES (FP7-ICT-2013- 10) and the Spanish Ministry of Science and Innovation under contract TIN2015-65316-P.

Disclaimers

Intel is a trademark or registered trademark of Intel Corporation or its subsidiaries in the United States and/or other countries.

*Other brands and names are the property of their respective owners.

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Sara Royuela , Alejandro Duran , Maria A. Serrano , Eduardo Quiñones or Xavier Martorell .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Royuela, S., Duran, A., Serrano, M.A., Quiñones, E., Martorell, X. (2017). A Functional Safety OpenMP\(^{*}\) for Critical Real-Time Embedded Systems. In: de Supinski, B., Olivier, S., Terboven, C., Chapman, B., Müller, M. (eds) Scaling OpenMP for Exascale Performance and Portability. IWOMP 2017. Lecture Notes in Computer Science(), vol 10468. Springer, Cham. https://doi.org/10.1007/978-3-319-65578-9_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-65578-9_16

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-65577-2

  • Online ISBN: 978-3-319-65578-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics