ProteusTM: Abstraction Meets Performance in Transactional Memory

The Transactional Memory (TM) paradigm promises to greatly simplify the development of concurrent applications. This led, over the years, to the creation of a plethora of TM implementations delivering wide ranges of performance across workloads. Yet, no universal implementation fits each and every workload. In fact, the best TM in a given workload can reveal to be disastrous for another one. This forces developers to face the complex task of tuning TM implementations, which significantly hampers their wide adoption. In this paper, we address the challenge of automatically identifying the best TM implementation for a given workload. Our proposed system, ProteusTM, hides behind the TM interface a large library of implementations. Underneath, it leverages a novel multi-dimensional online optimization scheme, combining two popular learning techniques: Collaborative Filtering and Bayesian Optimization. We integrated ProteusTM in GCC and demonstrate its ability to switch between TMs and adapt several configuration parameters (e.g., number of threads). We extensively evaluated ProteusTM, obtaining average performance < 3% from optimal, and gains up to 100× over static alternatives.

Présenté à:
21th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Atlanta, GA, April 2–6, 2016
ASPLOS, Atlanta, Georgia, USA, April 02 - 06, 2016
Apr 02 2016

 Notice créée le 2016-02-10, modifiée le 2019-04-16

Publisher's version:
Télécharger le document

Évaluer ce document:

Rate this document:
(Pas encore évalué)