2013
DOI: 10.1145/2491522.2491525
|View full text |Cite
|
Sign up to set email alerts
|

Proof-Directed Parallelization Synthesis by Separation Logic

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 a simple independence analysis that admits parallelization only when threads do not interfere; rather, we insert synchronization to preserve dependencies in the sequential program that might be… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2013
2013
2021
2021

Publication Types

Select...
3
2
1

Relationship

0
6

Authors

Journals

citations
Cited by 11 publications
(4 citation statements)
references
References 55 publications
0
4
0
Order By: Relevance
“…Program synthesis of parallel programs [8,48,52] often works by refining overly-coarse atomicity under programmer guidance, similar to the SOFRITAS approach. SOFRI-TAS's dynamic techniques scale to much larger programs, however, than synthesis currently supports.…”
Section: Optimizationsmentioning
confidence: 99%
“…Program synthesis of parallel programs [8,48,52] often works by refining overly-coarse atomicity under programmer guidance, similar to the SOFRITAS approach. SOFRI-TAS's dynamic techniques scale to much larger programs, however, than synthesis currently supports.…”
Section: Optimizationsmentioning
confidence: 99%
“…Botincan et al propose a proof-directed parallelization synthesis which takes as input a sequential program with a proof in separation logic and outputs a parallelized counterpart by inserting barrier synchronizations [8,9]. Hurlin uses a proof-rewriting method to parallelize a sequential program's proof [15].…”
Section: Related Workmentioning
confidence: 99%
“…A successful fixpoint calculation tells us that it is possible to partition the heap given the assignment of cut-points, but it does not tell us how we would partition (6). This is because, for instance, we may lose track of the predicate c 2 → as it will be disposed (Listing 1, line 19) during the course of fix-point calculation before we even access c 1 → for the first time. We can solve this issue by recording each heaplet at the time it gets first assigned a label.…”
Section: B Proving Communication-free Parallelismmentioning
confidence: 99%
“…Furthermore, determining disjointness in our tree-based benchmarks requires successive unrollings of loop iterations before disjointness can be established, which is not implemented in their technique. Finally, recent work by Botinčan et al [19] describes a technique for separation logic-based parallelization of software threads. Their work is interesting in that they automatically insert synchronization to preserve dependencies in addition to a dependence analysis.…”
Section: Related Workmentioning
confidence: 99%