Skip to main content

Automatic Detection of MPI Assertions

  • Conference paper
  • First Online:
High Performance Computing (ISC High Performance 2020)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 12321))

Included in the following conference series:

Abstract

The 2019 MPI standard draft specification includes the addition of defined communicator info hints. These hints are assertions that an application makes to an MPI implementation, so that a more optimized implementation is possible. The 2019 draft specifications defines four assertions: mpi_assert_no_any_tag, mpi_assert_no_any_source, mpi_assert_exact_length and mpi_assert_allow_overtaking. In this paper we will explore the capability of a Clang/LLVM based static analysis to check whether these assertions hold for a given program. With this tool, existing codebases can benefit from this new addition to the MPI standard without the need for costly human intervention.

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 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight 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.

    We assume the use of MPI in an application to be correct.

  2. 2.

    Refer to Sect. 4 for ideas on how to overcome this shortcoming.

  3. 3.

    The particular differences between Rsend and Ssend are not important for this consideration. Important is that when either of those operations successfully finishes, we can conclude that the matching receive has started on the target process.

  4. 4.

    Currently we have not implemented coverage for the Ibsend operation, but the implementation would in principle be the same with the difference that both an MPI_Wait and a following MPI_Buffer_detach is required for the operation to be considered locally complete.

  5. 5.

    Available together with the source code of the analysis tool.

  6. 6.

    Splitting the iteration with a synchronization is also possible but only introduces unnecessary synchronization overhead in this case.

  7. 7.

    Using MPI_Comm_dup_with_info.

References

  1. Danalis, A., Pollock, L., Swany, M., Cavazos, J.: MPI-aware compiler optimizations for improving communication-computation overlap. In: Proceedings of the 23rd International Conference on Supercomputing, pp. 316–325 (2009)

    Google Scholar 

  2. Dang, H.V., Snir, M., Gropp, W.: Towards millions of communicating threads. In: Proceedings of the 23rd European MPI Users’ Group Meeting, pp. 1–14 (2016)

    Google Scholar 

  3. Dowd, K., Severance, C.: High performance computing (2010). http://cnx.org/content/col11136/1.5

  4. Droste, A., Kuhn, M., Ludwig, T.: MPI-checker: static analysis for MPI. In: Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC, pp. 1–10 (2015)

    Google Scholar 

  5. 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., Resch, M., Schulz, A., Nagel, W. (eds.) Tools for High Performance Computing 2009, pp. 53–66. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-11261-4_5

    Chapter  Google Scholar 

  6. Hück, A., et al.: Compiler-aided type tracking for correctness checking of MPI applications. In: 2018 IEEE/ACM 2nd International Workshop on Software Correctness for HPC Applications (Correctness), pp. 51–58. IEEE (2018)

    Google Scholar 

  7. Jaeger, J., Saillard, E., Carribault, P., Barthou, D.: Correctness analysis of MPI-3 Non-blocking communications in PARCOACH. In: Proceedings of the 22nd European MPI Users’ Group Meeting, pp. 1–2 (2015)

    Google Scholar 

  8. Luecke, G., Chen, H., Coyle, J., Hoekstra, J., Kraeva, M., Zou, Y.: MPI-CHECK: a tool for checking Fortran 90 MPI programs. Concurr. Comput. Pract. Exp. 15(2), 93–100 (2003)

    Article  Google Scholar 

  9. Message Passing Interface Forum: MPI: A Message-Passing Interface Standard Version 3.1 (2015). https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report.pdf

  10. Message Passing Interface Forum: MPI: A Message-Passing Interface Standard 2019 Draft Specification (2019). https://www.mpi-forum.org/docs/drafts/mpi-2019-draft-report.pdf

  11. Saillard, E., Carribault, P., Barthou, D.: PARCOACH: combining static and dynamic validation of MPI collective communications. Int. J. High Perform. Comput. Appl. 28(4), 425–434 (2014)

    Article  Google Scholar 

  12. Schonbein, W., Dosanjh, M.G.F., Grant, R.E., Bridges, P.G.: Measuring multithreaded message matching misery. In: Aldinucci, M., Padovani, L., Torquati, M. (eds.) Euro-Par 2018. LNCS, vol. 11014, pp. 480–491. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-96983-1_34

    Chapter  Google Scholar 

Download references

Acknowledgements

This work was supported by the Hessian Ministry for Higher Education, Research and the Arts through the Hessian Competence Center for High-Performance Computing. We want to thank the anonymous reviewer for their suggestion to address the current limitation of our tool by duplicating the MPI communicator.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tim Jammer .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Jammer, T., Iwainsky, C., Bischof, C. (2020). Automatic Detection of MPI Assertions. In: Jagode, H., Anzt, H., Juckeland, G., Ltaief, H. (eds) High Performance Computing. ISC High Performance 2020. Lecture Notes in Computer Science(), vol 12321. Springer, Cham. https://doi.org/10.1007/978-3-030-59851-8_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-59851-8_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-59850-1

  • Online ISBN: 978-3-030-59851-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics