Proceedings of the 2006 International Symposium on Software Testing and Analysis 2006
DOI: 10.1145/1146238.1146256
|View full text |Cite
|
Sign up to set email alerts
|

Using model checking with symbolic execution to verify parallel numerical programs

Abstract: We present a method to verify the correctness of parallel programs that perform complex numerical computations, including computations involving floating-point arithmetic.The method requires that a sequential version of the program be provided, to serve as the specification for the parallel one. The key idea is to use model checking, together with symbolic computation, to establish the equivalence of the two programs.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
29
0

Year Published

2006
2006
2015
2015

Publication Types

Select...
5
3
2

Relationship

0
10

Authors

Journals

citations
Cited by 47 publications
(29 citation statements)
references
References 20 publications
0
29
0
Order By: Relevance
“…For example, Siegel [38] uses the SPIN model checker and symbolic execution techniques to compare and verify correctness of the Message Passing parallel implementation of the algorithms given its sequential counterpart. Person [33] proposes differential symbolic execution to determine differences between two versions of the same application.…”
Section: Related Workmentioning
confidence: 99%
“…For example, Siegel [38] uses the SPIN model checker and symbolic execution techniques to compare and verify correctness of the Message Passing parallel implementation of the algorithms given its sequential counterpart. Person [33] proposes differential symbolic execution to determine differences between two versions of the same application.…”
Section: Related Workmentioning
confidence: 99%
“…To make this general crosschecking approach effective to OpenCL code, we had to construct an OpenCL model, and add support for concurrency, race detection and several additional rules and assumptions. In addition to our work on KLEE-FP, this approach has been successfully used in the past to verify code equivalence in other contexts, such as hardware verification [4], compiler optimisations [17], block cipher implementations [23] and parallel numerical programs [22]. The main advantages of normalizing symbolic expressions and then comparing them syntactically are that (1) the technique is lightweight compared to more precise symbolic analyses such as [20], and (2) it can deal with floatingpoint constraints, for which there are no efficient constraint solvers currently available.…”
Section: Related Workmentioning
confidence: 99%
“…-Program and Data Structure Repair can be done using symbolic execution; e.g., given an assertion that represents desired structural integrity constraints and a structure that violates them, the algorithm from [40] can "mutate" the given structure to satisfy the constraints. -Parallel numerical program analysis [55] involves combining model checking and symbolic execution to establish the equivalence of a sequential and a parallel program. The sequential program acts as the "specification" for the parallel one.…”
Section: Other Applicationsmentioning
confidence: 99%