Rosetta:Cray的Slingshot Exascale时代互连背后的引擎

2020-05-06 12:02:48

随着HPC社区为艾级时代做准备,在过去的一年里,克雷从能源部获得了许多非常有价值的合同。克雷大获全胜,赢得了美国宣布的所有三台下一代亿级超级计算机-El Capitan、Frontier和Aurora。Aurora计划于2021年基于英特尔的蓝宝石Rapids Xeon CPU和Xe GPU,计划成为美国第一台亿级超级计算机。在奥罗拉之后不久,边疆也计划在2021年上映。这是一台基于AMD的1.5exaFLOPS超级计算机。最后,2022年底宣布的第三个系统是1.5exaFLOPS El Capitan。这三个系统的共同点是它们都基于克雷最新的Shasta计算机系统架构。

新的Shasta架构的核心是新的Slingshot互连。从技术上讲,这是Cray的第八个主要的高性能网络互连,并且已经进行了五年多的工作。Singshot与以前的互连不同之处在于它采用以太网作为基准互连。

Singshot实际上建立在标准以太网之上,这对Cray来说是第一次。但是有一个问题。以太网不太适合HPC工作负载。在它的问题中,它的同步机制较弱,报头较大,导致处理小数据包时效率低下。为了解决这些问题,克雷设计了一种名为“HPC以太网”的自定义互连。克雷认为,它为高度互操作的以太网标准带来了专有HPC网络的好处。但是不要搞错了,HPC以太网仍然是Cray专有的互连,但是它可以退回到标准以太网以提供对基于标准以太网的设备(例如,存储和网络连接加速器)的支持,这一点是额外的好处。换句话说,Slingshot交换机首先使用标准以太网协议运行,但当连接的设备支持高级“HPC以太网”功能时,它将尝试协商这些功能。这里的目的是允许高级HPC以太网功能在支持它的设备(例如,其他Slingshot交换机)的网络内工作,同时与不支持它的以太网设备完全互操作。稍后我们将更详细地介绍其中的一些新增功能,但最大的新增功能是引入了更好的特定于HPC的拥塞控制。

Cray使用Slingshot开关构建Slingshot互连。这些是64端口交换机。每个端口均为200 Gbps,使用四个56G PAM4通道。上图为集成网卡弹弓交换机。这一款是为进入沙斯塔比例优化柜而设计的。Cray还为使用商用机柜的Shasta系统提供标准机架安装1U盒形式的交换机。无论如何,功能都是相同的。区别纯粹在于包装。

借助Slingshot交换机,Cray可以使用蜻蜓拓扑构建大型系统。请注意,虽然这是Cray对其系统的首选拓扑,但Slingshot支持任何数量的拓扑,例如扁平的蝴蝶和胖树。弹弓可以很好地处理这些拓扑。蜻蜓拓扑的使用在很大程度上是出于成本考虑。它通过减少漫长的全球渠道来做到这一点。长光缆越少,系统就越便宜。克雷声称,系统中高达90%的电缆是廉价的铜缆,只有10%是光缆。

对于那些不熟悉蜻蜓拓扑的人来说,它是一个分层网络,有三个级别,分别称为系统、组和路由器。最低层是路由器。对于最大规模的系统,一台路由器连接到16个端点,剩下48个端口用于互联。中间一层是集团。一个组包含一组路由器。在最大规模的系统中,一个组将使用每台路由器的31个端口以全对全的方式完全连接32台路由器。这样,每台路由器剩下17个端口(总共544个),用于在全对全网络中全局连接系统级别的所有组。使用蜻蜓拓扑的Shasta系统总共有545个组,每个组32个路由器,可以扩展到279,040个端点,所有端点都只使用3个交换机-交换机跳的直径。换言之,从任何交换机到任何其他交换机的任何希望最多为3跳-组内的任何交换机都是一跳,而来自两个不同组的任何交换机都是一短跳、一长光跳,再是一短跳。

在Slingshot交换机的内部是Rosetta,这是Cray的定制HPC以太网ASIC交换机。Rosetta采用台积电的16 nm工艺,功耗高达250 W,与交换机本身一样,是一款64个200-Gbps端口的交换机。Rosetta使用了瓷砖架构。在下面的骰子图中,有64块瓷砖。芯片参数为32片,用于外围功能块,如串行驱动器、以太网查找功能、MAC/LLR/PCS。芯片中心内的32块瓷砖用于所有其他端口功能

