Safe Compiler-driven Transaction Checkpointing and Recovery

被引:0
|
作者
Sreeram, Jaswanth [1 ]
Pande, Santosh [2 ]
机构
[1] Intel Labs, Santa Clara, CA USA
[2] Georgia Inst Technol, Atlanta, GA 30332 USA
关键词
software transactional memory; checkpointing; continuations;
D O I
10.1145/2398857.2384620
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Several studies have shown that a large fraction of the work performed inside memory transactions in representative programs is wasted due to the transaction experiencing a conflict and aborting. Aborts inside long running transactions are especially influential to performance and the simplicity of the TM programming model (relative to using finegrained locking) in synchronizing large critical sections means that large transactions are common and this exacerbates the problem of wasted work. In this paper we present a practical transaction checkpoint and recovery scheme in which transactions that experience a conflict can restore their state (including the local context in which they were executing) to some dynamic program point before this access and begin execution from that point. This state saving and restoration is implemented by checkpoint operations that are generated by a compiler into the transactions body and are also optimized to reduce the amount of state that is saved and restored. We also describe a runtime system that manages these checkpointed states and orchestrates the restoration of the right checkpointed state for a conflict on a particular transactional access. Moreover the synthesis of these save & restore operations, their optimization and invocation at runtime are completely transparent to the programmer. We have implemented the checkpoint generation and optimization scheme in the LLVM compiler and runtime support for the TL2 STM system. Our experiments indicate that for many parallel programs using such checkpoint recovery schemes can result in upto several orders of magnitude reduction in number of aborts and significant execution time speedups relative to plain transactional programs for the same number of threads.
引用
收藏
页码:41 / 55
页数:15
相关论文
共 50 条
  • [1] A COMPILER-DRIVEN SUPERCOMPUTER
    KARPLUS, K
    NICOLAU, A
    APPLIED MATHEMATICS AND COMPUTATION, 1986, 20 (1-2) : 95 - 110
  • [2] Compiler-Driven FPGA Virtualization with SYNERGY
    Landgraf, Joshua
    Yang, Tiffany
    Lin, Will
    Rossbach, Christopher J.
    Schkufza, Eric
    COMMUNICATIONS OF THE ACM, 2024, 67 (08) : 134 - 142
  • [3] Compiler-Driven FPGA Virtualization with SYNERGY
    Landgraf, Joshua
    Yang, Tiffany
    Lin, Will
    Rossbach, Christopher J.
    Schkufza, Eric
    ASPLOS XXVI: TWENTY-SIXTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, 2021, : 818 - 831
  • [4] Compiler-Driven Simulation of Reconfigurable Hardware Accelerators
    Li, Zhijing
    Ye, Yuwei
    Neuendorffer, Stephen
    Sampson, Adrian
    2022 IEEE INTERNATIONAL SYMPOSIUM ON HIGH-PERFORMANCE COMPUTER ARCHITECTURE (HPCA 2022), 2022, : 619 - 632
  • [5] Compiler-Driven Dependence Profiling to Guide Program Parallelization
    Wu, Peng
    Kejariwal, Arun
    Cascaval, Calin
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, 2008, 5335 : 232 - +
  • [6] Compiler-Driven Data Layout Transformation for Heterogeneous Platforms
    Majeti, Deepak
    Barik, Rajkishore
    Zhao, Jisheng
    Grossman, Max
    Sarkar, Vivek
    EURO-PAR 2013: PARALLEL PROCESSING WORKSHOPS, 2014, 8374 : 188 - 197
  • [7] Compiler-Driven Error Analysis for Designing Approximate Accelerators
    Castro-Godinez, Jorge
    Esser, Sven
    Shafique, Muhammad
    Pagani, Santiago
    Henkel, Joerg
    PROCEEDINGS OF THE 2018 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION (DATE), 2018, : 1027 - 1032
  • [8] Compiler-driven leakage energy reduction in banked register files
    Atienza, David
    Raghavan, Praveen
    Ayala, Jose L.
    De Micheli, Giovanni
    Catthoor, Francky
    Verkest, Diederik
    Lopez-Vallejo, Marisa
    INTEGRATED CIRCUIT AND SYSTEM DESIGN: POWER AND TIMING MODELING, OPTIMIZATION AND SIMULATION, 2006, 4148 : 107 - 116
  • [9] Compiler-driven FPGA-area allocation for reconfigurable computing
    Panainte, Elena Moscu
    Bertels, Koen
    Vassiliadis, Stamatis
    2006 DESIGN AUTOMATION AND TEST IN EUROPE, VOLS 1-3, PROCEEDINGS, 2006, : 367 - +
  • [10] Compiler-Driven Software Speculation for Thread-Level Parallelism
    Yiapanis, Paraskevas
    Brown, Gavin
    Lujan, Mikel
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2016, 38 (02):