Skip to main content

Distributed Dynamic Partial Order Reduction Based Verification of Threaded Software

  • Conference paper

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

Abstract

Runtime (dynamic) model checking is a promising verification methodology for real-world threaded software because of its many features, the prominent ones being: (i) it avoids the need to extract a model and instead runs the actual code, and (ii) the precision of information available at run-time allows techniques such as dynamic partial order reduction (DPOR) [1] to dramatically cut down the number of interleavings examined. Unfortunately, DPOR does not have many implementations for real thread libraries such as POSIX Pthreads, and suffers from high computational overheads due to a stateless search that requires re-executions. In our previous work [2], we designed a runtime model checker, inspect, that overcomes the first of these drawbacks. Inspect has been shown capable of detecting data races, deadlocks and other incorrect API usages in real-world PThreads C programs. In this paper, we describe a distributed version of inspect, which implements an extended DPOR algorithm. Our two key contributions are: (i) a practical algorithm for distributed dynamic partial order reduction; (ii) the innovations that helped distributed inspect attain nearly linear (with respect to the number of CPUs) speedup on realistic examples.

Supported in part by NSF award CNS00509379, Microsoft HPC Institute Program, and SRC Contract 2005-TJ-1318.

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. Flanagan, C., Godefroid, P.: Dynamic Partial-order Reduction for Model Checking Software. In: Palsberg, J., Abadi, M. (eds.) POPL, pp. 110–121. ACM Press, New York (2005)

    Chapter  Google Scholar 

  2. Yang, Y., Chen, X., Gopalakrishnan, G., Kirby, R.M.: UUCS-07-008: Runtime Model Checking of Multithreaded C Programs. Technical report (2007), http://www.cs.utah.edu/research/techreports/2007/ps/UUCS-07-008.ps

  3. Godefroid, P.: Model Checking for Programming Languages using Verisoft. In: POPL, pp. 174–186 (1997)

    Google Scholar 

  4. Holzmann, G.J.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2004)

    Google Scholar 

  5. Robby, D.M.B., Hatcliff, J.: Bogor: an extensible and highly-modular software model checking framework. In: ESEC / SIGSOFT FSE, pp. 267–276 (2003)

    Google Scholar 

  6. Henzinger, T.A., Jhala, R., Majumdar, R.: Race checking by context inference. In: PLDI 2004. Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation, pp. 1–13. ACM Press, New York (2004)

    Chapter  Google Scholar 

  7. Andrews, T., Qadeer, S., Rajamani, S.K., Rehof, J., Xie, Y.: Zing: A Model Checker for Concurrent Software. In: Cointe, P. (ed.) ECOOP 1996. LNCS, vol. 1098, pp. 484–487. Springer, Heidelberg (1996)

    Google Scholar 

  8. Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. Springer, Heidelberg (1996)

    Google Scholar 

  9. Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (2000)

    Google Scholar 

  10. Snir, M., Otto, S.: MPI-The Complete Reference: The MPI Core. MIT Press, Cambridge (1998)

    Google Scholar 

  11. http://www.mpiforum.org/docs/docs.html

  12. http://www.lammpi.org/

  13. http://www.enderunix.org/aget/

  14. Stern, U., Dill, D.L.: Parallelizing the Murhi Verifier. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 256–278. Springer, Heidelberg (1997)

    Google Scholar 

  15. Melatti, I., Palmer, R., Sawaya, G., Yang, Y., Kirby, R.M., Gopalakrishnan, G.: Parallel and Distributed Model Checking in Eddy. In: Valmari, A. (ed.) Model Checking Software. LNCS, vol. 3925, pp. 108–125. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  16. Sivaraj, H., Gopalakrishnan, G.: Random Walk Based Heuristic Algorithms for Distributed Memory Model Checking. Electr. Notes Theor. Comput. Sci. 89(1) (2003)

    Google Scholar 

  17. Kumar, R., Mercer, E.G.: Load Balancing Parallel Explicit State Model Checking. Electr. Notes Theor. Comput. Sci. 128(3), 19–34 (2005)

    Article  Google Scholar 

  18. Holzmann, G., Bosnacki, D.: Multi-core model checking with Spin (2007)

    Google Scholar 

  19. Brim, L., Cerna, I., Moravec, P., Simsa, J.: Distributed Partial Order Reduction of State Spaces. PDMC (1) (2004)

    Google Scholar 

  20. Palmer, R., Gopalakrishnan, G.: Partial Order Reduction Assisted Parallel Model Checking. PDMC (2002)

    Google Scholar 

  21. Palmer, R., Gopalakrishnan, G.: A distributed partial order reduction algorithm. In: Peled, D.A., Vardi, M.Y. (eds.) FORTE 2002. LNCS, vol. 2529, p. 370. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Dragan Bošnački Stefan Edelkamp

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Yang, Y., Chen, X., Gopalakrishnan, G., Kirby, R.M. (2007). Distributed Dynamic Partial Order Reduction Based Verification of Threaded Software. In: Bošnački, D., Edelkamp, S. (eds) Model Checking Software. SPIN 2007. Lecture Notes in Computer Science, vol 4595. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73370-6_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-73370-6_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-73369-0

  • Online ISBN: 978-3-540-73370-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics