An extension for Transactional Memory in OpenMP
Resumo
The Transactional Memory model was proposed as a mechanism offering a higher-level programming interface to abstract some of the complexities associated with simultaneous access to shared data. Although modern tools for multithreaded programming offer resources, such as programming interface and scheduling facilities, for efficient hardware exploitation, the support for shared data synchronization still reflects classic critical section-based models. This work proposes an extension to the OpenMP, a de facto standard for multithread programming, offering the Transaction Memory model. Different from other approaches found in literature to extend OpenMP with Transaction Memory, we propose an interface that not only promotes the access to a Transaction Memory but also reflects the OpenMP programming style. A specification of the OpenMP extension is presented, and a prototype implementation is evaluated with the help of transactional memory tools in software: the TinySTM library and the TM support offered by the GNU C Compiler (GCC). The proposed interface and its prototype are presented, in the form of an intermediate language, Vanilla-TM, and the interface validation was performed based on the analysis of the results obtained. These results point to the viability of incorporate the proposed extension in an OpenMP dialect, as well as the analysis of the experiments allowed us to conclude that the policies applied for TM management are decisive for a good performance of the programs.
Palavras-chave:
OpenMP, Multithreaded Programming, Transactional Memory
Publicado
30/09/2021
Como Citar
JARDIM, Andre D.; OLIVEIRA, Kevin; CARDOSO, Diogo J.; DOMENICO, Daniel Di; DU BOIS, Andre R.; CAVALHEIRO, Gerson G. H..
An extension for Transactional Memory in OpenMP. In: SIMPÓSIO BRASILEIRO DE LINGUAGENS DE PROGRAMAÇÃO (SBLP), 25. , 2021, Joinville.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2021
.
p. 58–65.