Civl: Formal Verification Of Parallel Programs

ASE(2015)

引用 41|浏览110
暂无评分
摘要
CIVL is a framework for static analysis and verification of concurrent programs. One of the main challenges to practical application of these techniques is the large number of ways to express concurrency: MPI, OpenMP, CUDA, and Pthreads, for example, are just a few of many "concurrency dialects" in wide use today. These dialects are constantly evolving and it is increasingly common to use several of them in a single "hybrid" program. CIVL addresses these problems by providing a concurrency intermediate verification language, CIVL-C, as well as translators that consume C programs using these dialects and produce CIVL-C. Analysis and verification tools which operate on CIVL-C can then be applied easily to a wide variety of concurrent C programs. We demonstrate CIVL's error detection and verification capabilities on (1) an MPI+OpenMP program that estimates pi and contains a subtle race condition; and (2) an MPI-based 1d-wave simulator that fails to conform to a simple sequential implementation.
更多
查看译文
关键词
software verification,parallel programs,MPI,OpenMP,function equivalence,symbolic execution,model checking
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要