2015 · 28 citations · 13 references
ComputingComputer EngineeringComputer ScienceFormal MethodsParallel ComputingProgramming LanguagesConcurrency AnalysisConcurrency VerificationConcurrent ProgrammingConcurrent System VerificationParallel Programming ModelsRace Condition VulnerabilitiesConcurrent Program VerificationFormal VerificationOpenmpRace Condition AnalysisRace Condition DetectionStatic Concurrency AnalysisVerification Error DetectionVerification Of Concurrent Programs
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 π and contains a subtle race condition, and (2) an MPI-based 1d-wave simulator that fails to conform to a simple sequential implementation.
13
AddressSanitizer: a fast address sanity checker
Konstantin Serebryany, Derek Bruening, Alexander Potapenko et al. · USENIX Annual Technical Conference · 2012 · 642 citations
Konstantin Serebryany, Timur Iskhodzhanov · 2009 · 434 citations
Corina S. Păsăreanu, Neha Rungta · 2010 · 253 citations
Guodong Li, Peng Li, Geof Sawaya et al. · 2012 · 127 citations