• DocumentCode
    2011034
  • Title

    Atom-Aid: Detecting and Surviving Atomicity Violations

  • Author

    Lucia, Brandon ; Devietti, Joseph ; Strauss, Karin ; Ceze, Luis

  • Author_Institution
    Comput. Sci. & Eng. Univ. of Washington, Seattle, WA
  • fYear
    2008
  • fDate
    21-25 June 2008
  • Firstpage
    277
  • Lastpage
    288
  • 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.
  • Keywords
    parallel programming; shared memory systems; software architecture; Apache; MySQL; andXMMS; atomicity violations; coarse grain; concurrency errors; explicit program annotations; memory accesses; memory ordering; shared-memory parallel programs; Computer architecture; Computer bugs; Computer errors; Concurrent computing; Counting circuits; Interleaved codes; Programming profession; Proposals; Writing; Yarn; bug; multiprocessors; parallel programming; software reliability;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Computer Architecture, 2008. ISCA '08. 35th International Symposium on
  • Conference_Location
    Beijing
  • ISSN
    1063-6897
  • Print_ISBN
    978-0-7695-3174-8
  • Type

    conf

  • DOI
    10.1109/ISCA.2008.4
  • Filename
    4556733