• Cite Icon109
  • https://doi.org/10.1145/1394608.1382145Copy DOI Icon

Atom-Aid

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
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.

Similar Papers
  • Conference Article
  • Citations36

A Heuristic Framework to Detect Concurrency Vulnerabilities

  • Dec 03, 2018
  • Changming Liu +4
  • Conference Article
  • Citations6

A non-blocking global virtual time algorithm with logarithmic number of memory operations

  • Oct 18, 2017
  • Mauro Ianni +3
  • Conference Article
  • Citations4

Optimizing the time cost of parallel structures by scheduling parallel processes to access the critical section

  • May 28, 1992
  • M.R Neilforoshan-Dardashti +2
  • Conference Article
  • Citations6

Dynamic SMP Clusters with Communication on the Fly in SoC Technology Applied for Medium-Grain Parallel Matrix Multiplication

  • Feb 01, 2007
  • M Tudruj +1
  • Research Article
  • Citations13

Dielectric relaxation and defect analysis of Ta2O5 thinfilms

  • May 04, 2000
  • Journal of Physics D: Applied Physics
  • S Ezhilvalavan +2
  • Conference Article
  • Citations151

Recording shared memory dependencies using strata

  • Oct 20, 2006
  • Satish Narayanasamy +2
  • Conference Article
  • Citations55

A work-stealing scheduler for X10's task parallelism with suspension

  • Feb 25, 2012
  • Olivier Tardieu +2
  • Conference Article
  • Citations8

Array operation synthesis to optimize HPF programs

  • Aug 12, 1996
  • Gwan-Hwan Hwang +2
  • Book Chapter

CHAPTER 4 - Processes, Shared Memory, and Simple Parallel Programs

  • Jan 01, 1989
  • Introduction to Parallel Programming
  • Steven Brawer
  • Conference Article

Some Improvements of the Parallel Karatsuba Algorithm: Student paper

  • Mar 01, 2020
  • Mirza Delibasic +3
  • Conference Article
  • Citations5

An algorithm for all-du-path testing coverage of shared memory parallel programs

  • Nov 17, 1997
  • C.-S.D Yang +1
  • Conference Article

Lock-Free Locks Revisited (Abstract)

  • Jun 17, 2024
  • Naama Ben-David +2
  • Conference Article
  • Citations27

The integration of application and system based metrics in a parallel program performance tool

  • Apr 01, 1991
  • Jeffrey K Hollingsworth +2
  • Conference Article
  • Citations6

Reducing Coherence Overhead of Barrier Synchronization in Software DSMs

  • Nov 07, 1998
  • Jae Bum Lee +1
  • Conference Article
  • Citations233

On-the-fly detection of data races for programs with nested fork-join parallelism

  • Jan 01, 1991
  • John Mellor-Crummey
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.