TY - GEN
T1 - Characterizing the Sharing Behavior of Applications Using Software Transactional Memory
AU - Pasqualin, Douglas Pereira
AU - Diener, Matthias
AU - Du Bois, André Rauber
AU - Pilla, Maurício Lima
N1 - Funding Information:
This study was financed in part by the Coordena¸cão de Aperfei¸coamento de Pessoal de Ńıvel Superior - Brasil (CAPES) - Finance Code 001 and PROCAD/LEAPaD.
Publisher Copyright:
© 2021, Springer Nature Switzerland AG.
PY - 2021
Y1 - 2021
N2 - Software Transactional Memory (STM) is an alternative abstraction for process synchronization in parallel programming. It is often easier to use than locks, avoiding issues such as deadlocks. In order to improve STM performance, many studies have been made on transactional schedulers. However, in current architectures with complex memories hierarchies, it is also important to map threads in such a way that threads that share data are executed close to each other in the memory hierarchy, such that they can access data protected by STM faster. For a successful thread mapping of an STM application, it is important to perform an in-depth analysis of its sharing behavior to determine its suitability for different mapping policies and the expected performance gains. This paper characterizes the sharing behavior of the STAMP benchmark suite by using information extracted from the STM runtime, providing information to guide thread mapping based on their sharing behavior. Our main findings are that most of the STAMP applications are suitable for a static thread mapping approach to improve the performance since (1) the applications do not present dynamic behavior and (2) the sharing pattern does not change between executions. Furthermore, we show that sharing information gathered from the STM runtime can be used to analyze and reduce false sharing in TM applications.
AB - Software Transactional Memory (STM) is an alternative abstraction for process synchronization in parallel programming. It is often easier to use than locks, avoiding issues such as deadlocks. In order to improve STM performance, many studies have been made on transactional schedulers. However, in current architectures with complex memories hierarchies, it is also important to map threads in such a way that threads that share data are executed close to each other in the memory hierarchy, such that they can access data protected by STM faster. For a successful thread mapping of an STM application, it is important to perform an in-depth analysis of its sharing behavior to determine its suitability for different mapping policies and the expected performance gains. This paper characterizes the sharing behavior of the STAMP benchmark suite by using information extracted from the STM runtime, providing information to guide thread mapping based on their sharing behavior. Our main findings are that most of the STAMP applications are suitable for a static thread mapping approach to improve the performance since (1) the applications do not present dynamic behavior and (2) the sharing pattern does not change between executions. Furthermore, we show that sharing information gathered from the STM runtime can be used to analyze and reduce false sharing in TM applications.
KW - Characterization
KW - Communication matrix
KW - Sharing behavior
KW - Software transactional memory
KW - STAMP
KW - Thread mapping
UR - http://www.scopus.com/inward/record.url?scp=85103275678&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85103275678&partnerID=8YFLogxK
U2 - 10.1007/978-3-030-71058-3_1
DO - 10.1007/978-3-030-71058-3_1
M3 - Conference contribution
AN - SCOPUS:85103275678
SN - 9783030710576
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 3
EP - 21
BT - Benchmarking, Measuring, and Optimizing - Third BenchCouncil International Symposium, Bench 2020, Revised Selected Papers
A2 - Wolf, Felix
A2 - Gao, Wanling
PB - Springer
T2 - 3rd BenchCouncil International Symposium on Benchmarking, Measuring, and Optimizing, Bench 2020
Y2 - 15 November 2020 through 16 November 2020
ER -