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 条
  • [21] Transactional memory
    Grahn, Hakan
    [J]. JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2010, 70 (10) : 993 - 1008
  • [22] Transactional memory
    Larus, James
    Kozyrakis, Christos
    [J]. COMMUNICATIONS OF THE ACM, 2008, 51 (07) : 80 - 88
  • [23] HyflowCPP: A distributed transactional memory framework for C++
    Mishra, Sudhanshu
    Turcu, Alexandru
    Palmieri, Roberto
    Ravindran, Binoy
    [J]. Proceedings - IEEE 12th International Symposium on Network Computing and Applications, NCA 2013, 2013, : 219 - 226
  • [24] Transactional coherence and consistency: Simplifying parallel hardware and software
    Hammond, L
    Carlstrom, BD
    Wong, V
    Chen, M
    Kozyrakis, C
    Olukotun, K
    [J]. IEEE MICRO, 2004, 24 (06) : 92 - 103
  • [25] Software Support and Evaluation of Hardware Transactional Memory on Blue Gene/Q
    Wang, Amy
    Gaudet, Matthew
    Wu, Peng
    Ohmacht, Martin
    Amaral, Jose Nelson
    Barton, Christopher
    Silvera, Raul
    Michael, Maged M.
    [J]. IEEE TRANSACTIONS ON COMPUTERS, 2015, 64 (01) : 233 - 246
  • [26] Software Assisted Transact Cache to Support Efficient Unbounded Transactional Memory
    Wang, Shaogang
    Wu, Dan
    Pang, Zhengbin
    Yang, Xiaodong
    [J]. HPCC 2008: 10TH IEEE INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS, PROCEEDINGS, 2008, : 77 - 84
  • [27] Invyswell: A Hybrid Transactional Memory for Haswell's Restricted Transactional Memory
    Calciu, Irina
    Gottschlich, Justin
    Shpeisman, Tatiana
    Pokam, Gilles
    Herlihy, Maurice
    [J]. PROCEEDINGS OF THE 23RD INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES (PACT'14), 2014, : 187 - 199
  • [28] On Transactional Scheduling in Distributed Transactional Memory Systems
    Kim, Junwhan
    Ravindran, Binoy
    [J]. STABILIZATION, SAFETY, AND SECURITY OF DISTRIBUTED SYSTEMS, 2010, 6366 : 347 - 361
  • [29] Software transactional memory
    Shavit, N
    Touitou, D
    [J]. DISTRIBUTED COMPUTING, 1997, 10 (02) : 99 - 116
  • [30] Transactional memory today
    Computer Science Department, University of Rochester, NY, United States
    [J]. Bull. Eur. Assoc. Theor. Comput. Sci., 116