Computer Laboratory

Technical reports

Resource-sensitive synchronisation inference by abduction

Matko Botinčan, Mike Dodds, Suresh Jagannathan

January 2012, 57 pages

Abstract

We present an analysis which takes as its input a sequential program, augmented with annotations indicating potential parallelization opportunities, and a sequential proof, written in separation logic, and produces a correctly-synchronized parallelized program and proof of that program. Unlike previous work, ours is not an independence analysis; we insert synchronization constructs to preserve relevant dependencies found in the sequential program that may otherwise be violated by a naïve translation. Separation logic allows us to parallelize fine-grained patterns of resource-usage, moving beyond straightforward points-to analysis.

Our analysis works by using the sequential proof to discover dependencies between different parts of the program. It leverages these discovered dependencies to guide the insertion of synchronization primitives into the parallelized program, and ensure that the resulting parallelized program satisfies the same specification as the original sequential program. Our analysis is built using frame inference and abduction, two techniques supported by an increasing number of separation logic tools.

Full text

PDF (0.5 MB)

BibTeX record

@TechReport{UCAM-CL-TR-808,
  author =	 {Botin{\v c}an, Matko and Dodds, Mike and Jagannathan,
          	  Suresh},
  title = 	 {{Resource-sensitive synchronisation inference by abduction}},
  year = 	 2012,
  month = 	 jan,
  url = 	 {http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-808.pdf},
  institution =  {University of Cambridge, Computer Laboratory},
  number = 	 {UCAM-CL-TR-808}
}