Improving the memory access locality of hybrid MPI applications

Improving the memory access locality of hybrid MPI applications
复制标题

改进混合 MPI 应用程序的内存访问局部性

DOI:
--
复制
发表时间:
2017
期刊:
EuroMPI/USA
影响因子:
--
通讯作者:
J. Freund
J. Freund
中科院分区:
--
文献类型:
--
作者:
M. Diener;Sam White;L. Kalé;M. T. Campbell;D. Bodony;J. Freund

文献摘要

被引文献

相似文献

保持内存访问局部性对于并行应用及其运行时环境仍然是一个挑战。通过利用局部性,可以提高应用性能、资源利用率和性能可移植性。主要挑战在于为使用共享内存编程模型进行节点内并行化的应用检测和解决内存局部性问题。在本文中,我们以两种不同的方式研究提高混合MPI + OpenMP应用的内存访问局部性,即通过手动修复其源代码中的局部性问题以及采用自适应MPI(AMPI)运行时环境。结果表明,AMPI可以实现与手动修改源代码类似的局部性改进,与未优化版本和纯MPI运行时相比,可带来显著的性能和可扩展性提升。与混合MPI + OpenMP基准相比,我们的优化在单个集群节点上使性能提高了1.8倍,在32个节点上提高了1.4倍,与在32个节点上的纯MPI执行相比,加速比为2.4倍。除性能外,我们还评估了内存局部性对节点内负载平衡的影响。
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.