A Path Construction Algorithm for Translation Validation Using PRES+ Models

@article{Bandyopadhyay2016APC,
  title={A Path Construction Algorithm for Translation Validation Using PRES+ Models},
  author={Soumyadip Bandyopadhyay and Dipankar Sarkar and Chittaranjan A. Mandal and Kunal Banerjee and Krishnam Raju Duddu},
  journal={Parallel Process. Lett.},
  year={2016},
  volume={26},
  pages={1650010:1-1650010:18}
}
Multi-core and multi-processor architectures have predominated the domain of embedded systems permitting easy mapping of concurrent applications to such architectures. The programs, in general, are subjected to significant optimizing and parallelizing transformations, automated and also human guided, before being mapped to an architecture. Modelling parallel behaviour and formally verifying that their functionality is preserved during synthesis are challenging tasks. Untimed PRES+ models are… 
PRESGen: A Fully Automatic Equivalence Checker for Validating Optimizing and Parallelizing Transformations
TLDR
This work proposes a method for automated construction of PRES+ models from high-level language programs and using an existing translation scheme to convert Pres+ models to FSMD models, and validates the transformations using a state-of-the-art F SMD equivalence checker.
An efficient path based equivalence checking for Petri net based models of programs
TLDR
A scheme for verifying equivalence between two given PRES+ models for translation validation of optimizing and parallelizing code transformations; one of the two models represents the source code and the other represents its optimized and (or) parallelized version.
An End-to-end Formal Verifier for Parallel Programs
TLDR
An end-to-end fully automated equivalence checker for validating optimizing and parallelizing transformations of PRES+ models from high-level language programs to validate the transformations using a state-of-the-art FSMD equivalenceChecker.
A path-based equivalence checking method for Petri net based models of programs
TLDR
A path based equivalence checking method for PRES+ models is presented and is likely to be more convenient as the intermediate representations (IRs) of both the source and the transformed codes for translation validation than strictly sequential variable-based IRs like Finite State Machines with Datapath (FSMDs).
Equivalence checking of Petri net models of programs using static and dynamic cut-points
TLDR
A path based equivalence checking method for CPN models with rigorous treatment of the complexity and correctness issues have been presented and Experimental results show the effectiveness of the approach.
SamaTulyata: An Efficient Path Based Equivalence Checking Tool
TLDR
This paper presents a translation validation tool for verifying optimizing and parallelizing code transformations by checking equivalence between two PRES+ models, one representing the source code and the other representing its optimized and parallelized version.
Implementing an Efficient Path Based Equivalence Checker for Parallel Programs
TLDR
An efficient path based equivalence checking method using a simple PRES+ model (which is easier to generate from a program) for validating several optimizing and parallelizing transformations is proposed and results demonstrate the efficiency of the method.
Analysis of GPGPU Programs for Data-race and Barrier Divergence
TLDR
This paper focuses on the two important properties of the programs written for GPGPUs, namely i) the data-race conditions and ii) the barrier divergence, and presents a technique to identify the existence of these properties in a CUDA program using a static property verification method.
SamaTulyataOne: A Path Based Equivalence Checker
TLDR
This paper presents a translation validation tool for verifying optimizing and parallelizing code transformations by checking equivalence between two PRES+ models; one corresponds the source program and other corresponds its counterpart.

References

SHOWING 1-10 OF 23 REFERENCES
A path-based equivalence checking method for Petri net based models of programs
TLDR
A path based equivalence checking method for PRES+ models is presented and is likely to be more convenient as the intermediate representations (IRs) of both the source and the transformed codes for translation validation than strictly sequential variable-based IRs like Finite State Machines with Datapath (FSMDs).
Extending the scope of translation validation by augmenting path based equivalence checkers with SMT solvers
TLDR
The scope of translation validation can be extended to handle bit-vectors, user-defined datatypes and more sophisticated transformations by leveraging the capability of SMT solvers while keeping the basic equivalence checking framework intact.
An Equivalence-Checking Method for Scheduling Verification in High-Level Synthesis
TLDR
A formal method for checking equivalence between a given behavioral specification prior to scheduling and the one produced by the scheduler is described, and is strong enough to work when path segments in the original behavior are merged, a common feature of scheduling.
Verification of Code Motion Techniques Using Value Propagation
An equivalence checking method of finite state machines with datapath based on value propagation over model paths is presented here for validation of code motion transformations commonly applied
Experimentation with SMT solvers and theorem provers for verification of loop and arithmetic transformations
TLDR
An array data dependence graph (ADDG) based equivalence checking method for loop and arithmetic transformations is developed and the experimental results show the effectiveness of this method.
New Efficient Petri Nets Reductions for Parallel Programs Verification
TLDR
This paper presents new efficient Petri nets reductions based on "behavioural" reductions which preserve a fundamental property of a net and any formula of the (action-based) linear time logic that does not observe reduced transitions of the net.
Formal verification of code motion techniques using data-flow-driven equivalence checking
TLDR
A formal verification method for checking correctness of code motion techniques is presented, which automatically identifies the situations where such properties are needed to be checked during equivalence checking, generates the appropriate properties, and invokes the model checking tool NuSMV to verify them.
Equivalence Checking of Array-Intensive Programs
TLDR
An equivalence checking method for ensuring correctness of loop and arithmetic transformations in array intensive programs is presented here and a slice based equivalence of ADDGs is formalized.
Deriving Bisimulation Relations from Path Extension Based Equivalence Checkers
Constructing bisimulation relations between programs as a means of translation validation has been an active field of study. The problem is in general undecidable. Currently available mechanisms
Verification of Loop and Arithmetic Transformations of Array-Intensive Behaviors
TLDR
A slice-based equivalence checking method of array data dependence graphs (ADDGs) is proposed that is strong enough to handle several arithmetic transformations along with all kinds of loop transformations.
...
1
2
3
...