Skip to main content

MPI Runtime Error Detection with MUST: Advanced Error Reports

  • Conference paper
  • First Online:
Tools for High Performance Computing 2012

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.

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

Access this chapter

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

Institutional subscriptions

Notes

  1. 1.

    http://www.dyninst.org/

References

  1. Message Passing Interface Forum: MPI: A Message-Passing Interface Standard, Version 2.2. http://www.mpi-forum.org/docs/mpi22-report.pdf (April 2009)

  2. 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

    Google Scholar 

  3. 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

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. 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

    Google Scholar 

  8. 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

    Google Scholar 

  9. 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

    Google Scholar 

  10. 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

    Google Scholar 

  11. 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

    Google Scholar 

  12. 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

    Article  MATH  Google Scholar 

  13. 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)

    Google Scholar 

  14. 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

    Google Scholar 

  15. Krammer, B., Himmler, V., Lecomber, D.: Coupling DDT and Marmot for debugging of MPI applications. In: PARCO’07. (2007) 653–660

    Google Scholar 

  16. 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

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Joachim Protze .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics