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

  • Tim CramerEmail author
  • Felix Münchhalfen
  • Christian Terboven
  • Tobias Hilbrich
  • Matthias S. Müller
Conference paper


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.


Message Passing Interface Correctness Analysis Target Device Application Thread Message Passing Interface Process 
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.



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


  1. 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. 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. 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).
  4. 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. 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. 6.
    Humphrey, W.S.: Bugs or Defects? (1999), 10 October 2015
  7. 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. 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. 9.
    MPI Forum: MPI: A Message-Passing Interface Standard, Version 3.0 (2012)Google Scholar
  10. 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. 11.
    OpenMP Architecture Review Board: OpenMP Application Program Interface, Version 4.0 (2013)Google Scholar
  12. 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)CrossRefGoogle Scholar
  13. 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. 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. 15.
    Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann Publishers Inc., San Francisco (2005)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Tim Cramer
    • 1
    • 2
    • 3
    Email author
  • Felix Münchhalfen
    • 1
    • 2
    • 3
  • Christian Terboven
    • 1
    • 2
    • 3
  • Tobias Hilbrich
    • 4
  • Matthias S. Müller
    • 1
    • 2
    • 3
  1. 1.IT CenterRWTH Aachen UniversityAachenGermany
  2. 2.Chair for High Performance ComputingRWTH Aachen UniversityAachenGermany
  3. 3.JARA - High-Performance ComputingAachenGermany
  4. 4.Technische Universität DresdenDresdenGermany

Personalised recommendations