ACM Home Page
Please provide us with feedback. Feedback
Atom-Aid: Detecting and Surviving Atomicity Violations
Full text PdfPdf (589 KB)
Source
ACM SIGARCH Computer Architecture News archive
Volume 36 ,  Issue 3  (June 2008) table of contents
Pages 277-288  
Year of Publication: 2008
ISSN:0163-5964
Also published in ...
Authors
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 131,   Downloads (12 Months): 249,   Citation Count: 6
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1394608.1382145
What is a DOI?

ABSTRACT

Writing shared-memory parallel programs is error-prone. Among the concurrency errors that programmers often face are atomicity violations, which are especially challenging. They happen when programmers make incorrect assumptions about atomicity and fail to enclose memory accesses that should occur atomically inside the same critical section. If these accesses happen to be interleaved with conflicting accesses from different threads, the program might behave incorrectly. Recent architectural proposals arbitrarily group consecutive dynamic memory operations into atomic blocks to enforce memory ordering at a coarse grain. This provides what we call implicit atomicity, as the atomic blocks are not derived from explicit program annotations. In this paper, we make the fundamental observation that implicit atomicity probabilistically hides atomicity violations by reducing the number of interleaving opportunities between memory operations. We then propose Atom-Aid, which creates implicit atomic blocks intelligently instead of arbitrarily, dramatically reducing the probability that atomicity violations will manifest themselves. Atom-Aid is also able to report where atomicity violations might exist in the code, providing resilience and debuggability. We evaluate Atom-Aid using buggy code from applications including Apache, MySQL, and XMMS, showing that Atom-Aid virtually eliminates the manifestation of atomicity violations.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Sun slots transactional memory into Rock. http://www. theregister.co.uk/2007/08/21/sun_transactional_ memory-rock/.
2
 
3
C. Blundell, E. Lewis, and M. Martin. Deconstructing Transactional Semantics: The Subtleties of Atomicity. In Workshop on Duplicating, Deconstructing, and Debunking, 2005.
4
5
6
 
7
P. Charles, C. Donawa, K. Ebcioglu, C. Grothoff, A. Kielstra, C. von Praun, V. Saraswat, and V. Sarkar. X10: An Object-Oriented Approach to Non-Uniform Cluster Computing. In International Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2003.
8
9
10
11
12
13
14
15
16
17
 
18
K. Moore, J. Bobba, M. J. Moravam, M. Hill, and D. Wood. LogTM: Log-based Transactional Memory. In International Symposium on High-Performance Computer Architecture, 2006.
19
20
21
22
 
23
24
25
 
26
E. Vallejo, M. Galluzzi, A. Cristal, F. Vallejo, R. Beivide, P. Stenstrom, J. E. Smith, and M. Valero. Implementing Kilo-Instruction Multiprocessors. In International Conference on Pervasive Services, 2005.
27
28
29
30
 
31


Collaborative Colleagues:
Brandon Lucia: colleagues
Joseph Devietti: colleagues
Karin Strauss: colleagues
Luis Ceze: colleagues