Online Sharing-Aware Thread Mapping in Software Transactional Memory

  • Douglas Pereira Pasqualin UFPel
  • Matthias Diener University of Illinois at Urbana-Champaign
  • André Rauber Du Bois UFPel
  • Maurício Lima Pilla UFPel

Resumo


Software Transactional Memory (STM) is an alternative abstraction to synchronize processes in parallel programming. One advantage is simplicity since it is possible to replace the use of explicit locks with atomic blocks. Regarding STM performance, many studies already have been made focusing on reducing the number of aborts. However, in current multicore architectures with complex memory hierarchies, it is also important to consider where the memory of a program is allocated and how it is accessed. This paper proposes the use of a technique called sharing-aware mapping, which maps threads to cores of an application based on their memory access behavior, to achieve better performance in STM systems. We introduce STMap, an online, low overhead mechanism to detect the sharing behavior and perform the mapping directly inside the STM library, by tracking and analyzing how threads perform STM operations. In experiments with the STAMP benchmark suite and synthetic benchmarks, STMap shows performance gains of up to 77% on a Xeon system (17.5% on average) and 85% on an Opteron system (9.1% on average), compared to the Linux scheduler.
Palavras-chave: Instruction sets, Message systems, Multicore processing, Software, Synchronization, Runtime, Linux, Software Transactional Memory, Thread Mapping, Sharing-aware, Multicore
Publicado
08/09/2020
PASQUALIN, Douglas Pereira; DIENER, Matthias; DU BOIS, André Rauber; PILLA, Maurício Lima. Online Sharing-Aware Thread Mapping in Software Transactional Memory. In: INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD), 32. , 2020, Porto/Portugal. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 . p. 35-42.