![]() |
|||||||
|
|||||||
adaptSTM - An Online Fine-grained Adaptive STM System
Reference: Mathias Payer and Thomas Gross: adaptSTM - An Online Fine-grained Adaptive STM System
Abstract: Transactional memory (TM) is an attractive platform for parallel programs, and several software transactional memory (STM) designs have been presented. Here we explore several optimization opportunities to adapt to the running program and to adapt parameters that are optimized for the average case. Depending on the program the transactional load can vary per thread (e.g., client/server threads), or the program uses multiple phases of computation with different transactional loads. Therefore it is important that the STM adapts to the current situation, and that the adaptation process is short, efficient, and thread-local.
We present adaptSTM, a competitive, word-based STM library that is based on a global clock and an array of combined global versions (timestamps) and locks. To keep track of transactional data adaptSTM implements a multi-level buffer and uses read-set extension to achieve competitive performance.
The fine-grained adaptation system measures important runtime parameters like read- and write-locations, commit-, and abort-rate, and is able to adapt important parameters like write-set hash-size, hash function, and write strategy based on runtime statistics on a per-thread basis. Using the STAMP benchmarks, adaptSTM is compared against two other STM libraries, TL2 and tinySTM.
adaptSTM outperforms TL2 for all benchmarks except SSCA2, and offers performance that is competitive with tinySTM for low-contention benchmarks; for high-contention benchmarks adaptSTM outperforms tinySTM. Comparing adaptSTM to TL2 results in an average speedup of 43% for 8 threads and 137% for 16 threads. The speedup results from the read-set extension, several non-adaptive optimizations and the fine-grained adaptation system. Adaptation alone increases performance on average by 4.33% for 16 threads, and up to 10% for individual benchmarks, compared to adaptSTM without active adaptation.
Links:
Bibtex: @techreport{adaptSTM,
|
|||||||