Skip to main content

Symbolic Verification of MPI Programs with Non-deterministic Synchronizations

  • Conference paper
  • First Online:
  • 311 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 12153))

Abstract

Message Passing Interface (MPI) is the current de-facto standard for developing applications in high-performance computing. MPI allows flexible implementations of message passing operations, which introduces non-deterministic synchronizations that challenge the correctness of MPI programs. We present in this paper a symbolic method for verifying the MPI programs with non-deterministic synchronizations. Insides the method, we propose a path-level modeling method that uses communicating sequential processes (CSP) to precisely encode the non-deterministic synchronizations of an execution path. Furthermore, for the execution paths without non-deterministic message receive operations, we propose an optimization method to reduce the complexity of the CSP models. We have implemented our technique on MPI-SV and evaluated it on 10 real-world MPI programs w.r.t. deadlock freedom. The experimental results demonstrate the effectiveness of our verification method.

This work is supported by National Key R&D Program of China (No. 2018YFB0204301) and NSFC Program (No. 61902409, 61632015, 61690203 and 61532007).

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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

Learn about institutional subscriptions

Notes

  1. 1.

    We allocate each group of \(\textsf {MPI}\_\textsf {Bcast}\) operations a unique synchronization event \(\textsf {Bcast}_k\).

  2. 2.

    Integrat_mw is adopted from [6], in which a static schedule is employed.

  3. 3.

    DTG\(^{*}\) is the version that replaces the wildcard receives by deterministic receives.

