Transactional pointers: Experiences with HTM-based reference counting in C++

Maria Carpen-Amarie, Dave Dice, Gaël Thomas, Pascal Felber

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

The most popular programming languages, such as C++ or Java, have libraries and data structures designed to automatically address concurrency hazards in order to run on multiple threads. In particular, this trend has also been adopted in the memory management domain. However, automatic concurrent memory management also comes at a price, leading sometimes to noticeable overhead. In this paper, we experiment with C++ smart pointers and their automatic memorymanagement technique based on reference counting. More precisely, we study how we can use hardware transactional memory (HTM) to avoid costly and sometimes unnecessary atomic operations. Our results suggest that replacing the systematic counting strategy with HTM could improve application performance in certain scenarios, such as concurrent linked-list traversal.

Original languageEnglish
Title of host publicationNetworked Systems - 4th International Conference, NETYS 2016, Revised Selected Papers
EditorsCarole Delporte -Gallet, Parosh Aziz Abdulla
PublisherSpringer Verlag
Pages102-116
Number of pages15
ISBN (Print)9783319461397
DOIs
Publication statusPublished - 1 Jan 2016
Event4th International Conference on Networked Systems, NETYS 2016 - Marrakech, Morocco
Duration: 18 May 201620 May 2016

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume9944 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference4th International Conference on Networked Systems, NETYS 2016
Country/TerritoryMorocco
CityMarrakech
Period18/05/1620/05/16

Fingerprint

Dive into the research topics of 'Transactional pointers: Experiences with HTM-based reference counting in C++'. Together they form a unique fingerprint.

Cite this