Hyperconcolic - Finding parallel bugs in Java programs, using concolic execution

Christian Gram Kalhauge

AbstractParallel errors are an increasingly greater problem. Of these problems are the data race the easiest problem to solve, but it still remains a difficult problem. Static analyses finds to many and dynamic analysis finds too few. I have created a new sound way to extract schedules from parallel programs, based of concolic execution, called hyperconcolic. A new mathematical notation for describing the coverage of dynamic analyses, called schedule classes, is introduced. Hyperconcolic has better schedule class coverage than concolic, because hyperconcolic is able to chose the scheduler for each execution. A new language for containing schedules has been specified to enable multiple programs to work on the same schedules without interfering. State of the art data race detectors has been implemented to analyse these schedules. I have also made probable that combinations of hyperconcolic and some dynamic data race techniques are sound and complete for programs which produce bounded length schedules for all inputs.
TypeMaster's thesis [Academic thesis]
Year2015
PublisherTechnical University of Denmark, Department of Applied Mathematics and Computer Science
AddressRichard Petersens Plads, Building 324, DK-2800 Kgs. Lyngby, Denmark, compute@compute.dtu.dk
SeriesDTU Compute M.Sc.-2015
NoteDTU supervisor: Christian Probst, cwpr@dtu.dk, DTU Compute
Electronic version(s)[pdf]
Publication linkhttp://www.compute.dtu.dk/English.aspx
BibTeX data [bibtex]
IMM Group(s)Computer Science & Engineering