Towards an Error Model for OpenMP

  • Michael Wong
  • Michael Klemm
  • Alejandro Duran
  • Tim Mattson
  • Grant Haab
  • Bronis R. de Supinski
  • Andrey Churbanov
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6132)


OpenMP lacks essential features for developing mission-critical software. In particular, it has no support for detecting and handling errors or even a concept of them. In this paper, the OpenMP Error Model Subcommittee reports on solutions under consideration for this major omission. We identify issues with the current OpenMP specification and propose a path to extend OpenMP with error-handling capabilities. We add a construct that cleanly shuts down parallel regions as a first step. We then discuss two orthogonal proposals that extend OpenMP with features to handle system-level and user-defined errors.


Transactional Memory Exception Handling Error Code Parallel Region Error Handling 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Compaq Computer Corporation. Compaq Fortran – Language Reference Manual (September 1999); Order number AA-Q66SD-TKGoogle Scholar
  2. 2.
    Danaher, J.S., Angelina Lee, I.-T., Leiserson, C.E.: Programming with Exceptions in JCilk. Science of Computer Programming 63(2), 147–171 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Duran, A., Ferrer, R., Costa, J.J., Gonzàlez, M., Martorell, X., Ayguadé, E., Labarta, J.: A Proposal for Error Handling in OpenMP. Intl. Journal of Parallel Programming 35(4), 393–416 (2007)zbMATHCrossRefGoogle Scholar
  4. 4.
    Becker, P. (ed.): Working Draft: Standard for Programming Language C++ (November 2009); Document number N3000Google Scholar
  5. 5.
    Sutter, H.: Interrupt Politely. Technical report (April 2008)Google Scholar
  6. 6.
    IEEE. Threads Extension for Portable Operating Systems (Draft 6) (February 1992); Document P1003.4a/D6Google Scholar
  7. 7.
    Intel Corporation. Intel Threading Building Blocks Reference Manual. Technical report, Document number 315415-003US (July 2009)Google Scholar
  8. 8.
    Issarny, V.: An Exception Handling Model for Parallel Programming and its Verification. In: Proc. of the Conf. on Software for Citical Systems, New Orleans, LA, USA, December 1991, pp. 92–100 (1991)Google Scholar
  9. 9.
    Klemm, M., Veldema, R., Bezold, M., Philippsen, M.: A Proposal for OpenMP for Java. In: Proc. of the Intl. Workshop on OpenMP, Reims, France (June 2006)Google Scholar
  10. 10.
    Larus, J.R., Rajwar, R.: Transactional Memory (Synthesis Lectures on Computer Architecture). Morgan & Claypool Publishers, San Francisco (January 2007)Google Scholar
  11. 11.
    Milovanović, M., Ferrer, R., Unsal, O., Cristal, A., Martorell, X., Ayguadé, E., Labarta, J., Valero, M.: Transactional Memory and OpenMP. In: Chapman, B., Zheng, W., Gao, G.R., Sato, M., Ayguadé, E., Wang, D. (eds.) IWOMP 2007. LNCS, vol. 4935, pp. 37–53. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  12. 12.
    Forum, M.P.I.: MPI: Extensions to the Message-passing Interface, Version 2.2. Technical report, MPI Forum (September 2009)Google Scholar
  13. 13.
    Oaks, S., Wong, H.: Java Threads, 3rd edn. O’Reilly, Sebastopol (2004)Google Scholar
  14. 14.
    OpenMP ARB. OpenMP Application Program Interface, v. 3.0 (May 2008)Google Scholar
  15. 15.
    Süß, M., Leopold, C.: Implementing irregular parallel algorithms with openMP. In: Nagel, W.E., Walter, W.V., Lehner, W. (eds.) Euro-Par 2006. LNCS, vol. 4128, pp. 635–644. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  16. 16.
    Sommerville, I.: Software Engineering, 8th edn. Pearson Education, Ltd., Harlow (April 2007)Google Scholar
  17. 17.
    Stoughton, N.: POSIX Liaison Report, Document number N2536 (February 2008)Google Scholar
  18. 18.
    Tazuneki, S., Yoshida, T.: Concurrent Exception Handling in a Distributed Object-Oriented Computing Environment. In: Proc. of the 7th Intl. Conf. on Parallel and Distributed Systems Workshops, Iwate, Japan, July 2000, pp. 75–82 (2000)Google Scholar
  19. 19.
    The Open Group. The Open Group Base Specifications Issue 7 (December 2008); IEEE Std 1003.1-2008 and POSIX.1Google Scholar
  20. 20.
    Xu, J., Romanovsky, A., Randell, B.: Concurrent Exception Handling and Resolution in Distributed Object Systems. IEEE Transactions on Parallel and Distributed Systems 11(10), 1019–1032 (2000)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Michael Wong
    • 1
  • Michael Klemm
    • 2
  • Alejandro Duran
    • 3
  • Tim Mattson
    • 2
  • Grant Haab
    • 2
  • Bronis R. de Supinski
    • 4
  • Andrey Churbanov
    • 2
  1. 1.IBM Corporation 
  2. 2.Intel Corporation 
  3. 3.Barcelona Supercomputing Center 
  4. 4.Lawrence Livermore National Laboratory 

Personalised recommendations