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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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
Godefroid, P.: Model Checking for Programming Languages using Verisoft. In: POPL, pp. 174–186 (1997)
Holzmann, G.J.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, Reading (2004)
Robby, D.M.B., Hatcliff, J.: Bogor: an extensible and highly-modular software model checking framework. In: ESEC / SIGSOFT FSE, pp. 267–276 (2003)
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)
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)
Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem. Springer, Heidelberg (1996)
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (2000)
Snir, M., Otto, S.: MPI-The Complete Reference: The MPI Core. MIT Press, Cambridge (1998)
Stern, U., Dill, D.L.: Parallelizing the Murhi Verifier. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 256–278. Springer, Heidelberg (1997)
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)
Sivaraj, H., Gopalakrishnan, G.: Random Walk Based Heuristic Algorithms for Distributed Memory Model Checking. Electr. Notes Theor. Comput. Sci. 89(1) (2003)
Kumar, R., Mercer, E.G.: Load Balancing Parallel Explicit State Model Checking. Electr. Notes Theor. Comput. Sci. 128(3), 19–34 (2005)
Holzmann, G., Bosnacki, D.: Multi-core model checking with Spin (2007)
Brim, L., Cerna, I., Moravec, P., Simsa, J.: Distributed Partial Order Reduction of State Spaces. PDMC (1) (2004)
Palmer, R., Gopalakrishnan, G.: Partial Order Reduction Assisted Parallel Model Checking. PDMC (2002)
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)
Author information
Authors and Affiliations
Editor information
Rights 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)