科技观察:神威·太湖之光超级计算机

按照我们最好的猜测,神威·太湖之光应该是PCI Express与InfiniBand混合的Fabric。

  前面说过,申威SW26010的外部接口只有两个:4个128bit数据宽度的DDR3内存接口和1个x8规格的PCI Express 3.0,其中,CPU内每个Core Group都具有一个独立的128bit内存控制器,它们具有独立的地址空间,因此和我们常用的多通道内存有所不同,如下图所示:

科技观察:神威·太湖之光超级计算机
一块节点主板插卡上具有两个节点,也就是具有两套CPU和内存,它们可以共享供电部分(可能还有水冷散热部分),其它都是各自独立的

  从节点主板上看,每一路内存上都具有9个芯片,因此这是一种ECC配置,话说,没有ECC的大型系统是很难以想象的。内存控制器的规格应该是DDR3-2133,位宽128bit,因此每一路的带宽为33.3GiB/s,每一个CPU,或节点的总带宽为133.2GiB/s(在文档中写为136.51GB/s)。内存芯片是固定在主板上的,每节点总容量为32GiB。从空间上看,要增加容量需要重新设计主板。

科技观察:神威·太湖之光超级计算机
每块插板具有四块插卡,其中插卡朝上,两块插卡朝下,每块插卡两个节点,因此每块插板就是8个节点

  从节点插卡和插板来看,它们没有外部设备,并且也都没有可以扩展CPU、内存的空间,也就是说,神威·太湖之光不仅仅CPU内部是固化的,节点、插板乃至插卡都是固化的,甚至机柜也是:

科技观察:神威·太湖之光超级计算机
Supernode,超级节点,由32块插板组成,一共是256个节点,Supernode具有互联逻辑上的实际含义,后面会提到

科技观察:神威·太湖之光超级计算机
一套机柜可以放置4个机箱——4个Supernode,也就是1024个节点,机柜只是一个安置上的划分,不是互联逻辑上的划分

  机柜也是独立设计的,可以说,这是一套和业界没有太多共性的系统,并且,所有部件都是固化的简化设计,唯一可以扩展的就是节点的数量。

科技观察:神威·太湖之光超级计算机

  层次架构如下:

科技观察:神威·太湖之光超级计算机
这个架构图质量不高,当然,文档也语焉不详

  因为神威·太湖之光的节点是固化不可扩展的,所以,其互联架构大概是最重要的但也是最语焉不详的部分,文档中粗略描述了系统的三个网络层次,但在图上,Storage Network并没有线条指示它们连接到哪里,并且,文档中有两处地方提到了使用的互联技术:一处写用的是PCI Express,一处描述了使用了Mellanox提供的HCA(Host Channel Adapter,主机通道适配器),然而Mellanox并不生产PCI Express交换机,它生产的是InfiniBand互联设备(同时,也能当作Ethernet设备使用)。根据我们最合理的猜测,它们都有用到,也就是,混用了PCI Express Fabric和InfiniBand Fabric

  在每个Supernode超级节点内使用的是PCI Express Fabric,之所以特地提到Fabric,是因为PCI Express传统上只是一种“Connect”(连接能力)而不是“Fabric”(网络架构),因为其缺乏主机外连接能力,以及多主机互联的机制。传统上,超级计算机使用的是InfiniBand,也有少量使用RDMA Ethernet的类型,它们都能提供Fabric的能力。

  PCI Express具有比较有限的多机互联能力,例如存储控制器中通常会用到PCI Express的NTB(Non-Transparent Brdiging,非透明桥)进行Active-Active高可用配置,这时,NTB将桥接两台主机的内存区域,并通过DMA进行数据传输,原则上,它和RDMA(Remote DMA,远程DMA)有些类似,困难来自于大规模的核心交换,原因在于一般的PCI Express DMA使用的是内存地址,导致其交换、路由不如InfiniBand和Ethernet简便。另一个问题在于PCI Express的交换机端口和带宽都受限制,目前,业界最先进的PCI Express交换机芯片具有96个可用PCIe Lanes,可以配置为最多48个端口,但此时每个端口仅为PCI Express 3.0 x2,也就是单向2GiB/s。显然,对于超级计算机来说,使用x8甚至x16的PCI Express端口是必须的,此时单个PCI Express交换芯片提供的交换端口仅为6到12,远小于InfiniBand和Ethernet。对于神威·太湖之光而言,由于CPU仅提供PCI Express 3.0 x8,因此对应每个PCI Express交换机芯片端口数量大概应该是12,因此,对应的一个比较合理的猜测是每一块具有8个节点的节点插板上部署一个PCI Express交换机芯片,然后在每一个机柜上进行类似ToR(Top of Rack,机架顶)的进一步级联