每块瓷砖内都有16:8的横杆。在内部,交叉开关包括5个独立的交叉开关-传输请求、授权、请求队列信用、数据和端到端确认。该芯片依赖于虚拟输出队列体系结构,因此进入输入缓冲区的数据会一直保留在那里,直到准备好发送出去,从而克服了HOL阻塞。一旦报头到达,Rosetta就开始解析和处理报头。这与数据分离,以便它可以在数据可能仍在到达时开始处理。针对仲裁请求发出发送请求。一旦授权,就会发回授权,指示请求已被授权,并且输出缓冲区中已预留了足够的空间。一旦到达,数据就会发送到输出。还有一个额外的信用队列,确保始终有足够的空间让请求到达输出缓冲区。

我们提到过,Cray Slingshot实现了这个称为HPC以太网的新协议。该协议是克雷和一家据称制造直流开关的未披露公司共同努力的结果。我们认为是博通。HPC以太网是专门针对HPC性能和恢复能力优化的标准以太网协议的超集。在Cray系统内部和交换机内,所有数据包都是HPC以太网数据包,而与网络边缘设备的通信是您的标准以太网数据包。

它是“以太网友好的”,使数据包可以很容易地从一种形式转换成另一种形式。以太网的最小帧大小为64字节(18字节的报头+46字节的有效负载)。HPC以太网摆脱了这一限制,以40字节帧(或32字节加边带)为目标。它破坏了报头,使其尽可能小-减少了前同步码,删除了L2报头。他们还引入了基于信用的流量控制,旨在比现有机制更有效。为了帮助实现弹性,存在低等待时间的FEC、链路级重试以容忍瞬时错误(在CRC错误时在链路级重传),以及在通道故障(例如,激光器、引脚故障)时将下降(例如从四通道下降到三通道或者从三通道下降到两通道)的通道降级(例如,从四通道下降到三通道或者从三通道下降到两通道)。简单地说,他们实现了以太网协议的HPC化。在下面Cray绘制的消息大小与每秒可发送的百万个数据包的分析图中,很明显,与标准以太网相比,HPC以太网在小消息大小时效率更高,因为报头要小得多。HPC以太网正好可以与HDR Infiniband相媲美,HDR Infiniband是另一种非常好的HPC网络互连。

在克雷之前的互连中还存在着其他功能,这些功能也得到了增强。对于MPI和PGAS支持,自适应路由据说在规模上实现了90%的高利用率,而行为良好的流量则接近100%。支持细粒度数据包。这是因为支持的数据包少于64B。通常40B甚至32B具有用于各种网络相关数据的8B边带。Cray说,PUT和非FETCH原子内存操作(AMO)可以在每个链接的每个方向上支持每秒高达5亿次的引用,而GET和FETCH AMOS可以做大约3亿次。

Slingshot在服务质量方面的行为和能力也得到了极大的增强。Singshot引入了八个流量类别。这些都是完全可配置的类。它的设计允许许多具有不同网络特征的不同虚拟网络。例如,每个类都可以有一个可配置的优先级。还可以配置其排序。它们的最小和最大带宽约束(例如,保证最小带宽的25%)。下面的理想化演示说明了该行为。在左侧的图中,这两个作业属于相同的流量类别。一旦作业2开始工作,在作业1完成之前,每个作业都会获得一半的带宽,此时作业2会像作业1最初一样使用所有带宽。右边的图为两个作业分配了不同的流量类别,其中作业1的流量类别保证80%的流量,而作业2的流量类别保证10%的带宽。在这里,我们看到作业1至少获得80%,而作业2至少获得10%。剩余的带宽分布在中间的某个位置,因此最终作业2获得16%,作业1获得84%。

QoS很好,但现实世界的工作负载要复杂得多,通常共享相同的流量类别,争抢可用带宽。也许Slingshot最大的进步是先进的拥堵管理。根据克雷的说法,Slingshot知道系统中每对端点之间流动的内容。这使其能够非常快速地检测拥塞,特别是在出口端口。它与现有的基于ECN的机制非常不同,这些机制将拥塞信息发送回源。这更像是为e设置不同的虚拟车道