Simplifying Transactional Memory Support in C plus

被引:8
|
作者
Zardoshti, Pantea [1 ,3 ]
Zhou, Tingzhe [1 ,3 ]
Balaji, Pavithra [1 ,3 ]
Scott, Michael L. [2 ]
Spear, Michael [1 ,3 ]
机构
[1] Lehigh Univ, Bethlehem, PA 18015 USA
[2] Univ Rochester, Comp Sci Dept, 3401 Wegmans Hall, Rochester, NY 14627 USA
[3] Bldg C,113 Res Dr,Lehigh Mountaintop Campus, Bethlehem, PA 18015 USA
关键词
Transactional memory; LLVM; C plus; synchronization;
D O I
10.1145/3328796
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
C++ has supported a provisional version of Transactional Memory (TM) since 2015, via a technical specification. However, TM has not seen widespread adoption, and compiler vendors have been slow to implement the technical specification. We conjecture that the proposed TM support is too difficult for programmers to use, too complex for compiler designers to implement and verify, and not industry-proven enough to justify final standardization in its current form. To address these problems, we present a different design for supporting TM in C++. By forbidding explicit self-abort, and by introducing an executor-based mechanism for running transactions, our approach makes it easier for developers to get code up and running with TM. Our proposal should also be appealing to compiler developers, as it allows a spectrum of levels of support for TM, with varying performance, and varying reliance on hardware TM support in order to provide scalability. While our design does not enable some of the optimizations admitted by the current technical specification, we show that it enables the implementation of robust support for TM in a small, orthogonal compiler extension. Our implementation is able to handle a wide range of transactional programs, delivering low instrumentation overhead and scalability and performance on par with the current state of the art. Based on this experience, we believe our approach to be a viable means of reinvigorating the standardization of TM in C++.
引用
收藏
页数:24
相关论文
共 50 条
  • [31] Liveness in transactional memory
    EPFL, IC, LPD, Lausanne, Switzerland
    [J]. Lect. Notes Comput. Sci., (32-49):
  • [32] Virtualizing transactional memory
    Rajwar, R
    Herlihy, M
    Lai, K
    [J]. 32nd International Symposium on Computer Architecture, Proceedings, 2005, : 494 - 505
  • [33] Transactional Memory Today
    Scott, Michael
    [J]. BULLETIN OF THE EUROPEAN ASSOCIATION FOR THEORETICAL COMPUTER SCIENCE, 2015, (116): : 99 - 109
  • [34] Visualizing Transactional Memory
    Gottschlich, Justin E.
    Herlihy, Maurice P.
    Pokam, Gilles A.
    Siek, Jeremy G.
    [J]. PROCEEDINGS OF THE 21ST INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES (PACT'12), 2012, : 159 - 170
  • [35] Software transactional memory
    Nir Shavit
    Dan Touitou
    [J]. Distributed Computing, 1997, 10 : 99 - 116
  • [36] Transactional Memory Today
    Herlihy, Maurice
    [J]. DISTRIBUTED COMPUTING AND INTERNET TECHNOLOGY, PROCEEDINGS, 2010, 5966 : 1 - 12
  • [37] Transactional memory system
    Peng, Lin
    Xie, Lunguo
    Zhang, Xiaoqiang
    [J]. Jisuanji Yanjiu yu Fazhan/Computer Research and Development, 2009, 46 (08): : 1386 - 1398
  • [38] Configurable transactional memory
    Kachris, Christoforos
    Kulkarni, Chidarriber
    [J]. FCCM 2007: 15TH ANNUAL IEEE SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES, PROCEEDINGS, 2007, : 65 - +
  • [39] Unbounded transactional memory
    Ananian, CS
    Asanovic, K
    Kuszmaul, BC
    Leiserson, CE
    Lie, S
    [J]. 11TH INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE COMPUTER ARCHITECTURE, PROCEEDINGS, 2005, : 316 - 327
  • [40] Stretching Transactional Memory
    Dragojevic, Aleksandar
    Guerraoui, Rachid
    Kapalka, Michal
    [J]. PLDI'09 PROCEEDINGS OF THE 2009 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2009, : 155 - 165