混合OpenMP - MPI湍流边界层代码及CAF与MPI在流求解器中的应用
1. Blue Gene/P映射
在并行计算中,将虚拟进程映射到物理处理器是关键问题之一,合理的映射对现代超级计算系统实现可持续和可扩展的性能至关重要。
Blue Gene/P采用环面网络拓扑,但当分配的节点少于512个时,环面会退化为网格。每个节点通过直接链路与六个节点相连,节点在环面中的位置可用三个坐标[X, Y, Z]描述。
不同数量节点分配有预定义的MPI任务物理布局。512节点分区的预定义映射拓扑是[8, 8, 8],8192节点的是[8, 32, 32]。用户可通过环境变量 BG_MAPPING
并在文本文件中指定拓扑来设置所需的节点拓扑。
改变节点拓扑会改变图嵌入问题和MPI消息的传输路径,影响节点间连接的跳数,进而改变消息通信时间。针对特定问题进行微调可显著改善通信时间。以下是不同映射的通信时间对比:
| 拓扑 | 节点 | Comm BL1 | Comm BL2 |
| — | — | — | — |
| 预定义 [8, 8, 8] | 512 | 27.77 | — |
| 自定义 [32, 32, 8] | 8192 | 79.59 | 86.09 |
| 预定义 [32, 32, 8] | 8192 | 160.22 | 85.44 |
自定义映射将BL1的通信时间减少了一半。通过新的通信时间预测BL1的工作量,同时固定BL2的负载,通过最小化BL1或BL2在全局通信中的空闲时间来实现平衡。
对于特定问题,最优拓扑是使每个MPI组的跳数最小的