2012
DOI: 10.1145/2345156.2254114
|View full text |Cite
|
Sign up to set email alerts
|

Concurrent data representation synthesis

Abstract: We describe an approach for synthesizing data representations for concurrent programs. Our compiler takes as input a program written using concurrent relations and synthesizes a representation of the relations as sets of cooperating data structures as well as the placement and acquisition of locks to synchronize concurrent access to those data structures. The resulting code is correct by construction: individual relational operations are implemented correctly and the aggregate set of operations is serializable… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
18
0

Year Published

2013
2013
2019
2019

Publication Types

Select...
3
2
2

Relationship

4
3

Authors

Journals

citations
Cited by 15 publications
(18 citation statements)
references
References 21 publications
0
18
0
Order By: Relevance
“…We used the Graph benchmark [16] GossipRouter [6]. In these benchmarks, we compare the performance to coarse grained locking.…”
Section: Evaluating the Approach On Realistic Softwarementioning
confidence: 99%
See 2 more Smart Citations
“…We used the Graph benchmark [16] GossipRouter [6]. In these benchmarks, we compare the performance to coarse grained locking.…”
Section: Evaluating the Approach On Realistic Softwarementioning
confidence: 99%
“…In these benchmarks, we compare the performance to coarse grained locking. Graph This benchmark is based on a Java implementation of the Graph that has been used for the evaluation of [16]. The Graph consists of four composite operations: find successors, find predecessors, insert edge, and remove edge.…”
Section: Evaluating the Approach On Realistic Softwarementioning
confidence: 99%
See 1 more Smart Citation
“…This style of data organization is familiar from databases, and has been utilized by several recent works [26,27,51]. 2 The key advantage of the relational form is in abstracting data from its representation, which permits a clear, highlevel description of what guards and methods do.…”
Section: Preliminaries: Guards Methods and Relationsmentioning
confidence: 99%
“…We compare four implementations of this pattern: (i) an implementation which is based on a global lock; (ii) an implementation which is based on our approach; (iii) an implementation which is based on ConcurrentHashMapV8; (iv) an implementation which is based on hand-crafted fine-grained locking (we used lock stripping, similar to [16], with 32 locks; this is an attempt to estimate the benefits of manual hand-crafted synchronization w/o changing the underlying library). The computation was emulated by allocating a relatively-large Java object (∼ 128 bytes).…”
Section: Comparison To Hand-crafted Implementationsmentioning
confidence: 99%