高性能计算的核心是什么?
这还用说,肯定是计算了。是的,许多人都会这么认为。
看看每年两届的TOP500榜单就会发现,如今最强的超级计算机已经能够实现每秒钟44.2亿亿次(442010 TFlop/s)的计算效率,向着百亿亿次的目标进一步迈进。
而伴随着异构计算越来越多的应用,包括传统HPC和新兴的人工智能都开始大规模的采用异构计算方式,包括GPU、FPGA、ARM等诸多架构芯片的出现,也让整个计算市场呈现出“百花齐放”的情形。
同样的情况也出现在网络层面。与许多人印象中HPC使用InfiniBand网络不同,来自TOP500榜单的信息显示以太网依然有非常高的占有率,100G网络已经是以太网的“标配”;而在注重传输效率和低延迟的InfiniBand网络中,200G的HDR标准已经成为主流,甚至Mellanox公司还在不久之前的SC20大会上宣布了400G的NDR产品,其范围更是涉及了网络应用的全领域,包括网线在内。
从这个角度来说,高性能计算的发展可谓是日新月异,从计算到网络的变化使得数据的处理和传输越发效率,但就是就在这样飞速发展的状态下,我们似乎忘记了另一个重要选项——存储。
存储对于高性能计算有多重要?
以往在谈到高性能计算的时候,我们总是在意计算的速度,因为那时候计算能力还有明显的不足;而如今,异构计算的出现让计算效率呈指数级提升,而高速网络也让这些计算成果让数据本身能够发挥更大的价值……
但这时候我们发现,许多应用中存储成为了瓶颈。
比如高性能计算传统应用之一的生物基因工程。记得从上世纪90年代开始,电视、书本上都是铺天盖地的“人类基因组计划”、“克隆”、“生物芯片”等等内容,甚至当时的北大副校长陈章良博士更说出了那句名言——“21世纪是生物学的世纪”。尤其是近年来PD-1信号通路的发现(使得人类在战胜癌症的道路上更近了一大步)、诱导多能干细胞iPSC技术和基因编辑技术!CRISPR(使得I型糖尿病有望得到根治)等众多科研成果都证明了生物工程的重要性。
与大多数人印象中的生物实验室不同,如今在高科技的加持下,影视剧中那种试管、烧杯的场景已经逐渐被高性能计算机所代替,“高科技模拟”已经成为了生化实验的重要组成部分。
以国内著名的基因公司——华大基因为例,这个为全球基因发展提供重大贡献的公司拥有数百台测序仪,由此每月产生的数据高达300TB-1PB。如此一来,仅仅是存储这些数据就是一个让人头疼的问题,更何况还需要对数据进行后续的分析和利用。这其中动用的存储资源可谓是“天文数字”。
另一个非常依赖于存储的就是视频剪辑与处理。其实伴随着短视频应用的春风,如今许多人都可以在抖音、快手等平台拍摄自己的视频,由此也让更多人接触到视频处理是一个多么耗费存储资源的工作——4K甚至8K视频的超高分辨率在为我们带来视觉盛宴的同时,也对后端的存储设备造成了压力。
据报道,2016年的里约奥运会上就是用的8K视频报道赛事,录制20分钟未经压缩的超高清视频,足足占用4TB的储存空间。
容量带来的难题可以通过增加存储设备来解决,但更重要的是存储效率。为了满足4K/8K视频的储存工作流程,除了需要足够大的存储空间外,其设备还要具备较高的可扩展性和较高的性能,以满足读写效率,而这就给4K/8K的存储带来了更高的难度。
同样,在电影行业,从《大圣归来》到《流浪地球》,再到去年国庆节后播出的《金刚川》,其中视觉冲击力的特效效果,展示出渲染开始助力中国电影工业发展,给影视作品的制作周期、制作成本和制作的便利性等方面带来很大变化。
特效渲染作为高性能计算商用化的一个重要场景,一部特效电影制作的时间,除了花费在拍摄上,其次就是等特效,而制作特效的主要时间花费在渲染上,在渲染前,需要有容量大的存储设备存储数据,而在渲染过程中,需要大量的数据处理工作才能生成最终输出,也就是需要高性能的存储,一定意义上来说,算力和存储、云渲染正在成为中国电影工业重要的组成部分,促进中国电影工业快速发展。
业务场景不一样,对于存储的需求也不尽相同,无论是科研领域还是全新的智能视频,都对于存储设备带来了全新的要求和挑战,也需要存储产品本身能够有所突破。
恰恰是看到了存储在高性能计算中重要性的逐步加深,自2017年11月开始,每年在美国的SC和德国的ISC大会上除了发布大名鼎鼎的TOP500榜单之外,还会发布一套名为IO500的榜单,这份榜单也在逐步成为存储行业的性能“风向标”。
未来的存储平台该是什么样?
如果说TOP500是计算性能排行榜的话,那么IO500则是针对存储系统性能的排名表。
一直以来,性能存储系统的基准性能测试是一项复杂的任务,并行I/O不仅受CPU延迟性能和网络的影响,还受底层存储技术和软件的影响。不同厂商发布的性能测试结果,往往由于测试方法、工具、参数甚至测试步骤的先后顺序不同,而具有较大的差异性。
所以IO500出现了。作为国际权威的评判标准,IO500定义了一个全面的基准性能测试套件,可以对高性能存储系统进行标准的测试和比较,旨在为用户提供一个标准的评价依据。
具体说来,标准的IO500的测试基准利用IOR、MDTEST和标准POSIX来对可优化的顺序IO、随机IO以及元数据操作等类型的工作负载进行性能评估。
IO500包括带宽和元数据两项基准测试,将两个项目的总分进行几何平均后,得出最终分数。
而在表现形式上,这些成绩分为总榜单及10节点榜单两大类别——其中,10节点榜单将由于更接近于实际并行程序可能达到的规模,更能反映存储系统可为实际程序提供的I/O性能,参考价值更高。
我们知道,如今绝大部分高性能计算应用都是基于POSIX协议而设计的,因此IO500采用的标准POSIX接口也可以最大限度发挥存储存储高带宽、高吞吐量、低延迟的应用需求。
换句话说,IO500能够以接近真实应用的情况体现系统存储性能差异,毕竟,HPC的真实模型复杂,需要存储同时具备高带宽、杲OPS融合、协议融合等能力,因能够进入IO500甚至在榜单获得领先的,一定是存储领域的佼佼者。
因此,别看推出的时间并不长,但是在参与者的积极度和竞争的激烈程度上,IO500相对于TOP500来说则是有过之而无不及。
最新一期的IO500成绩中,由清华大学计算机系存储系统研发团队研发的超算缓存文件系统MadFS在“鹏城云脑Ⅱ”的IO500测试中,位居IO500总榜榜首和10节点榜单榜首,分别是7043.99和1129.75的得分,这是国内科研机构首次夺得该排行榜榜首。
这也再一次说明了存储系统相对于计算系统的独立性,“鹏城云脑Ⅱ”基于华为鲲鹏920架构的高性能计算系统,存储系统基于MadFS,针对“鹏城云脑Ⅱ”的硬件特征,基于RUST的高可扩展并发访问、大粒度数据缓存&旁路访问、数据访问&落盘流水化、零拷贝极速 RPC 处理技术等创新优化方法,在NVME-SSD的支持下性能被发挥到了最大。
纵观当下的存储市场,多种存储协议的并存一直是困扰用户升级与迭代的难题。相对于传统的文件存储、块存储来说,如今热门的对象存储更适合非结构化数据和智能化应用的需求,即便是在POSIX协议当道的高性能计算存储应用中,对象存储也能凭借便捷的操作占据一席之地。
比如视频特效渲染行业,使用对象存储存储海量的视频素材,便于后期实时查询和调用数据。因此,对于用户来说,谁能够实现多种存储协议的共存、有效管理和便捷化数据处理,谁就能够在未来的存储发展中占据先机。
除了多协议共存之外,多协议互通也同样是整个行业关心的问题。常用的分布式并行文件系统有lustre、gpfs、gluster、isilon onefs等,对象存储则是ceph、cleversafe,除此之外,还涉及SMB、CIFS、NFS等多种数据访问协议;比如NAS就是常见的多协议互通的典型。
前文提到提到的生物基因检测,如今借助于大数据、人工智能手段,已经能够实现智能化的检测标准,整个产业也呈现出个人化的倾向。但随之也带来数据互通性的问题,比如分布式架构的数据如何与传统测序仪或工作站的协同。
还有现在最热门的智能驾驶就是如此。日前,特斯拉CEO埃隆马斯克在一档采访节目中提到将在2022年实现L5级智能驾驶,这也意味着车辆已经完全替代驾驶员,实现真正意义上的、我们在影视剧中看到的那种“自动驾驶“。
自动驾驶分为L1-L5不同的等级,在L5级别下,以后的汽车将成由座驾转变为座舱,任何条件都可以实现智能电脑控制车辆,当然了,车主也可以进行操作。
但这必须要解决数据协同性的问题。一直以来,自动驾驶都是需要路采车辆上的传感器采集海量的路测数据,并基于处理后的数据进行反复的AI训练和仿真,让汽车能智能地识别和处理各种路况和障碍物,从而实现自动驾驶。
这其中包括数据的采集和导入、数据在本地化的预处理、AI模型的训练最终到HPC的应用仿真,并通过仿真来指导车载AI系统进行智能化判断,推动程序的升级与迭代。
图注:自动驾驶研发流程
自动驾驶训练的不同阶段,使用的访问协议也是有很大差异的,要想提升流程处理效率,需要存储支持多种协议的互通,减少数据拷贝,以当下主流的L2-L3自动驾驶为例,每车每天产生的数据量已经达到2-64TB,伴随着汽车行驶里程的提升,其产生的数据量就已经达到了PB甚至EB级的规模。
而在L5级自动驾驶中,数据传输与计算量甚至可以达到一个“天文数字”,也就需要包括车载处理器、后端数据中心在内的一体化计算方式,通过车联网和5G网络实现快速传输和相应。
换句话说,在自动驾驶的应用场景下,车载系统将进行大规模的数据计算与处理,既有高带宽的性能要求,又有高OPS、低时延的性能要求,海量数据之间也会出现跨系统的协同交互。
这也就需要未来的高性能计算系统既能够同时满足高带宽&高OPS需求,又能避免不同流程阶段使用不同架构的存储而产生的数据拷贝冗余,因此多协议互通就成为了必然的选择。
由此看来,要想提升高性能计算的存储性能,必须打破原有边界,让平台能够承接用户的各种形态的数据,实现多协议下的数据流动,这样才能实现统一存储资源管理,打破硬件锁定,数据可以在资源池中均衡分布,简化持久保护设计,不同业务系统可以共享存储,还可以通过集约化降低存储成本,避免重复建设多套系统,全面发掘既有数据的潜在价值。
结束语
一直以来,我们在迈向百亿亿次计算的道路上面临众多的挑战,访存墙问题、通信墙问题、可靠性问题和能耗墙问题并成为四大难题,这其中“访存墙”问题就需要将计算、存储、I/O的速度实现匹配平衡,从而在体系结构的设计上实现性能均衡。
因此,未来高性能计算的存储就需要实现多协议的兼容、多协议架构的互联互通和智能化的管理。
换句话说,高性能计算发展到今天,计算能力的飞速提升和网络数据的高带宽低延迟都已经进入了新阶段,与之相适应的就是存储应用也实现海量可扩展与智能化的数据管理。
对于传统高性能计算应用来说,无论是生物基因、高能物理还是流体力学、视频处理等等多种科研应用都会利用到海量数据,而提升数据的存储空间和利用率就能够更好的提升高性能计算的发展。
是时候为百亿亿次计算 时代选择全新存储平台了。