专栏首页数据魔术师天河二号深度解密,你值得拥有

天河二号深度解密,你值得拥有

相信很多人都听说过中国的天河二号,也知道这个庞然大物曾经连续六年登顶超级计算机排行榜,但是大多数人的认知,可能就停留在天河二号的外壳上,也就是大家经常看到的这样一张图。

但是对于一些求知欲比较强的小伙伴来说,肯定是不满足于此。

为什么天河二号能够实现如此大的运算性能?

它里面的构造跟普通的PC机有什么不一样?

我们用很多个PC机可以堆砌出这样的效果吗?

那么今天,我们就来从微观到宏观,了解一下天河二号里面的构造。

01.概述

天河二号,是由中国国防科大(NUDT)开发的一套计算机系统,现如今在国家超级计算广州中心之中,由中山大学数据科学与计算机学院代为管理。

在2017年第三届国际高性能计算论坛中,广州超算中心团队发表了一个对天河二号系统的升级设想。在该设想中,计算节点的至强融核协处理器(Intel Xeon Phi Knights Corner, KNC)将替换成自主研发的迈创2000(Matrix-2000),对网络连接进行优化,对内存进行扩展,对机柜的规模进行扩增。这些设想都已经在2017年11月完成。

以下的部分主要针对升级之后的TianHe-2A系统。

02.迈创2000协处理器

首先介绍迈创2000协处理器。

原天河二号系统上,每个计算节点配有3个Intel KNC协处理器,而设想替换掉Intel KNC协处理器的这款迈创2000协处理器,是一款中国拥有自主产权的协处理器,由国防科技大学研发。

每一个迈创2000拥有128个计算核心,计算频率为1.2GHz,理论峰值性能为2.4576Tflop/s,峰值功率为240w,大小为66mm×66mm。

迈创2000(以下简称MT2000),有8个DDR4内存通道和一个x16 PCIE 3.0终端接口。计算核心使用的是精简指令集(RISC),每个计算核心在一个计算周期能够进行16次双精度的运算,总的运算性能为128*16*1.2G = 2.4576Tflop/s。整个MT2000共配备有内存64GB。

MT2000的128个计算核心分为4个超级节点,每个超级节点包含32个计算核心,每个超级节点之间通过可扩展片上网络(scalable on-chip communication network)进行通信。

在超级节点中,节点被分为4*2个簇,每个簇有4个核、一个目录控制模块(DCU),簇与簇之间通过路由器进行连接。每个路由器有4个128位物理信道用来保持缓存一致性,分别是

1) request

2)response

3)snoop

4)acknowledge

超级节点之间的通信通过快速传输连接端口(Fast Interconnect Transport, FIT)完成。每个超级节点都有三个FIT,分别跟另外三个超级节点相连。每个FIT拥有25.6GB/s的双向传输速率,往返延迟不超过20ns,采取CRC(Cyclic redundancy check)进行可靠数据传输,并采取DMA(Direct memory access)技术提高带宽利用率达93.8%。

03.计算刀片

接下来我们介绍计算刀片。天河二号的节点是以两两为一组的形式集结在一个刀片上的,一个刀片上拥有数个处理器和协处理器,共同组成计算节点。

在旧版的天河二号上,一个计算节点的组成为2个Intel Ivy Bridge CPUs和3个Intel Xeon Phi KNC Accelerator。在新的天河二号系统TianHe-2A上,KNC协处理器被替换成了自产的MT2000,每个计算节点上拥有2个Intel Ivy Bridge CPUs和2个MT2000。

每个Intel Ivy Bridge CPU拥有12个计算核心,32GB内存,每个计算核心能在每个时钟周期完成8次Flop/s,因此单个CPU峰值性能为12*8*2.2 G=211.2G Flop/s。

每个MT2000的峰值性能为2.4576TGFlop/s,每个CPU峰值性能为0.2112TGFlop/s,每个节点有2个MT2000和2个Ivy Bridge CPU,因此单节点峰值性能为5.3376T Flop/s。

