Skip to main content

SimGrid MC: Verification Support for a Multi-API Simulation Platform

  • Conference paper

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

Abstract

SimGrid MC is a stateless model checker for distributed systems that is part of the SimGrid Simulation Framework. It verifies implementations of distributed algorithms, written in C and using any of several communication APIs provided by the simulator. Because the model checker is fully integrated in the simulator that programmers use to validate their implementations, they gain powerful verification capabilities without having to adapt their code. We describe the architecture of SimGrid MC, and show how it copes with the state space explosion problem. In particular, we argue that a generic Dynamic Partial Order Reductions algorithm is effective for handling the different communication APIs that are provided by SimGrid. As a case study, we verify an implementation of Chord, where SimGrid MC helped us discover an intricate bug in a matter of seconds.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Hennessy, M.: Algebraic Theory of Processes. MIT Press, Cambridge (1988)

    MATH  Google Scholar 

  2. Reisig, W.: A Primer in Petri Net Design. Springer, Heidelberg (1992)

    Book  MATH  Google Scholar 

  3. Holzmann, G.J.: The model checker Spin. IEEE Trans. Softw. Eng. 23(5), 279–295 (1997)

    Article  Google Scholar 

  4. Lamport, L.: Specifying Systems. Addison-Wesley, Boston (2002)

    MATH  Google Scholar 

  5. Visser, W., Havelund, K.: Model checking programs. Automated Software Engineering Journal, 3–12 (2000)

    Google Scholar 

  6. Killian, C.E., Anderson, J.W., Braud, R., Jhala, R., Vahdat, A.M.: Mace: language support for building distributed systems. In: Proceedings of the ACM SIGPLAN conference on Programming language design and implementation PLDI 2007, pp. 179–188. ACM, New York (2007)

    Chapter  Google Scholar 

  7. Musuvathi, M., Qadeer, S.: Fair stateless model checking. In: Proceedings of the ACM SIGPLAN conference on Programming language design and implementation PLDI 2008, pp. 362–371. ACM Press, New York (2008)

    Chapter  Google Scholar 

  8. Musuvathi, M., Park, D.Y.W., Chou, A., Engler, D.R., Dill, D.L.: CMC: A pragmatic approach to model checking real code. In: Proceedings of the Fifth Symposium on Operating Systems Design and Implementation, OSDI 2002 (2002)

    Google Scholar 

  9. Flanagan, C., Godefroid, P.: Dynamic partial-order reduction for model checking software. SIGPLAN Not. 40(1), 110–121 (2005)

    Article  Google Scholar 

  10. Palmer, R., Gopalakrishnan, G., Kirby, R.M.: Semantics driven dynamic partial-order reduction of MPI-based parallel programs. In: Proceedings of the ACM workshop on Parallel and distributed systems: testing and debugging PADTAD 2007, pp. 43–53. ACM, New York (2007)

    Chapter  Google Scholar 

  11. Casanova, H., Legrand, A., Quinson, M.: SimGrid: a Generic Framework for Large-Scale Distributed Experiments. In: 10th IEEE International Conference on Computer Modeling and Simulation (March 2008)

    Google Scholar 

  12. Godefroid, P.: Model checking for programming languages using VeriSoft. In: Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages POPL 1997, pp. 174–186. ACM, New York (1997)

    Google Scholar 

  13. Vo, A., Vakkalanka, S., DeLisi, M., Gopalakrishnan, G., Kirby, R.M., Thakur, R.: Formal verification of practical MPI programs. SIGPLAN Not. 44(4), 261–270 (2009)

    Article  Google Scholar 

  14. Iosif, R.: Exploiting heap symmetries in explicit-state model checking of software. In: Proceedings of the 16th IEEE international conference on Automated software engineering, ASE 2001, vol. 254, IEEE Computer Society, Washington (2001)

    Google Scholar 

  15. Rosa, C., Merz, S., Quinson, M.: A simple model of communication APIs – Application to dynamic partial-order reduction. In: 10th Intl. Workshop Automated Verification of Critical Systems, Düsseldorf, Germany, pp. 137–152 (2010)

    Google Scholar 

  16. Stoica, I., Morris, R., Karger, D., Kaashoek, M.F., Balakrishnan, H.: Chord: A scalable peer-to-peer lookup service for internet applications. SIGCOMM Comput. Commun. Rev. 31, 149–160 (2001)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Merz, S., Quinson, M., Rosa, C. (2011). SimGrid MC: Verification Support for a Multi-API Simulation Platform. In: Bruni, R., Dingel, J. (eds) Formal Techniques for Distributed Systems. FMOODS FORTE 2011 2011. Lecture Notes in Computer Science, vol 6722. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21461-5_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-21461-5_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-21460-8

  • Online ISBN: 978-3-642-21461-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics