Skip to main content

Extending MUST to Check Hybrid-Parallel Programs for Correctness Using the OpenMP Tools Interface

  • Conference paper
  • First Online:

Abstract

Current High Performance Computing (HPC) systems consist of compute nodes that can communicate via an interconnect. Each compute node features multiple compute cores that can access shared-memory. The Message Passing Interface (MPI) is the de-facto standard for the programming of distributed memory applications. At the same time, OpenMP is a well-suited parallel programming paradigm to utilize the parallel cores within a compute node. Thus, current HPC systems encourage a hybrid programming approach that combines MPI with OpenMP. However, using both programming paradigms at the same time can lead to more error-prone applications. The runtime correctness checking tool MUST supports programmers in the detection and removal of MPI-specific programming defects. We present an extension of MUST towards the analysis of OpenMP-MPI parallel applications in order to support programmers that combine both paradigms. This includes thread-safety concerns in MUST itself, an extended event model based on the upcoming OpenMP Tools Interface (OMPT), as well as a prototypical error analysis with a synthetic example. We further discuss classes of defects that are specific to OpenMP applications and highlight techniques for their detection.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   109.99
Price excludes VAT (USA)
  • Durable hardcover 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

Learn about institutional subscriptions

Notes

  1. 1.

    http://www.nongnu.org/libunwind.

  2. 2.

    http://openmp.llvm.org.

References

  1. Cramer, T., Dietrich, R., Terboven, C., Müller, M.S., Nagel, W.E.: Performance analysis for target devices with the OpenMP tools interface. In: IEEE International Parallel and Distributed Processing Symposium Workshop (IPDPSW), pp. 215–224. IEEE (2015)

    Google Scholar 

  2. Eichenberger, A.E., Mellor-Crummey, J.M., Schulz, M., Wong, M., Copty, N., Dietrich, R., Liu, X., Loh, E., Lorenz, D.: OMPT: an OpenMP tools application programming interface for performance analysis. In: Rendell, A.P., Chapman, B.M., Müller, M.S. (eds.) IWOMP. Lecture Notes in Computer Science, vol. 8122, pp. 171–185. Springer, New York (2013)

    Google Scholar 

  3. Eichenberger, A.E., Mellor-Crummey, J., Schulz, M., Copty, N., Cownie, J., Cramer, T., Dietrich, R., Liu, X., Loh, E., Lorenz, D.: OMPT: an OpenMP tools application programming interface for performance analysis. Revised OpenMP Technical Report 2 (2015). https://github.com/OpenMPToolsInterface/OMPT-Technical-Report

  4. Hilbrich, T., Schulz, M., de Supinski, B.R., Müller, M.S.: MUST: A Scalable Approach to Runtime Error Detection in MPI Programs. In: Müller, M.S., Resch, M.M., Schulz, A., Nagel, W.E. (eds.) Tools for High Performance Computing: Proceedings of the 2nd International Workshop on Parallel Tools for High Performance Computing. ZIH, Springer Publishing Company, Incorporated (2009)

    Google Scholar 

  5. Hilbrich, T., Müller, M.S., de Supinski, B.R., Schulz, M., Nagel, W.E.: GTI: a generic tools infrastructure for event-based tools in parallel systems. In: Proceedings of the IEEE 26th International Parallel and Distributed Processing Symposium, IPDPS’12, pp. 1364–1375. IEEE Computer Society, Washington, DC, USA (2012)

    Google Scholar 

  6. Humphrey, W.S.: Bugs or Defects? http://www.uqac.ca/flemieux/PRO102/watts-mar99.pdf (1999), 10 October 2015

  7. Liu, X., Mellor-Crummey, J., Fagan, M.: A new approach for performance analysis of OpenMP programs. In: Proceedings of the 27th International ACM Conference on International Conference on Supercomputing, ICS’13, pp. 69–80. ACM, New York, USA (2013)

    Google Scholar 

  8. Lorenz, D., Dietrich, R., Tschüter, R., Wolf, F.: A comparison between OPARI2 and the OpenMP tools interface in the context of Score-P. In: DeRose, L., de Supinski, B.R., Olivier, S., Chapman, B., Müller, M. (eds.) Using and Improving OpenMP for Devices, Tasks, and More. Lecture Notes in Computer Science, vol. 8766, pp. 161–172. Springer International Publishing, Cham (2014)

    Google Scholar 

  9. MPI Forum: MPI: A Message-Passing Interface Standard, Version 3.0 (2012)

    Google Scholar 

  10. Münchhalfen, J.F., Hilbrich, T., Protze, J., Terboven, C., Müller, M.S.: Classification of common errors in OpenMP applications. In: De Rose, L., de Supinski, B.R., Olivier, S.L., Chapman, B.M., Müller, M.S. (eds.) Using and Improving OpenMP for Devices, Tasks, and More. Lecture Notes in Computer Science, vol. 8766, pp. 58–72. Springer International Publishing, Cham (2014)

    Google Scholar 

  11. OpenMP Architecture Review Board: OpenMP Application Program Interface, Version 4.0 (2013)

    Google Scholar 

  12. Petersen, P., Shah, S.: OpenMP support in the Intel Thread Checker. OpenMP Shared Memory Parallel Programming. Lecture Notes in Computer Science, vol. 2716, pp. 1–12. Springer, Berlin (2003)

    Chapter  Google Scholar 

  13. Schulz, M., de Supinski, B.R.: Pnmpi tools: a whole lot greater than the sum of their parts. In: Proceedings of the ACM/IEEE Conference on Supercomputing, SC’07, pp. 30:1–30:10. ACM, New York, USA (2007)

    Google Scholar 

  14. Süß, M., Leopold, C.: Common mistakes in OpenMP and how to avoid them: a collection of best practices. In: Proceedings of the 2005 and 2006 International Conference on OpenMP Shared Memory Parallel Programming, IWOMP’05/IWOMP’06, pp. 312–323. Springer, Berlin (2008)

    Google Scholar 

  15. Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann Publishers Inc., San Francisco (2005)

    Google Scholar 

Download references

Acknowledgments

Parts of this work was funded by the German Federal Ministry of Research and Education (BMBF) under Grant Number 01IH13008A (ELP).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tim Cramer .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Cramer, T., Münchhalfen, F., Terboven, C., Hilbrich, T., Müller, M.S. (2016). Extending MUST to Check Hybrid-Parallel Programs for Correctness Using the OpenMP Tools Interface. In: Knüpfer, A., Hilbrich, T., Niethammer, C., Gracia, J., Nagel, W., Resch, M. (eds) Tools for High Performance Computing 2015. Springer, Cham. https://doi.org/10.1007/978-3-319-39589-0_7

Download citation

Publish with us

Policies and ethics