一个计算节点内部的结构如上图所示。两个CPU之间通过两个QPI(Intel Quick Path Interconnects)进行连接,每个CPU都拥有8个DIMM(dual in-line memory)插槽。CPU与MT2000通过16x PCIE 3.0进行连接。其中一个CPU通过PCH(Intel Platform Controller)芯片扩展I/O设备,并通过16X PCIE 3.0连接到一个自产的NIC(Network Interface Controller)。每个CPU配备32G内存,每个MT2000配备内存64GB,一个计算节点总计配备了2*(32+64) = 192GB内存。

04.互联网络

天河二号的内部计算节点的高速互连网络是自主研发的,通过两个面向应用的集成电路实现:NIC和NRC(Network router chip)。NIC和NRC都针对带宽、延迟、可靠性和稳定性进行了优化,使得链路速率高达14Gbps。

NIC实现了拥有自主产权的MP/BLT(Mini-Packet/Block Transfer),提供了高性能网络的接口,包含一个x16 PCIE 3.0接口,通过电缆和网络端口互相连接。每个网络端口都包含一个8通道的串并转换接口来提高传输速率。

NRC通过24个网络端口进行数据交换,每个网络端口都拥有一个包含8通道14Gbps的串并转换接口,双向的传输带宽达到了224Gbps,一个NRC的总吞吐量达到了5.37Tbps。

天河二号系统使用分层网络进行互联。

32个计算节点构成一个计算帧(compute frame),计算帧之中的节点通过一个32×32的交换板进行通信。

4个计算帧构成一个计算机架(compute rack),计算机架通过24个顶级的交换机进行通信,每个交换机有576个端口,计算机架与交换机通过有源光缆进行连接。

此外,TianHe-2A系统结合了带内管理(in-band)和带外管理(out-of-band)来提升远程访问服务(Remote Access Service, RAS)的性能。通过带内管理能够获取路由追踪,链路测试,故障报告和拓扑结构发现等功能,通过集成电路总线接口(IIC bus interface)能够获取芯片配置和状态查询功能。上述功能使天河系统实现了实时与历史信息溯源,故障定位、诊断与恢复。

05.系统布局

天河二号一共有168个机柜,其中有139个为计算机柜(compute cabinets),4个离子柜,24个通信柜,一个空柜。大致的布局如下图所示。

06.软件栈

天河二号要用上自主研发的MT2000,不仅仅要开发硬件,也需要开发能够在MT2000上运作的软件栈。

天河二号团队开发出了一套适用于MT2000的软件栈,底层的os是一个轻量级Linux-based操作系统,并在里面嵌入了协处理器驱动,通过PCIE连接为CPU提供设备资源管理和数据传输。该os通过一个精心设计的线程池来实现计算核心的高效管理,尽量提高任务的性能并降低损耗。

往上一层上是对称通信库,提供了处理器之间的对称数据传输,主要的函数接口包括:

1) Connection(在不同节点的处理器之间建立socket-like连接)

2) Messaging(交换短小、延迟敏感的信息,例如命令或者同步操作)

3) RMA操作(提供大量数据的单向传输,为带宽敏感任务提供了优化操作)

再往上一层是混合运算库,主要用来提供高层级API如OpenMP,OpenCL的运行时环境。提供包括设备管理,远程数据管理,任务卸载管理等混合计算API。

07.性能测试

高性能线性测试标准(High Performance LINPACK benchmark, HPL),是国际上最流行的用于测试高性能计算机系统浮点性能的 benchmark。在TianHe-2A的4096个节点上运行了该测试,结果如下图:

随着计算节点的增加,实际的性能 TFLOPS 逐渐攀升,但是利用率也逐渐下降,这是由于节点的增多导致通信同步的消耗增加,导致额外的损耗的产生。最后在4096个节点上产生了13.987Pflop/s的实际性能,而理论上4096个节点的峰值性能为21.86PFlop/s,因此性能利用率为63.98%。

08.总结

在2015年2月,美国贸易部禁止 Intel 向天河二号提供新的芯片,贸易部提出,这是出于对运作在天河二号的核研究的担忧。在此之前,天河二号的主要芯片都来自于 Intel 厂商。为了对 TianHe-2 系统进行升级,广州超算中心提出自主研发协处理器,并把 TianHe-2A 上的 Intel 处理器全都替换成自产的 MT2000。