References

  1. Böhm, S., Meca, O., Jančar, P.: State-space reduction of non-deterministically synchronizing systems applicable to deadlock detection in MPI. In: Fitzgerald, J., Heitmeyer, C., Gnesi, S., Philippou, A. (eds.) FM 2016. LNCS, vol. 9995, pp. 102–118. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-48989-6_7

    Chapter  Google Scholar 

  2. Botbol, V., Chailloux, E., Le Gall, T.: Static analysis of communicating processes using symbolic transducers. In: Bouajjani, A., Monniaux, D. (eds.) VMCAI 2017. LNCS, vol. 10145, pp. 73–90. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-52234-0_5

    Chapter  Google Scholar 

  3. Brand, D., Zafiropulo, P.: On communicating finite-state machines. J. ACM 30, 323–342 (1983)

    Article  MathSciNet  Google Scholar 

  4. Cadar, C., Dunbar, D., Engler, D.: KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs. In: OSDI, pp. 209–224 (2008)

    Google Scholar 

  5. Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)

    MATH  Google Scholar 

  6. Forejt, V., Kroening, D., Narayanaswamy, G., Sharma, S.: Precise predictive analysis for discovering communication deadlocks in MPI programs. In: Jones, C., Pihlajasaari, P., Sun, J. (eds.) FM 2014. LNCS, vol. 8442, pp. 263–278. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-06410-9_19

    Chapter  Google Scholar 

  7. MPI Forum: MPI: a message-passing interface standard version 3.0 (2012). http://mpi-forum.org

  8. Gopalakrishnan, G., et al.: Report of the HPC correctness summit, 25–26 January 2017, Washington, DC (2017). https://science.energy.gov/~/media/ascr/pdf/programdocuments/docs/2017/HPC_Correctness_Report.pdf

  9. Holzmann, G.J.: Promela manual pages (2012). http://spinroot.com/spin/Man/promela.html

  10. Huang, Yu., Mercer, E.: Detecting MPI zero buffer incompatibility by SMT encoding. In: Havelund, K., Holzmann, G., Joshi, R. (eds.) NFM 2015. LNCS, vol. 9058, pp. 219–233. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-17524-9_16

    Chapter  Google Scholar 

  11. Khanna, D., Sharma, S., Rodríguez, C., Purandare, R.: Dynamic symbolic verification of MPI programs. In: Havelund, K., Peleska, J., Roscoe, B., de Vink, E. (eds.) FM 2018. LNCS, vol. 10951, pp. 466–484. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-95582-7_28

    Chapter  Google Scholar 

  12. King, J.: Symbolic execution and program testing. Commun. ACM 19, 385–394 (1976)

    Article  MathSciNet  Google Scholar 

  13. López, H.A., et al.: Protocol-based verification of message-passing parallel programs. In: OOPSLA, pp. 280–298 (2015)

    Google Scholar 

  14. Luo, Z., Zheng, M., Siegel, S.F.: Verification of MPI programs using CIVL. In: EuroMPI, pp. 6:1–6:11 (2017)

    Google Scholar 

  15. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems - Specification. Springer, New York (1992). https://doi.org/10.1007/978-1-4612-0931-7

    Book  MATH  Google Scholar 

  16. Rico-Gallego, J.-A., Díaz-Martín, J.-C.: Performance evaluation of thread-based MPI in shared memory. In: Cotronis, Y., Danalis, A., Nikolopoulos, D.S., Dongarra, J. (eds.) EuroMPI 2011. LNCS, vol. 6960, pp. 337–338. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-24449-0_42

    Chapter  Google Scholar 

  17. Roscoe, B.: The Theory and Practice of Concurrency. Prentice-Hall, Upper Saddle River (2005)

    Google Scholar 

  18. Siegel, S.F.: Model checking nonblocking MPI programs. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol. 4349, pp. 44–58. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-69738-1_3

    Chapter  Google Scholar 

  19. Siegel, S.F.: Verifying parallel programs with MPI-Spin. In: Cappello, F., Herault, T., Dongarra, J. (eds.) EuroPVM/MPI 2007. LNCS, vol. 4757, pp. 13–14. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-75416-9_8

    Chapter  Google Scholar 

  20. Siegel, S.F., Zirkel, T.K.: FEVS: a functional equivalence verification suite for high-performance scientific computing. Math. Comput. Sci. 5, 427–435 (2011)

    Article  Google Scholar 

  21. Snir, M.: MPI-The Complete Reference: The MPI Core, vol. 1. MIT Press, Cambridge (1998)

    Google Scholar 

  22. Sun, J., Liu, Y., Dong, J.S., Pang, J.: PAT: towards flexible verification under fairness. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 709–714. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02658-4_59

    Chapter  Google Scholar 

  23. Vakkalanka, S.: Efficient dynamic verification algorithms for MPI applications. Ph.D. thesis, The University of Utah (2010)

    Google Scholar 

  24. Vakkalanka, S., Gopalakrishnan, G., Kirby, R.M.: Dynamic verification of MPI programs with reductions in presence of split operations and relaxed orderings. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 66–79. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-70545-1_9

    Chapter  MATH  Google Scholar 

  25. Vo, A., Aananthakrishnan, S., Gopalakrishnan, G., De Supinski, B.R., Schulz, M., Bronevetsky, G.: A scalable and distributed dynamic formal verifier for MPI programs. In: SC, pp. 1–10 (2010)

    Google Scholar 

  26. Xue, R., et al.: MPIWiz: subgroup reproducible replay of MPI applications. ACM SIGPLAN Not. 44, 251–260 (2009)

    Article  Google Scholar 

  27. Yu, H., et al.: Symbolic verification of message passing interface programs. In: 42nd International Conference on Software Engineering, ICSE 2020, Seoul, South Korea, 27 June–19 July 2020, pp. 1248–1260 (2020)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Hengbiao Yu or Zhenbang Chen .

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

Yu, H., Chen, Z., Huang, C., Wang, J. (2020). Symbolic Verification of MPI Programs with Non-deterministic Synchronizations. In: Pang, J., Zhang, L. (eds) Dependable Software Engineering. Theories, Tools, and Applications. SETTA 2020. Lecture Notes in Computer Science(), vol 12153. Springer, Cham. https://doi.org/10.1007/978-3-030-62822-2_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-62822-2_10

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-62821-5

  • Online ISBN: 978-3-030-62822-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics