Improving the memory access locality of hybrid MPI applications

European MPI Users' Group Meeting (EuroMPI) 2017
Pulication Type: Paper
Download: pdf ps

Abstract

Maintaining memory access locality is continuing to be a challenge for parallel applications and their runtime environments. By exploiting locality, application performance, resource usage, and performance portability can be improved. The main challenge is to detect and fix memory locality issues for applications that use shared-memory programming models for intra-node parallelization. In this paper, we investigate improving memory access locality of a hybrid MPI+OpenMP application in two different ways, by manually fixing locality issues in its source code and by employing the Adaptive MPI (AMPI) runtime environment. Results show that AMPI can result in similar locality improvements as manual source code changes, leading to substantial performance and scalability gains compared to the unoptimized version and to a pure MPI runtime. Compared to the hybrid MPI+OpenMP baseline, our optimizations improved performance by 1.8x on a single cluster node, and by 1.4x on 32 nodes, with a speedup of 2.4x compared to a pure MPI execution on 32 nodes. In addition to performance, we also evaluate the impact of memory locality on the load balance within a node.

Text Ref


						

BibTex

@inproceedings{Diener:2017:IMA:3127024.3127038,
 author = {Diener, Matthias and White, Sam and Kale, Laxmikant V. and Campbell, Michael and Bodony, Daniel J. and Freund, Jonathan B.},
 title = {Improving the Memory Access Locality of Hybrid MPI Applications},
 booktitle = {Proceedings of the 24th European MPI Users' Group Meeting},
 series = {EuroMPI '17},
 year = {2017},
 isbn = {978-1-4503-4849-2},
 location = {Chicago, Illinois},
 pages = {11:1--11:10},
 articleno = {11},
 numpages = {10},
 url = {http://doi.acm.org/10.1145/3127024.3127038},
 doi = {10.1145/3127024.3127038},
 acmid = {3127038},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {AMPI, MPI, OpenMp, hybrid applications, load balancing, memory access locality},
}