Memory Affinity for Hierarchical Shared Memory Multiprocessors - Ribeiro, Christiane Pousa; Mehaut, Jean-Francois; Carissimi, Alexandre; Castro, Marcio; Fernandes, Luiz Gustavo (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD); 2009: Anais do XXI International Symposium on Computer Architecture and High Performance Computing, 2009)
Currently, parallel platforms based on large scale hierarchical shared memory multiprocessors with Non-Uniform Memory Access (NUMA) are becoming a trend in scientific High Performance Computing (HPC). Due to their memory access constraints, these platforms require a very careful data distribution. Many solutions were proposed to resolve this issue. However, most of these solutions did not include optimizations for numerical scientific data (array data structures) and portability issues. Besides, these solutions provide a restrict set of memory policies to deal with data placement. In this paper, we describe an user-level interface named Memory Affinity interface (MAi), which allows memory affinity control on Linux based cache-coherent NUMA (ccNUMA) platforms. Its main goals are, fine data control, flexibility and portability. The performance of MAi is evaluated on three ccNUMA platforms using numerical scientific HPC applications, the NAS Parallel Benchmarks and a Geophysics application. The results show important gains (up to 31%) when compared to Linux default solution.