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.
Keywords
- 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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
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)
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)
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
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)
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)
Humphrey, W.S.: Bugs or Defects? http://www.uqac.ca/flemieux/PRO102/watts-mar99.pdf (1999), 10 October 2015
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)
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)
MPI Forum: MPI: A Message-Passing Interface Standard, Version 3.0 (2012)
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)
OpenMP Architecture Review Board: OpenMP Application Program Interface, Version 4.0 (2013)
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)
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)
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)
Zeller, A.: Why Programs Fail: A Guide to Systematic Debugging. Morgan Kaufmann Publishers Inc., San Francisco (2005)
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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
DOI: https://doi.org/10.1007/978-3-319-39589-0_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-39588-3
Online ISBN: 978-3-319-39589-0
eBook Packages: Mathematics and StatisticsMathematics and Statistics (R0)