在美国的禁令发布之后,国防科大只用了两年的时间,就自主研制了性能与Intel KNC协处理器相近的MT2000,并且开发出与与MT2000相适应的软件栈,实属不易。

在用国产加速器MT2000替换了Intel KNC加速器之后,天河系统的性能翻了一翻,理论峰值性能从原来的54.9Pflop/s升级到94.97Pflop/s。此外,此次升级,天河二号的网络结构也从原来的10Gbps升级到了14Gbps,延迟从1.57us降至1us,内存容量从1.4PB升级到了3.4PB,存储容量从12.4PB升级到了19PB,带宽翻倍到1TB/s,而功耗则从17.8MW降至16.9MW,能效较之前大幅提升。

我国的超级计算机发展速度不可谓不令人钦佩,近三十年,我国的超算水平已经居于全球领先水平,天河二号与神威·太湖之光等超级计算机先后称霸全球超级计算机排行榜。

但是实际上,我国的超算平台的利用率还是较低,虽然 2016 年和 2017 年,基于神威·太湖之光的超算应用“千万核可扩展大气动力学全隐式模拟器”和“非线性地震模拟” 蝉联 “戈登贝尔奖”,但我国超算应用发展还远远滞后于超算研制能力的发展,出现了软件跟不上硬件发展的现象。而且“重硬轻软”的思想导致经费投入比例严重失调,软件经费投入仅占项目总经费的20%到30%,相比美国的50%依然有较大差距。

因此中国在超级计算这条道路上,不仅仅需要在硬件上争取自主知识产权,也要努力在软件上开辟出一条属于中国的道路。利用中国超算平台建设一个完整的产业生态系统,仍是中国超算一个长远的任务。

---The End---

文案 && 编辑:邹海枫

审稿人 && 排版:陈俞丞

指导老师: 张子臻(中山大学数据科学与计算机学院)

本文分享自微信公众号 - 数据魔术师(data-magician),作者:邹海枫 张子臻

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 最短路问题与标号算法(label correcting algorithm)研究(2) - 最短路径问题简介

    在开始介绍最短路问题之前我们先来简单讨论网络流问题(network flow problems)

    用户1621951
  • Python AI 教学|SVD(Singular Value Decomposition)算法及应用

    如果一个向量v是方阵A的特征向量,则将其可以表示为Av=λv。λ被称为特征向量v对应的特征值。

    用户1621951
  • 数据结构-线性表|顺序表|链表(中)

    回到正题,继上次出了数据结构线性表的内容上以后,这次又给大家更新啦。这次介绍的是单链表和静态链表的内容,话不多说,开始我们的正题。 【注:代码下载请移步留言区】...

    用户1621951
  • 关于Shell你想知道的都在这儿

    0x01 前奏说明 很多时候,不到万不得已的情况下,我们完全没必要非往目标机器里传一堆工具,先不说由于各种防护[不仅仅是杀软的问题],传工具困难重重,有时由于自...

    FB客服
  • SDN开源框架:蝇量级选手Dragonflow究竟解决了什么问题

    作者简介:冯龙飞,上海酷栈科技有限公司SDN产品经理,多年从事网络虚拟化相关功能的开发、定义、产品设计等相关工作,具有丰富的虚拟化网络技术和SDN产品设计经验。

    SDNLAB
  • 如何让JedisCluster支持Pipeline

    hmset等批量操作命令与pipeline最大的区别是,前者是原子性命令,比如hmset,如果一次插入的field过多,会导致命令耗时增加;后者非原子性,只是批...

    黄泽杰
  • TarJan 算法求解有向连通图强连通分量

    在有向图G中,如果两个 顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。...

    RainMark
  • matlab | 二值图像分割

    基本原理 原始图像f(x,y) 灰度阈值T 阈值运算的二值图像g(x,y) 全局阈值是最简单的图像分割方法。

    Rare0716
  • 拿美团offer,Hive基础篇(持续更新中)

    Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL查询功能。

    木野归郎
  • 大数据技术之_08_Hive学习_02_DDL数据定义(创建/查询/修改/删除数据库+创建表+分区表+修改表+删除表)+DML数据操作(数据导入+数据导出+清除表中数据)

    1)创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db。

    黑泽君

扫码关注云+社区

领取腾讯云代金券