面向多领域的高性能计算机应用综述
摘要:在现代科学研究和工程实践中,通常使用数学方程式来表示某些自然科学规律,普通计算已经难以满足愈发复杂的计算公式,利用超级计算机进行科学计算可以极大地提高运算效率。高性能计算机能够达到每秒亿亿次的浮点运算速度,已经成功应用于生物计算与精准医疗、全数字设计与制造、地球科学与环境工程、智慧城市云计算和材料科学与工程等领域,并取得相当成果。简单介绍了高性能计算机,并总结其在不同领域的应用现状与成果。
关键词:科学计算;大数据处理;超级计算机;模拟仿真;并行计算
1引言
在现代科学研究和工程实践中,通常使用数学方程式来表示某些自然科学规律,产生了众多复杂繁琐的数学计算问题[1]。基于普通计算工具来解决这些问题,将耗费大量人力物力,甚至无法得到准确结果。而科学计算[2],利用计算机仿真、重现、预测或探索自然世界万物运动规律和演变特性的全过程,通过研究合理的计算方法,设计高效的并行算法,研制合适的应用程序,能准确、高效地模拟各领域研究过程,分析计算结果。然而,普通计算机的科学计算能力往往是有限的,现有的计算能力无法高效地解决某些基础学科和工程技术部门的科学计算问题,如长期天气预报、石油勘探、飞机整体气动力等等。
与此同时,地震检测仪、粒子碰撞器、天文望远镜以及高通量分析装置等大型科学仪器的研制和发展[3],产生了大量非结构化或半结构化的数据,使得“大数据”趋势变得越来越突出[4]。如今,许多科学发现和见解由大量数据集驱动,“大数据”被认为是除了实验、理论和计算方法之外的第四种科学范式[5]。数据生成的容量、速度和多样性构成了分析大数据的主要挑战。
为提高科学计算能力,解决大数据问题,高性能计算(HPC)[6]技术迅猛发展。高性能计算机代表用于解决计算密集型科学和工程问题的高端计算基础设施。我国的高性能计算早已突破每秒浮点运算千万亿次的壁垒,并继续解决性能、可扩展性、可编程性、能效和可靠性等问题,探索新的支持技术以达到e级计算能力。
目前,高性能计算机已在多个领域得到了成功的应用[7],但仍存在大量可供多个研究机构使用的空闲节点。本文简介了一些高性能计算机系统及其性能,针对近年来在高性能计算机上的各大领域应用实例进行总结,并对在其他领域的应用做出了展望,以促进更高效、全面地使用高性能计算机。
2高性能计算机系统概述
中国首台千万亿次超级计算机,是“天河一号”。“天河一号”超级计算机使用由中国自行研发的“龙”芯片,其峰值计算速度能够达到1.206TFlop/s,同时Linpack实测性能达到了0.563TFlop/s,该超级计算机位居当时公布的中国超级计算机前100强之首,中国成为了继美国之后世界上第二个能够自主研制千万亿次超级计算机的国家。
天河一号采用6144个英特尔通用多核处理器和5120个AMD图形加速处理器,其内存总容量98TB。至于点对点通信的带宽就达到了40Gbps,而其用于共享的磁盘总容量则达到1PB。该超级计算机系统部署于天津滨海新区的国家超级计算天津中心作为业务主机。
2013年,由国防科学技术大学研制的“天河二号”大型超级计算机以每秒33.86千万亿次的浮点运算速度成为全球最快的超级计算机,位列国际大型超级计算机TOP500榜首。随后,“天河二号”实现了世界最快超算“六连冠”。天河二号采用基于加速器的架构[8]。在可接受的总成本、功率预算、支持可靠性、可用性和可服务性(RAS)的能力、应用开发和移植的复杂性下提供高的计算性能。
天河二号的硬件系统由五个子系统组成,包括计算系统、通信系统、存储系统、监控诊断系统和服务系统。它由16000个节点组成,每个节点有2颗基于IvyBridge-EXeonE52692处理器和3颗XeonPhi,每个节点的内存是64GB。所有的计算节点都通过专有的高速互连系统连接。还提供了一个服务子系统的4096个节点,以加快高吞吐量的计算任务,如大数据处理。存储子系统包括256个I/O节点和64个容量为12.4PB的存储服务器。天河二号文件系统命名为h2fs,采用麒麟操作系统、基于SLURM的全局资源管理。支持大多数现代编程语言,包括C、C++、Java、Python等。采用的是新型异构多态体系结构(Multipurpose-Heterogeneous)[9]。
天河二号的系统配置列于表1中。
“天河二号”集科学计算、大数据分析和云计算于一体,被认为是满足工业和社会需求的战略基础设施。以超级计算机为支撑的高性能计算应用正加速向各个领域渗透。
Table1SystemindicatorsofTianhe-2
表1天河二号系统指标
width=375,height=252,dpi=110
在国内早期的高性能计算机研究中,2004年6月超级计算机曙光4000A研制成功,落户上海超级计算中心,标志着继美国和日本之后,中国是第三个能研制10万亿次高性能计算机的国家。曙光能够每秒运算11万亿次,进入全球超级计算机前十名。经过十多年发展,曙光E级高性能计算机系统项目现在是国家“十三五”期间高性能计算的重点专项,其最显著的特点是突破了制约E级计算发展的各个关键技术,通过这样原型机的研制去验证E级的技术路线,为未来真正实现国产E级系统做技术铺垫。
width=642,height=303,dpi=110
Figure1StructureofSugon’sCPU
图1曙光CPU结构
在2016年法兰克福世界超算大会上,“神威·太湖之光”超级计算机系统成为新的榜首,速度较第二名“天河二号”快出近两倍,效率提高三倍。
神威·太湖之光超级计算机由40个运算机柜和8个网络机柜组成。每个运算机柜包含4块由32块运算插件组成的超节点。每个插件由4个运算节点板组成,一个运算节点板又含2块“申威26010”高性能处理器。一台机柜就有1024块处理器,整台“神威·太湖之光”共有40960块处理器。每个单个处理器有260个核心,主板为双节点设计,每个CPU固化的板载内存为32GBDDR3-2133。
在2018年的法兰克福世界超算大会上,美国能源部橡树岭国家实验室(ORNL)推出的新超级计算机“Summit”以每秒12.23亿亿次的浮点运算速度,接近每秒18.77亿亿次峰值速度夺冠,“神威·太湖之光”屈居第二。
3高性能计算机各大领域应用实例分析
为充分发挥高性能计算机的优势,极大限度地满足客户需求,自超级计算机在中国开始发展以来,相关团队都致力于扩展高性能计算在各个领域的利用,迎合各领域应用的计算要求,协助用户配置应用环境,建立高效模型,设计合理并行算法,以实现各领域的科学计算和大数据处理在高性能计算机上的应用。
3.1生物计算与精准医疗
根据广州国家超级计算中心的内部统计[10],生物医学相关应用现在是超级计算中心的主要客户。生物医学研究主要包括生物大分子的结构模拟与功能建模,药物设计与筛选,蛋白质序列分析,基因序列分析与比对,基因调控网络的分析与建模,医疗卫生的双数据分析及生物医学文献挖掘等。
生物医学数据繁多,且一直呈指数增长。如世界最大的生物数据保存者之一,欧洲生物信息学研究所(EBI),存储超过20PB的数据,并且最近每年的数据量都增加一倍[11]。数据源的异质性,包括基因组学、蛋白质组学、代谢组学、微阵列数据、文献等,使其更加复杂。
针对典型类型的大数据——基因组大数据,在大数据框架(如Hadoop和Spark)的帮助下,云计算已经在大数据处理中发挥着积极作用。现在,HPC在中国的快速发展使得以不同的方式解决基因组大数据挑战成为可能。Yang等人[12]强调了在现代超级计算机上增强大数据支持的必要性,提出只需单个命令或单个shell脚本就能使当前的大数据应用在高性能计算机上运行,并且支持多个用户同时处理多个任务的Orion作为高性能计算机的大数据平台。该平台可以根据大数据处理需求,合理分配所需的资源量,并使用HPC系统软件栈自动建立和配置可回收的Hadoop/Spark集群。以华大基因提供的基因组学大数据作为案例研究,测试基因组分析流水线SOAPGaea的FASTQ过滤、读取对齐、重复删除和质量控制四个过程,证明了Orion平台的高效性。
为更好地了解基因的精细结构、分析基因型与表现型的关系、绘制基因图谱,DNA序列分析成为生物医学中的重要课题[12]。
DNA序列的排序是对DNA序列分析的基础[13]。通常先使用测序仪得到生物体基因组的一些片段,再利用计算机对片段进行denovo拼接,从而得到DNA序列的排列顺序。而随着测序仪的发展,基因组的数据量增大,分析复杂性提高,普通计算工具分析数据会消耗大量时间和空间。张峰等人[14]基于高性能计算机,使用一种新型序列拼接工具SGA(StringGraphAssernbler),对任务之间数据耦合度小的分批构建FM-Index,采用粗粒度的多进程并行;对任务之间数据耦合度较大的FM-Index合并过程,采用多线程的细粒度并行。这种多进程与多线程的混合并行策略,使用并行计算代替通信开销,测试小规模数据时,将索引构建时间的最佳性能提高了3.06倍。叶志强等人[15]在基因组排序时,引入随机listranking算法,基于高性能计算机,使用MPI并行实现Pregel框架的线性化步骤,利用节点之间的通信和计算能力,减少了线性化步骤时间。
SNP(单核苷酸多态性)检测是DNA序列分析的关键步骤[16]。它将对齐的read、参考序列和被编排的数据库(如数据库SNPP)作为输入,通过站点检测对齐的read和引用站点的信息,生成SNP站点的列表。SNP检测工具SoAPSNP可以用一个多星期的时间来分析一个覆盖20倍的人类基因组。崔英博等人[17]通过重新设计SOAPSNP的关键数据结构以降低内存操作的开销,设计CPU与XeonPhi协作的协调并行框架,以获得更高的硬件利用率。并提出了一种基于读取的窗口划分策略(RWD),在多个节点上提高吞吐量和并行规模,开发了SOAPSNP的并行版本MSNP,在没有任何精度损失的情况下,利用高性能计算机的一个节点实现了45倍的加速。
方翔等人[18]利用高性能计算机,构建了由基因组与转录组测序数据分析、蛋白质结构预测和分子动力学模拟三个功能模块组成的生物信息平台分析水产病原,对约氏黄杆菌等多种水生动物病原进行生物信息学分析。
从生物医学文献中提取有价值的信息的一种主流方法是在非结构化文本上应用文本挖掘方法。然而,大量的文献需要分析,这对文本挖掘的处理效率提出了巨大的挑战。彭绍亮等人[19]将针对疾病实体识别的软件DNorm加入可高效识别基因、蛋白质、药物、基因通路等实体关系的文本挖掘工具PWTEES流水线中,扩充了PWTEES的功能。使用LINNAEUS导入MEDLIN数据库提供的摘要,并在个人账户目录下,动态使用计算节点,编译安装配置了非关系型数据库(MySQL),将大量非结构化数据(文献)转为结构化数据。将平时在普通服务器上需100天能完成的文本挖掘过程缩短为1小时,并利用200个进程并行挖掘7万篇头颈癌相关文献中的关键命名实体,得到了80%以上的并行效率。Xing等人[20]开发了一个可运行的框架PARABTM,它能够在超级计算机上实现并行文本挖掘。以GNormPlus、tmVar2.0、Dnorm三种命名实体识别任务为例,对多个数据集上PARABTM的性能进行了评价。结果表明,使用PARABTM并行处理策略中的短板匹配负载平衡算法(Short-Boardloadbalancingalgorithm),最大程度地提高了生物医学命名实体识别的处理速度。
3.2全数字设计与制造
数字设计与制造是一种以计算机系统为中心的集成制造方法。随着制造工厂中计算机系统数量和质量的提高,数字化趋势迅速。越来越多的自动化工具被用于制造工厂,有必要对所有机器、工具和输入材料进行建模、模拟和分析,以优化制造过程。而模拟能够建模和测试一个系统行为特性,让工程师能够用更低耗、更快速同时更安全的方式来分析所做的设计会产生什么样的影响。模拟的应用范围广泛,涵盖了产品设计、过程设计以及企业资源安排[21]。在模拟过程中,利用超级计算机强大的计算能力,使工程师能在几分钟或几小时内仿真和测试数千种设计方案。
利用数字化的方式,可以对产品进行结构力学分析、流体力学分析、电磁设计和多物理场模拟等多种计算仿真。
在计算流体力学CFD(CcomputationalFluidDynamics)领域的一大热点研究问题就是如何在当前主流的众核异构高性能计算机平台上进行超大规模计算。杨梅芳等人[22]在高性能计算机的单个节点上,利用超然冲压发动机燃烧数值模拟软件LESAP模拟一个实际发动机燃烧化学反应和超声速流动的问题,采用OpenMP4.0编程标准,向量化SIMD,优化数据传输过程,均衡基于网格块划分的负载技术,实现了软件面向CPU+MIC异构平台的移植,达到了3.07倍的性能加速比。王勇献等人[23]面向高性能计算机探索了高阶精度CFD流场数值模拟程序的高效并行性。在高性能异构并行计算平台上进行了多个算例的数值模拟的结果显示最大CFD规模达到1228亿个网格点,共使用约59万CPU+MIC处理器核,实现了移植后的性能大幅度提高。通过将算法移植到超级计算机进行大规模并行,能够实现高效的流体力学分析。而文献[24-26]都是针对空气动力学中的具体分类利用高性能计算机进行模拟以验证有效性的研究。利用数字化设计,能够快速低成本地对设计性能进行分析评估。
在图像模拟中,Metropolis光传输算法能够利用双向路径跟踪构建出由眼睛到光源的路径,是MonteCarlo方法的变体。然后,使用Metropolis算法静态计算图像中光线的恰当的散射状态,由一条已发现的光到眼睛的路径,能搜索到邻近路径。简单地说,Metropolis光传输算法能够生成一条路径并存储其上的节点,同时能通过添加额外节点来调整并生成新的路径。随着对照片级真实感图像的要求越来越高,为Metropolis光传输算法开发高效且高度可扩展的光线跟踪器变得越来越重要。主要是渲染图像通常需要花费大量时间,开发高效且高度可扩展的光线跟踪器的困难来自不规则的存储器访问模式、光携带路径的不平衡工作量以及复杂的数学模型和复杂的物理过程。Wu等人[27]提出了一种基于物理的高度可扩展的并行光线追踪器,并在高性能计算机上进行了实现,利用多达26400个CPU内核,证明了其可扩展性,能够从复杂的3D场景生成逼真图像。
模拟高场非局部载流子传输同样需要3DMonteCarlo模拟方法,通过适当的量子校正涵盖散射效应,半经典的MC模拟能够给出准确的结果。但是,MC方法中3D模拟和量子校正都需要巨大的计算资源[28],由效率出发超级计算机的计算能力就至关重要了。文献[29]中,通过在高性能计算机上使用IntelMIC协处理器,进一步提高了之前工作中开发的3D并行的继承MC模拟器的并行效率。
对于高性能计算机在全数字设计和制造领域的集成应用,国家超级计算广州中心推出了天河星光云超算平台,以云服务的方式提供CAE计算和HPC访问,大大降低了数字设计的门槛,支持产品设计的全工作流。目前基于该平台支撑的项目有诸如国产大飞机、高铁等,都是国家工业生产中重要项目[30]。
3.3地球科学与环境工程
基于该应用领域,超级计算机的主要作用在于变革对自然界中诸如地理状况、海洋、大气等种种元素的模拟方式。以超算为平台,不仅能模拟出地球上每个时期的状况,甚至是对宇宙中的种种同样能进行模拟分析,让地球科学和环境工程的研究范围不再限于此时此地,而是更广阔的空间。
在宇宙学的层面,早在2015年就利用高性能计算机模拟出宇宙大爆炸后1600万年之后至今约137亿年的暗物质和中微子的演化过程,并将进一步寻找宇宙边界的报告[31]。中微子虽然是自然界中的基本粒子之一,在宇宙大爆炸约1s后与其他等离子体物质退耦,形成看不见的宇宙背景,通过物理实验和实际的天文观测都无法精确测量中微子的质量。在高性能计算机平台上,利用3万亿粒子来对宇宙中的中微子和暗物质的分布和演化进行模拟,开创了宇宙学中独立测量中微子质量的道路。
在地球外围层面上,大气变化同样是一个关注点。Xue等人[32]提出了一种基于高性能计算机的全球性大气动态模拟的混合算法。通过使用更灵活的域分区方案来支持节点中任意数量的CPU和加速器,算法能够充分利用超算的优良性能。当使用8664个节点,包括了近170万个核心时,可以有效地利用节点内的三个MIC卡,对两个IvyBridgeCPU(24个内核)实现4.35倍的加速。基于成功的计算-通信重叠,算法分别在弱和强缩放测试中实现了93.5%和77%的并行效率。
相较于广袤无边的宇宙,大部分人们对于脚下的土地更加关心。自然灾害如地震、泥石流等,可能会造成巨大的生命财产损失,而地下油气资源又是经济社会发展所必需的,利用超级计算机去探索大地也是发展所需要的。
中石油集团开发的用于石油油气勘探的GeoEast系统已经经过了十几年的发展更新,在数据模型、数据共享、一体化运行模式、三维可视化、交互应用框架、地震地质建模、网络运行环境和并行处理方面取得了多项创新与重大技术突破,是地震数据处理解释一体化系统。目前GeoEastV3.0版本软件总体达到国际同类软件先进水平,为推动中国石油勘探开发领域不断取得新成果发挥了重要作用[33]。但是,这样的一体化系统在使用中势必会产生大量的数据,这就对计算机的性能有了要求。因此,在GeoEast系统闻名世界的过程中,高性能计算机在幕后是功臣之一,保证了系统的顺利运行,助力石油勘探工作[34]。而文献[35]专注于地震模拟,提出了针对英特尔至强处理器的对于软件SeisSol的优化,以适用于高性能计算机的计算环境中,通过全摩擦滑动和地震波的耦合仿真实现了空前复杂的地震模型。移植到高性能计算机的SeisSol提供近乎最佳的弱缩放,在8192个节点上达到8.6DP-PFLOPS,在所利用的整个高性能计算机上能达到18~20DP-PFLOPS,成功模拟了1992年兰德斯地震。
3.4智慧城市云计算
城市发展经过多年的调整,已经在经济上有了相当进展,目前从如何让人们生活更加便捷出发,许多地区开始建设智慧城市。智慧城市(SmartCity)是指利用各种信息技术或创新意念,集成城市的组成系统服务,以提升资源运用的效率,优化城市管理和服务,进而能够提高居民生活质量。智慧城市的发展不仅仅是对生活的改变,还能促进生产方式的转变,解决在城市扩张及经济高速发展中产生的一系列“城市病”问题。智慧城市,代表的是城市的智慧,由智慧,能够衍生出智能中、知识和数字等更广泛的内涵[36]。
迄今为止,广州、北京、上海、宁波、无锡、深圳、武汉、佛山等国内城市已纷纷启动“智慧城市”战略,相关规划、项目和活动渐次推出。高性能计算机云平台应运而生,为智慧城市建立坚实、先进的基石。智慧城市由于其性能需求,对依赖的平台的计算能力的要求会更高,而超算的计算能力就能为智慧城市的建设提供相当助力。在2014年,就有中国首台千万亿次超级计算机“天河一号”在智慧城市中应用的报道,以其在天津滨海区的应用为例,“天河一号”的建筑信息领域的大数据平台通过对建筑信息建模,实现对建筑物从规划、设计、建造到后期物业管理理的全程数字化。此外,城市规划、气象预测、生物医疗、装备制造、汽车碰撞模拟等行业,也能更多地通过“天河一号”,实现大批量数据计算、分析和存储[37]。
而高性能计算机的持续计算速度进一步达到了亿亿次,所能提供的服务质量也更高,麒麟云平台被部署在1920个节点(15个机柜),其中64个节点(两个机框)作为云平台控制节点,其余节点为运行虚拟机的计算节点和分布式存储的存储节点。为方便管理,将计算节点进行分区管理,512个节点(4个机柜)为一区,用于满足生产环境、适配环境、测试环境需要。分布式存储没有分区,所有节点形成一个全局的分布式存储池,但在使用时可按需划分指定容量的区域供不同用途使用[38]。这种云超算服务采用麒麟安全云系统实现虚拟化技术,将虚拟机资源远程推送给用户使用[39]。可通过互联网远程管理虚拟机资源,使高性能计算机云平台资源能够被更多人使用,超算的计算能力能够更好地推动社会各个领域发展。2017年OpenStack的第15个版本中,麒麟云团队在核心功能解决的Bug数,以及Commits的数量均进入全球前20,麒麟云的发展是非常迅速的,与开源社区紧密结合,贡献突出[40]。
3.5材料科学与工程
在材料科学与工程的研究中,量子力学、经典动力学、统计力学是三大基础且主要的研究方向。研究人员致力于材料参数的建模、多尺度平台开发和新材料的设计、开发和优化。
分子动力学模拟在材料科学、生物化学和生物物理学等领域得到了广泛的应用。分子动力学(MD)是研究分子和分子的物理运动的计算机模拟方法,它提供分子尺度上的微观取样。基于能量细化的辅助建模AMBER(AssistedModelBuildingwithEnergyRefinement)[41]是用于MD模拟的使用最广泛的软件包之一。然而,对于具有百万原子级的系统的AMBERMD模拟的速度仍然需要改进。彭绍亮等人[42]在单CPU上的细粒度OpenMP并行、单节点CPU/MIC并行优化和多节点多MIC协作并行加速方面进行了改进。在高性能计算机上实现AMBER的并行加速策略,与原程序相比,实现了25~33倍的最高加速比。同时,对于计算资源的限制,分子动力学软件GROMACS不能大规模地进行满意的操作。Wang等人[43]提出了一种利用卸载模式加速GROMACS的方法。为了提高GROMACS的效率,提出了异步化、数据重组和数组重用等一系列方法。在这种模式下,GROMACS可以与CPU和IntelXeonPHITM多个集成内核(MIC)协处理器同时有效地配置,充分利用高性能计算机资源。
材料辐照效应(Materialirradiationeffect)是使用核能的重要关键之一。然而,由于高通量辐照设施和进化过程知识的缺乏,此效应的利用并不好。在高性能计算的帮助下,Hu等人[44]提出了一种新的数据结构,用于大规模并行模拟金属材料在辐照环境下的演化。基于所提出的数据结构,开发了一种新的分子动力学软件——CrystalMD,并在高性能计算机上进行了二兆个原子模拟,对MD辐射效应研究的模拟规模进行了扩展。
3.6其他领域
近年来,随高性能计算的推广,政府部门对超级计算机的重视,旧产业转向新产业的变化及大量有高性能计算需求的企业对超级计算机的需求增大,超算人才培养初见成效[45]。在应用软件开发等推动下,高性能计算机的适用范围逐渐向更多领域渗透。
源于人工神经网络的研究深度学习作为人工智能的一个新研究领域,在模仿人脑的机制来解释如图像、声音和文本数据上有了很大进展。例如,卷积神经网络(CNN)能准确地对大型图像进行识别处理,然而CNN的训练密集程度很高,特别是对于大型具挑战性的任务,卷积层的参数数据量庞大。而高性能计算机的易访问、高峰值等性能使学术界和工业界都可以轻松访问相关平台,并可以在合理的时间内训练中等和较大规模的CNN。使用基于输入展开以将其投影为矩阵乘法(Unfold+Parallel-GEMM)的算法的CAFFE、Theano、Torch7、Chainer、CNTK和TensorFlow等最先进的CNN基础设施已可以在高性能计算机上进行部署和应用。
增强现实技术AR(AugmentedReality),将真实世界信息模拟至虚拟世界,让人随时产生真实感受。通过高性能计算机高效地实现算法,可以数字虚拟孕育“互联网+”新业态,开发虚拟试衣、模拟试驾等应用项目。
4结束语
超级计算机作为当前国际社会一大重点研究领域,其性能远超普通计算机,利用其强大的并行计算能力,能够为其他领域的科研生产工作提供助力。本文从生物计算与精准医疗、全数字设计与制造、地球科学与环境工程、智慧城市云计算和材料科学与工程等领域的角度分析了高性能计算机的应用状况,结果表明利用超级计算机进行模拟仿真、重现或推演等过程,能够大大提高科研效率,降低人力成本。超级计算机研发不仅仅能推动计算机领域本身的发展,更能为其他科研领域和工业生产的发展带来新思路、新动力,高性能计算机在各个领域的成果应用佐证了这点。