Evaluating CPU and Memory Affinity for Numerical Scientific Multithreaded Benchmarks on Multi-cores
Résumé
Modern multi-core platforms feature complex topologies with different cache levels and hierarchical memory subsystems. Consequently, thread and data placement become crucial to achieve good performance. In this context, CPU and memory affinity appear as a promising approach to match the application characteristics to the underlying architecture. In this paper, we evaluate CPU and memory affinity strategies for numerical scientific multithreaded benchmarks on multi-core platforms. We use and analyze hardware performance event counters in order to have a better understanding of such impact. Indeed, the results obtained on different multi-core platforms and Linux kernels show that important performance improvements (up to 70%) can be obtained when applying affinity strategies that fit both the application and the platform characteristics.