2008
DOI: 10.1002/cpe.1336
|View full text |Cite
|
Sign up to set email alerts
|

Compiler and runtime techniques for software transactional memory optimization

Abstract: SUMMARYSoftware transactional memory (STM) systems are an attractive environment to evaluate optimistic concurrency. We describe our experience of supporting and optimizing an STM system at both the managed runtime and compiler levels. We describe the design policies of our STM system, and the statistics collected by the runtime to identify performance bottlenecks and guide tuning decisions. We present initial work on supporting automatic instrumentation of STM primitives for C/C++ and Java programs in the IBM… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
19
0

Year Published

2010
2010
2022
2022

Publication Types

Select...
4
3
1

Relationship

2
6

Authors

Journals

citations
Cited by 21 publications
(19 citation statements)
references
References 39 publications
(36 reference statements)
0
19
0
Order By: Relevance
“…When a transaction writes to a stack location or privately allocated memory that has not yet escaped the thread (i.e., a memory location that is not yet visible to other threads), the write does not induce any conflict. These contentionfree writes do not require write-barriers, but may need to be memory checkpointed if the system must recover the overwritten values upon a retry [9].…”
Section: Introductionmentioning
confidence: 99%
“…When a transaction writes to a stack location or privately allocated memory that has not yet escaped the thread (i.e., a memory location that is not yet visible to other threads), the write does not induce any conflict. These contentionfree writes do not require write-barriers, but may need to be memory checkpointed if the system must recover the overwritten values upon a retry [9].…”
Section: Introductionmentioning
confidence: 99%
“…Many optimizations have been proposed for compilers and runtime systems to reduce the overheads of STM read and write operations [Wang et al 2007;Wu et al 2009;Dragojevic et al 2009;Afek et al 2011]. Wang et al [2007] provide compiler optimizations for eliminating unnecessary read/write barriers (read after write barrier, barriers on local variables, etc.)…”
Section: Related Workmentioning
confidence: 99%
“…Until now researchers have been trying to decrease STM overheads by applying various compiler and runtime optimizations on read and write barriers [Wang et al 2007;Wu et al 2009;Dragojevic et al 2009;Afek et al 2011], or by accelerating some STM functionalities in hardware Saha et al 2006;Minh et al 2007;Shriraman et al 2007]. In our work, we follow a different approach and focus on reducing the overheads of starting and committing transactions.…”
Section: Introductionmentioning
confidence: 98%
“…We chose not to apply lock elision to synchronized blocks with writes to local variables that are live at the beginning of the critical section, because otherwise we would need to keep and restore the values that has been kept in such local variables before executing the critical section if the speculative execution of the critical section fails to complete [17]. Although we do not explicitly forbid readonly synchronized blocks from creating new objects by using the new construct, object creation rarely occurs in read-only synchronized blocks because they involve the invocation of constructors where writes to instance variables typically occur.…”
Section: Lock Elision For Read-only Critical Sectionsmentioning
confidence: 99%