Abstract
The Message Passing Interface (MPI) is a widely used paradigm for distributed memory programming. Its API is primarily designed for good performance and less for usability; it provides only very limited abstractions that help enforce its correct use. As a result, application developers need tools that aid in the detection and removal of MPI usage errors. Our runtime error detection tool MUST addresses this issue and provides a wide range of automatic correctness checks. MUST uses state-of-the-art approaches to cope with complex MPI semantics like derived datatypes, collective operations, and wildcard receive operations. However, equally important to detecting correctness violations, is that such correctness tools present all details of the violating MPI call(s) required to pinpoint the problem in the source code and to remove the error. In this paper we focus on the error reports presented by MUST and propose a new set of error reports that present complex errors with fine-grained details of the error situation. This includes a deadlock view and a view for usage errors in complex MPI datatypes.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
Message Passing Interface Forum: MPI: A Message-Passing Interface Standard, Version 2.2. http://www.mpi-forum.org/docs/mpi22-report.pdf (April 2009)
Krammer, B., Müller, M.S.: MPI Application Development with MARMOT. In: PARCO. Volume 33., Central Institute for Applied Mathematics, Jülich, Germany (2005) 893–900
Vetter, J.S., de Supinski, B.R.: Dynamic Software Testing of MPI Applications with Umpire. Supercomputing, ACM/IEEE 2000 Conference (04–10 Nov. 2000) 51–51
Hilbrich, T., Protze, J., Schulz, M., de Supinski, B.R., Müller, M.S.: Mpi runtime error detection with must: Advances in deadlock detection. In: Proceedings of 2012 International Conference for High Performance Computing, Networking, Storage and Analysis. SC ’12, New York, NY, USA, ACM (2012)
Protze, J., Hilbrich, T., Knüpfer, A., de Supinski, B.R., Müller, M.S.: Holistic Debugging of MPI Derived Datatypes. In: IPDPS 2012: Proceedings of the 26th IEEE International Parallel & Distributed Processing Symposium. (2012)
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: IPDPS 2012: Proceedings of the 26th IEEE International Parallel & Distributed Processing Symposium. (2012)
Krammer, B., Hilbrich, T., Himmler, V., Czink, B., Dichev, K., Müller, M.S.: MPI Correctness Checking with Marmot. In: Parallel Tools Workshop’08. (2008) 61–78
Hilbrich, T., de Supinski, B.R., Schulz, M., Müller, M.S.: A Graph Based Approach for MPI Deadlock Detection. In: ICS ’09: Proceedings of the 23rd International Conference on Supercomputing, New York, NY, USA, ACM (2009) 296–305
Ahn, D.H., de Supinski, B.R., Laguna, I., Lee, G.L., Liblit, B., Miller, B.P., Schulz, M.: Scalable temporal order analysis for large scale debugging. In: Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis. SC ’09, New York, NY, USA, ACM (2009) 44:1–44:11
Arnold, D., Ahn, D., de Supinski, B., Lee, G., Miller, B., Schulz, M.: Stack Trace Analysis for Large Scale Debugging. In: Parallel and Distributed Processing Symposium, 2007. IPDPS 2007. IEEE International. (march 2007) 1–10
Vakkalanka, S.S., Sharma, S., Gopalakrishnan, G., Kirby, R.M.: ISP: A Tool for Model Checking MPI Programs. In: 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. (2008) 285–286
Luecke, G.R., Chen, H., Coyle, J., Hoekstra, J., Kraeva, M., Zou, Y.: MPI-CHECK: A Tool for Checking Fortran 90 MPI Programs. Concurrency and Computation: Practice and Experience 15(2) (2003) 93–100
Desouza, J., Kuhn, B., Supinski, B.R.D.: Automated, Scalable Debugging of MPI Programs with Intel Message Checker. In: In Workshop on Software Engineering for High Performance Computing System Applications (SE-HPCS). (2005)
Cownie, J.: A standard interface for debugger access to message queue information in MPI. In: Recent Advances in Parallel Virtual Machine and Message Passing Interface, volume 1697 of Lecture Notes in Computer Science, Springer Verlag (1999) 51–58
Krammer, B., Himmler, V., Lecomber, D.: Coupling DDT and Marmot for debugging of MPI applications. In: PARCO’07. (2007) 653–660
Träff, J.L., Hempel, R., Ritzdorf, H., Zimmermann, F.: Flattening on the Fly: Efficient Handling of MPI Derived Datatypes. In: Proceedings of the 6th European PVM/MPI Users’ Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface, London, UK, Springer-Verlag (1999) 109–116
Acknowledgements
Part of this work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344. (LLNL-CONF-586816). This work has been supported by the CRESTA project that has received funding from the European Community’s Seventh Framework Programme (ICT-2011.9.13) under Grant Agreement no. 287703.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Protze, J., Hilbrich, T., de Supinski, B.R., Schulz, M., Müller, M.S., Nagel, W.E. (2013). MPI Runtime Error Detection with MUST: Advanced Error Reports. In: Cheptsov, A., Brinkmann, S., Gracia, J., Resch, M., Nagel, W. (eds) Tools for High Performance Computing 2012. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-37349-7_3
Download citation
DOI: https://doi.org/10.1007/978-3-642-37349-7_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-37348-0
Online ISBN: 978-3-642-37349-7
eBook Packages: Mathematics and StatisticsMathematics and Statistics (R0)