Mellanox Infiniband 架构设计快速实战指南 - A

Mellanox Infiniband作为目前高性能计算(HPC)行业高速互联网络最主流的厂商和解决方案,在HPC领域应用极为广泛,不论从规模的可扩展性,还是不同性能要求的匹配性上,都有着较完善的解决方案。
一旦你选定了要使用Infiniband作为HPC集群的内部高速互联网络,Mellanox提供了一个简易的配置工具,帮助你快速形成Infiniband的拓扑结构:
Mellanox Infiniband Topology Generator
下面我们就以这个工具为核心,展开讲一下Infiniband的架构设计。
(根据个人经验和理解整理,如有错误,欢迎讨论指正!)

1. 拓扑种类

Infiniband(以下简称IB)常用的拓扑种类包括:
Fat tree(胖树):最主流的网络拓扑
2D mesh
3D mesh
2D/3D torus

由于Fat tree结构是传统HPC架构中最主流的网络拓扑结构,所以我们这里主要介绍Fat tree topology。Generator工具中另一种可选的Dragonfly架构,是一种节点间“完全互联”的拓扑结构(如下图),这在商业HPC中较为少见(本人也见识有限…)这里就不过多介绍了。
Mellanox Infiniband 架构设计快速实战指南 - A
当然,如果集群规模小到一台IB交换机即可以满足端口数量需求,就不涉及拓扑结构了。但如果集群后期有扩建规划,建议最初设计网络架构过程中考虑后续扩容的方案。

Fat Tree Topology

Fat Tree的优势在于架构灵活,可以平衡性能成本因素。
常见的设计可首先细分为无阻塞网络(non-blocking network)阻塞网络(blocking network)

1. 无阻塞网络

无阻塞网络拓扑最大的特点就是流量平衡,即IB交换机上联和下联的端口数相同。下图是一个典型的无阻塞IB网络拓扑。其中

  • 每台IB交换机36端口;
  • 一层(L1,类似接入层)每台交换机18个端口下联到节点,18个端口上联到二层;
  • 二层(L2,类似汇聚层)36个端口均用来下联L1交换机;
  • L1 18个端口中,按9+9分别上联到两台L2交换机;
  • L2 36个端口中,相同的每个L1交换机9条上联占满36端口;
  • 总体上,这个架构可支持:4台L1 * 18端口/台 = 72台设备IB接入

更多架构案例可以参考下图来源链接:
Designing an HPC Cluster with Mellanox InfiniBand Solutions
Mellanox Infiniband 架构设计快速实战指南 - A

2. 阻塞网络

设想,当你有小于36台设备需要互联,你可以使用一*立的36端口IB交换机即可;当你的互联设备超过了36台(比如在36~72之间),若仍需要实现non-blocking,你就需要使用上面图片里的方案,这样你需要采购的36端口交换机就由1台直接变为了6台(擦汗…)。
(当然你也可以选择端口更多的IB交换机,但这就涉及到了Mellanox产品线的问题,我们这里暂不考虑)

因此,对于小/中型规模HPC集群,考虑到无阻塞网络的性价比较低(成本高),通常我们会考虑阻塞网络(blocking network)。这里我们举两个栗子:

栗子1:48节点方案

  • 当节点数在36~48节点之间
  • 使用2台36端口IB交换机
  • 每台交换机24端口下联到节点,两台之间互联12端口
  • 最多支持2 * 24 = 48端口设备互联

Mellanox Infiniband 架构设计快速实战指南 - A很明显,这种架构会在两台交换机分别直连的设备产生网络通信时,性能无法像non-blocking一样完全没有阻塞。
这种架构的阻塞比(blocking ratio)为1:2

栗子2:72节点方案

  • 当节点数在48~72节点之间
  • 使用5台36端口IB交换机
  • 每台交换机24端口下联到节点,12端口上联到两台L2交换机
  • 不同的是,12条上联先分别连到2台L2交换机(每台6条)
  • 最多支持3 * 24 = 72端口设备互联
  • 同时,两台L2 IB交换机可以起到高可用(HA)的作用

Mellanox Infiniband 架构设计快速实战指南 - A这种架构的阻塞比(blocking ratio)仍为1:2

那么问题来了,既然blocking和non-blocking存在性能差异,那性能到底能差多少,应该怎么选?
答案你可能会似曾相识:看具体应用。
确实,网络拓扑由很多选择,non-blocking,blocking(75%,50%…),但具体选哪种还是取决于上层应用。对于网络带宽和网络延时很敏感的应用,non-blocking当然是优先的选择;但是,当考虑到性价比,并且上层多种应用特性不一的情况下,blocking架构还是很推荐的,所以还要取决于应用的benchmark和架构师的经验啦????!

好了,今天就写这么多,下次我们重点来说下这个配置工具中不同的网络速率(FDR,EDR,HDR,etc.)