Electrical Engineering
      and Computer Sciences

Electrical Engineering and Computer Sciences

COLLEGE OF ENGINEERING

UC Berkeley

Atomic Shelters: Coping with Multi-core Fallout

Zachary Ryan Anderson and David Gay

EECS Department
University of California, Berkeley
Technical Report No. UCB/EECS-2010-39
April 9, 2010

http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-39.pdf

In this paper we introduce a new method for pessimistically ensuring the atomicity of atomic sections. Similar to previous systems using locks, our system allows programmers to annotate the types of objects with the shelters---an alternative to locks inspired by the Jade programming language---that protect them, and indicate the sections of code to be executed atomically with atomic sections. A static analysis can then determine from which shelters protection is needed for the atomic sections to run atomically. Unlike previous systems, our shelter-based atomic sections are implemented such that they can provide atomicity and deadlock-freedom without the need for whole-program analyses or transactional memory, while imposing only a small annotation burden on the programmer and making only a straightforward change to the underlying type-system. We have implemented shelters-based atomic sections for C, and applied our implementation to 11 benchmarks totaling 100k lines of code including the STAMP benchmark suite, and three multithreaded programs. Our system's performance is competitive with both explicit locking and a mature software transactional memory implementation.


BibTeX citation:

@techreport{Anderson:EECS-2010-39,
    Author = {Anderson, Zachary Ryan and Gay, David},
    Title = {Atomic Shelters: Coping with Multi-core Fallout},
    Institution = {EECS Department, University of California, Berkeley},
    Year = {2010},
    Month = {Apr},
    URL = {http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-39.html},
    Number = {UCB/EECS-2010-39},
    Abstract = {In this paper we introduce a new method for pessimistically ensuring the atomicity of atomic sections. Similar to previous systems using locks, our system allows programmers to annotate the types of objects with the shelters---an alternative to locks inspired by the Jade programming language---that protect them, and indicate the sections of code to be executed atomically with atomic sections. A static analysis can then determine from which shelters protection is needed for the atomic sections to run atomically. Unlike previous systems, our shelter-based atomic sections are implemented such that they can provide atomicity and deadlock-freedom without the need for whole-program analyses or transactional memory, while imposing only a small annotation burden on the programmer and making only a straightforward change to the underlying type-system. We have implemented shelters-based atomic sections for C, and applied our implementation to 11 benchmarks totaling 100k lines of code including the STAMP benchmark suite, and three multithreaded programs. Our system's performance is competitive with both explicit locking and a mature software transactional memory implementation.}
}

EndNote citation:

%0 Report
%A Anderson, Zachary Ryan
%A Gay, David
%T Atomic Shelters: Coping with Multi-core Fallout
%I EECS Department, University of California, Berkeley
%D 2010
%8 April 9
%@ UCB/EECS-2010-39
%U http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-39.html
%F Anderson:EECS-2010-39