切香肠、切蛋糕、切计算域

多节点并行计算需要将计算域分解到具体的每个节点上的每个CPU核心,计算域划分的算法可以很简单,比如等分;不规则计算域往往采用较复杂的算法,比如scotch和metis较为常用,使得每份的网格数量相近,且区域之间的界面网格较少,以实现负载均衡和通信优化。

进一步考虑到计算机机群的拓扑,问题将更加复杂。不同CPU核心可能位于不同的numa节点,甚至是不同的物理节点,因而不同CPU核心间的通信能力有显著差异,同一块CPU上的核心之间,通信延迟低、带宽高,而位于不同节点的核心,通信需要经过PCIe控制器和网络控制器,延迟高、带宽低。实践经验也表明,跨节点通信往往制约计算效率,这一点被李东岳老师反复强调,提出了针对性的硬件优化方案。效率的短板往往导致规模的上限,笔者使用过的一些超算机群,调用4个节点往往就达到了最大算力,继续提高节点数量,通信瓶颈导致性能不升反降。

在硬件选型的基础上,浙江大学提出一项专利技术,同时优化计算机集群的网络拓扑和计算域的划分方式。各台计算机采用infiniband等高性能网络协议,且不依赖于传统的交换机网络,而是将各个节点以菊花链或者环形拓扑的方式连接起来。相应地,计算域也采用切香肠或者切蛋糕的方式,只有相邻两个计算域之间有通信,确保没有通信流量需要跨节点进行。这种网络拓扑允许一般的计算域划分方式,也能够跨节点通信,只是采用特定的计算域划分方式,能够实现最佳效率。

相关专利:
https://patents.google.com/patent/US12284051B1/en?oq=US+12%2c284%2c051+B1

常恭

作者: 常恭

略懂 OpenFOAM

发表回复