Automatic Skleton-Driven Memory Affinity for Transactional Worklist Applications

Résumé : Memory affinity has become a key element to achieve scalable performance on multi-core platforms. Mechanisms such as thread scheduling, page allocation and cache prefetching are commonly employed to enhance memory affinity which keeps data close to the cores that access it. In particular, software transactional memory (STM) applications exhibit irregular memory access behavior that makes harder to determine which and when data will be needed by each core. Additionally, existing STM runtime systems are decoupled from issues such as thread and memory management. In this paper, we thus propose a skeleton-driven mechanism to improve memory affinity on STM applications that fit the worklist pattern employing a two-level approach. First, it addresses memory affinity in the DRAM level by automatic selecting page allocation policies. Then it employs data prefetching helper threads to improve affinity in the cache level. It relies on a skeleton framework to exploit the application pattern in order to provide automatic memory page allocation and cache prefetching. Our experimental results on the STAMP benchmark suite show that our proposed mechanism can achieve performance improvements of up to 46 %, with an average of 11 %, over a baseline version on two NUMA multi-core machines.
Complete list of metadatas

https://hal.inria.fr/hal-00953110
Contributor : Gwenaël Delaval <>
Submitted on : Friday, February 28, 2014 - 10:41:19 AM
Last modification on : Monday, July 8, 2019 - 3:08:49 PM

Links full text

Identifiers

Citation

Luís Fabrício Góes, Christiane Pousa Ribeiro, Marcio Bastos Castro, Jean-François Mehaut, Murray Cole, et al.. Automatic Skleton-Driven Memory Affinity for Transactional Worklist Applications. International Journal of Parallel Programming (IJPP), Springer, 2014, 42 (2), pp.365-382. ⟨10.1007/s10766-013-0253-x⟩. ⟨hal-00953110⟩

Share

Metrics

Record views

472