1. Dynamic transaction coalescing
- Author
-
Adrian Cristal, Vasileios Karakostas, Vladimir Gajinov, Vesna Smiljković, Srđan Stipić, Mateo Valero, Osman Unsal, Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors, and Universitat Politècnica de Catalunya. CAP - Grup de Computació d'Altes Prestacions
- Subjects
Profiling (computer programming) ,Low overhead ,Computer science ,Distributed computing ,Llenguatges de programació ,Parallel computing ,Programming languages (Electronic computers) ,Supercomputers ,Distributed transaction ,Software transactional memory ,Superordinadors ,Granularity ,Super (very large) computers ,Database transaction ,Informàtica::Arquitectura de computadors [Àrees temàtiques de la UPC] ,Compile time - Abstract
Prior work in Software Transactional Memory has identified high overheads related to starting and committing transactions that may degrade the application performance. To amortize these overheads, transaction coalescing techniques have been proposed that coalesce two or more small transactions into one large transaction. However, these techniques either coalesce transactions statically at compile time, or lack on-line profiling mechanisms that allow coalescing transactions dynamically. Thus, such approaches lead to sub-optimal execution or they may even degrade the performance. In this paper, we introduce Dynamic Transaction Coalescing (DTC), a compile-time and run-time technique that improves transactional throughput. DTC reduces the overheads of starting and committing a transaction. At compile-time, DTC generates several code paths with a different number of coalesced transactions. At runtime, DTC implements low overhead online profiling and dynamically selects the corresponding code path that improves throughput. Compared to coalescing transactions statically, DTC provides two main improvements. First, DTC implements online profiling which removes the dependency on a pre-compilation profiling step. Second, DTC dynamically selects the best transaction granularity to improve the transaction throughput taking into consideration the abort rate. We evaluate DTC using common TM benchmarks and micro-benchmarks. Our findings show that: (i) DTC performs like static transaction coalescing in the common case, (ii) DTC does not suffer from performance degradation, and (iii) DTC outperforms static transaction coalescing when an application exposes phased behavior.
- Published
- 2014
- Full Text
- View/download PDF