科技观察:神威·太湖之光超级计算机
PCI Express Fabric需要使用大量的设备,文档中提及太湖之光的“network diameter”是7,也就是至少也是8层设备级联,PCI Express Fabric应该部署在靠近计算节点的位置

  总体而言,要想使用PCI Express建立大规模的Fabric是可能的,PCI Express使用内存地址进行数据交换可以通过一些交换机具有的ID Routing特性来解决,而端口数量则只能靠使用大量的设备级联。某种意义上,市场上确实有可用的PCI Express Fabric方案,但会需要使用到大量的PCI Express交换机,相对这些困难而言,通过使用光纤或者主动铜缆解决PCI Express信号距离的问题完全不值一提。

科技观察:神威·太湖之光超级计算机
唯一确定提到PCI Express互联的地方,后面提及的Sunway Network增加了这个说法的可信度,因为如果没有用PCI Express Fabric而全部使用InfiniBand的话,就没必要起个新名字,至少原则上如此

  难度在于文档中几乎完全没有提及PCI Express Fabric的信息,包括厂商、规格、数量,等等等等。除此之外,由于Mellanox并没有PCI Express Fabric相关设备,因此,很可能在Storage Network上使用了Mellanox的InfiniBand方案,Mellanox的HCA卡也提供了Ethernet模式操作(以及听起来很怪但实际使用也不少的IPoIB——IP over InfiniBand模式)的能力,但我们认为,如果采用的话,应该就是InfiniBand模式。至于Central Switch Network,可能是PCI Express,也可能是InfiniBand,但在后面我们可以看到,它应该是InfiniBand。

  Central Switch Network接口速率上,从上图最后一句来看,有些像是最新的100Gb/s规格,但100Gb/s并不等于12GB/s,而且12GB/s本身也不清楚是单向还是双向带宽,再而且,前面说过,每一个申威SW26010对外仅为一个PCI Express 3.0 x8,也就是单向8GiB/s,双向16GiB/s,因此“Communication between nodes via MPI is at 12 GB/second...”要不是100Gb/s理论带宽的误读,要不就是PCI Express 3.0 x8的实测双向带宽,如此数值才能有比较合理的解释,而从1us的延迟来看,包含PCI Express Fabric在内的网络半径确实应该在7左右。

  在确定了每个节点的对外互联带宽为PCI Express 3.0 x8理论上的双向16GiB/s最后,我们可以算出神威·太湖之光的40,960个节点的总带宽应该是480TiB/s,与文档中的“70TB/s”带宽相差较远,因此这个带宽指的应该不是PCI Express Fabric,而应该是采用了InfiniBand的Central Switch Network,但此时并不清楚“70TB/s”的数字中是否包括了存储网络。70TB/s = 560Tb/s = 560,000Gb/s,假如对应160个Supermode,每个则是3500Gb/s,也就是说,每个Supernode的实际InfiniBand双向带宽是不高于3500Gb/s,单向带宽不高于1750Gb/s,按照笔者的猜测,有可能是采用了10块双端口100Gb/s的Mellanox ConnectX-4 InfiniBand HCA,分散连接于每个Supernode的多个PCI Express交换机芯片上。

科技观察:神威·太湖之光超级计算机
图中提到了太湖之光在Supernodes之间使用了InfiniBand做Interconnect,这应该是肯定了我们的猜想

  综上所述,神威·太湖之光的网络架构为PCI Express与InfiniBand混合:在256个节点组成的Supernode内部使用的是PCI Express Fabric,规格应该是PCI Express 3.0 x8,理论单向带宽8GiB/s,理论双向带宽16GiB/s;而在160个Supernode之间,使用的则是InfiniBand,速率规格应该是100Gb/s。外部存储网络也通过InfiniBand与中央网络连接。从搭配了Linux操作系统来看,它仍然属于多计算机组合而成的计算机集群系统,在每个节点上都需要运行一个OS,不同的节点OS之间通过MPI(MPI是一种并行计算中常用的消息通信API/机制)进行通信。

来源:ZDNetCBSi企业方案解决中心频道

0赞

好文章,需要你的鼓励

2016

06/23

12:59

分享

点赞

邮件订阅
白皮书