Transforming C OpenMP Programs for Verification in CIVL
University of Nebraska-Lincoln
University of Nebraska-Lincoln, 2015
@article{rogers2015transforming,
title={Transforming C OpenMP Programs for Verification in CIVL},
author={Rogers, Michael},
year={2015}
}
There are numerous way to express parallelism which can make it challenging for developers to verify these programs. Many tools only target a single dialect but the Concurrency Intermediate Verification Language (CIVL) targets MPI, Pthreads, and CUDA. CIVL provides a general concurrency model that can represent pro- grams in a variety of concurrency dialects. CIVL includes a front-end that support all of the dialects mentioned above. The back-end is a verifier that uses model checking and symbolic execution to check standard properties. In this thesis, we have designed and implemented a transformer that will take C OpenMP programs and transform them to CIVL so that they can be verified. A large subset of the OpenMP specification is supported by the transformer. The transformer operates on a Abstract Syntax Tree (AST) representation of the program. The transformer will modify the AST to replace OpenMP constructs with equivalent CIVL constructs so that the program can be verified in CIVL. Results show that the transformer supports the most common used OpenMP constructs.
December 10, 2015 by hgpu