Transforming C OpenMP Programs for Verification in CIVL

Michael Rogers
University of Nebraska-Lincoln
University of Nebraska-Lincoln, 2015


   title={Transforming C OpenMP Programs for Verification in CIVL},

   author={Rogers, Michael},



Download Download (PDF)   View View   Source Source   



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.
No votes yet.
Please wait...

* * *

* * *

* * *

HGPU group © 2010-2022 hgpu.org

All rights belong to the respective authors

Contact us: