提升多核集群上 MPI 应用程序性能
在多核集群环境下,提升 MPI 应用程序性能是一个重要的研究方向。本文将介绍一种通过优化进程排序和映射来提高 MPI 应用性能的方法,包括硬件信息收集、通信模式分析和使用 TreeMatch 算法进行图嵌入等关键步骤,并通过多个实验验证其有效性。
1. 核心思路与整体方法
为了将输入图映射到描述底层架构的图上,解决图嵌入问题,以最小化通信成本为优化目标。具体方法分为三步:
1. 收集硬件拓扑信息。
2. 获取应用程序的通信模式。
3. 使用定制算法解决图嵌入问题。
2. 硬件信息收集
收集硬件信息存在可移植性问题,因为需要适应各种不同的架构。目前没有标准工具来完成此任务,因此使用 Hwloc 库(版本 1.1.1)来获取硬件信息。该库提供了通用且可移植的接口,能帮助我们了解 NUMA 节点结构,如缓存层次、处理器数量、处理单元在插槽中的位置等。
- 具体操作步骤 :
1. 在每个多核节点上,一个进程提取硬件信息。
2. 全局根进程收集所有这些数据。
3. 由于 Hwloc 目前无法提供网络拓扑信息,将网络视为扁平结构,如同 MPI 模型。
4. 使用树结构来表示硬件信息,叶子节点代表处理单元。对于多核节点集群,在结构顶层添加一个新级别,包含代表各个 NUMA 节点的子树。
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
超级会员免费看
订阅专栏 解锁全文
115

被折叠的 条评论
为什么被折叠?



