Distributed and predictable software model checking
Nuno P. Lopes,Andrey Rybalchenko +1 more
- 23 Jan 2011
- pp 340-355
TL;DR: This work presents an algorithm for software verification that is designed for the distributed execution on compute nodes that communicate via message passing, as found in today's compute clusters, and demonstrates that it is practical by an experimental evaluation on a set of difficult benchmark problems from the transportation domain.
read more
Abstract: We present a predicate abstraction and refinement-based algorithm for software verification that is designed for the distributed execution on compute nodes that communicate via message passing, as found in today's compute clusters. A successful adaptation of predicate abstraction and refinement from sequential to distributed setting needs to address challenges imposed by the inherent nondeterminism present in distributed computing environments. In fact, our experiments show that up to an order of magnitude variation of the running time is common when a naive distribution scheme is applied, often resulting in significantly worse running time than the non-distributed version. We present an algorithm that overcomes this pitfall by making deterministic the counterexample selection in spite of the distribution, and still efficiently exploits distributed computational resources. We demonstrate that our distributed software verification algorithm is practical by an experimental evaluation on a set of difficult benchmark problems from the transportation domain.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
EigenCFA: accelerating flow analysis with GPUs
Tarun Prabhu,Shreyas Ramalingam,Matthew Might,Mary Hall +3 more
- 26 Jan 2011
TL;DR: EigenCFA, an algorithm for accelerating higher-order control-flow analysis (specifically, 0CFA) with a GPU, is described, implemented and benchmarked, with a factor of 72 speedup over an optimized CPU implementation.
Parallelizing top-down interprocedural analyses
Aws Albarghouthi,Rajesh Kumar,Aditya V. Nori,Sriram K. Rajamani +3 more
- 11 Jun 2012
TL;DR: A generic framework, BOLT, which uses MapReduce style parallelism to scale top-down analyses that are demand driven, such as the ones used for software model checking, and is parameterized by the algorithm used for intraprocedural analysis.
Pipelining bottom-up data flow analysis
Qingkai Shi,Charles Zhang +1 more
- 27 Jun 2020
TL;DR: Coyote is presented, a framework of bottom-up data flow analysis, in which the analysis task of each function is elaborately partitioned into multiple sub-tasks to generate pipelineable function summaries, and the calling dependence can be relaxed in many cases and the parallelism can be improved.
15
A lightweight technique for distributed and incremental program verification
Martin Brain,Florian Schanda +1 more
- 28 Jan 2012
TL;DR: A simple and lightweight technique for adding incremental and distributed capabilities to a program verification system is given and can yield an average 29 fold speed increase in incremental use and near optimal speedup in distributed use.
7
Experience of improving the blast static verification tool
TL;DR: The BLAST static verification tool as discussed by the authors is one of the open-source verifiers of software written in C. The authors describe principles of BLAST implementation, the limitations revealed in the course of its practical use in the verification of the Linux operating system drivers.
6
References
Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints
Patrick Cousot,Radhia Cousot +1 more
- 01 Jan 1977
TL;DR: In this paper, the abstract interpretation of programs is used to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations.
Counterexample-guided abstraction refinement
Edmund M. Clarke
- 08 Jul 2003
TL;DR: Counterexample-guided abstraction refinement is an automatic abstraction method where the key step is to extract information from false negatives ("spurious counterexamples") due to over-approximation.
Lazy abstraction
Thomas A. Henzinger,Ranjit Jhala,Rupak Majumdar,Grégoire Sutre +3 more
- 01 Jan 2002
TL;DR: This work presents an algorithm for model checking safety properties using lazy abstraction and describes an implementation of the algorithm applied to C programs and provides sufficient conditions for the termination of the method.
1.3K
Automatic predicate abstraction of C programs
Thomas Ball,Rupak Majumdar,Todd Millstein,Sriram K. Rajamani +3 more
- 01 May 2001
TL;DR: This work presents the first algorithm to automatically construct a predicate abstraction of programs written in am industrial programming language such as C, and its implementation in a tool -- C2BP, part of the SLAM toolkit.
Related Papers (5)
Hon F. Li,E. Al Maghayreh +1 more
- 04 Dec 2007
Vivek Nigam,Limin Jia,Boon Thau Loo,Andre Scedrov +3 more
- 20 Jul 2011