Mellanox Infiniband作为目前高性能计算(HPC)行业高速互联网络最主流的厂商和解决方案,在HPC领域应用极为广泛,不论从规模的可扩展性,还是不同性能要求的匹配性上,都有着较完善的解决方案。
一旦你选定了要使用Infiniband作为HPC集群的内部高速互联网络,Mellanox提供了一个简易的配置工具,帮助你快速形成Infiniband的拓扑结构:
Mellanox Infiniband Topology Generator
下面我们就以这个工具为核心,展开讲一下Infiniband的架构设计。
(根据个人经验和理解整理,如有错误,欢迎讨论指正!)
Infiniband(以下简称IB)常用的拓扑种类包括:
Fat tree(胖树):最主流的网络拓扑
2D mesh
3D mesh
2D/3D torus
由于Fat tree结构是传统HPC架构中最主流的网络拓扑结构,所以我们这里主要介绍Fat tree topology。Generator工具中另一种可选的Dragonfly架构,是一种节点间“完全互联”的拓扑结构(如下图),这在商业HPC中较为少见(本人也见识有限…)这里就不过多介绍了。
当然,如果集群规模小到一台IB交换机即可以满足端口数量需求,就不涉及拓扑结构了。但如果集群后期有扩建规划,建议最初设计网络架构过程中考虑后续扩容的方案。
Fat Tree的优势在于架构灵活,可以平衡性能和成本因素。
常见的设计可首先细分为无阻塞网络(non-blocking network)和阻塞网络(blocking network)。
无阻塞网络拓扑最大的特点就是流量平衡,即IB交换机上联和下联的端口数相同。下图是一个典型的无阻塞IB网络拓扑。其中
更多架构案例可以参考下图来源链接:
Designing an HPC Cluster with Mellanox InfiniBand Solutions
设想,当你有小于36台设备需要互联,你可以使用一台独立的36端口IB交换机即可;当你的互联设备超过了36台(比如在36~72之间),若仍需要实现non-blocking,你就需要使用上面图片里的方案,这样你需要采购的36端口交换机就由1台直接变为了6台(擦汗…)。
(当然你也可以选择端口更多的IB交换机,但这就涉及到了Mellanox产品线的问题,我们这里暂不考虑)
因此,对于小/中型规模HPC集群,考虑到无阻塞网络的性价比较低(成本高),通常我们会考虑阻塞网络(blocking network)。这里我们举两个栗子:
栗子1:48节点方案
很明显,这种架构会在两台交换机分别直连的设备产生网络通信时,性能无法像non-blocking一样完全没有阻塞。
这种架构的阻塞比(blocking ratio)为1:2。
栗子2:72节点方案
这种架构的阻塞比(blocking ratio)仍为1:2。
那么问题来了,既然blocking和non-blocking存在性能差异,那性能到底能差多少,应该怎么选?
答案你可能会似曾相识:看具体应用。
确实,网络拓扑由很多选择,non-blocking,blocking(75%,50%…),但具体选哪种还是取决于上层应用。对于网络带宽和网络延时很敏感的应用,non-blocking当然是优先的选择;但是,当考虑到性价比,并且上层多种应用特性不一的情况下,blocking架构还是很推荐的,所以还要取决于应用的benchmark和架构师的经验啦!
好了,今天就写这么多,下次我们重点来说下这个配置工具中不同的网络速率(FDR,EDR,HDR,etc.)
传送门:Mellanox Infiniband 架构设计快速实战指南 - B