我国高性能计算的回顾与展望
2017-09-06钱德沛
钱德沛
回顾过去20年中国高性能计算的发展,可谓举步维艰,成绩卓然。简单算一笔账,国际上通常的发展速度是10年性能提高1000倍,20年差不多100万倍,但我们提高了5000多万倍,我们在20年走完了别人30年甚至40年走的路。
一、高性能计算发展的回顾
高性能计算是战略性、前沿性的高技术,是发达国家争夺的战略制高点。
高性能计算是解决国家经济建设、社会发展、科学进步、国家安全方面一系列重大挑战性问题的重要手段,是国家创新体系的重要组成部分。高性能计算产生的原始创新和高端技术会影响下游产业的发展,因此美国、日本、欧盟在这方面均有大量的投入,包括资金和人力,以确保他们的技术始终保持着领先地位。
我国的高性能计算发展得益于“863计划”的实施,受国际及国内科研和工业发展需求的变化,期间经历了几次研究重点的转变。1987年启动之初,研究重点是智能计算机系统,当时受到日本五代机的影响,而且80年代人工智能处于高潮时期,当时的重点是研究Lisp机、Prolog机,目标是实现高效规约、推理,从而支持人工智能应用。1990年,根据国内科研与工业的现实需求,重点转向研制并行计算机,像SMP、MPP等,期间成立国家智能机中心,并于1993年成立曙光公司。1998年,受美国网格计划的影响,研究重点从研制单台高性能计算机转向高性能计算机与网络计算环境并重,目的是建立互联网上普遍共享的计算能力,形成国家计算基础设施。2006年,又提出高性能向高效能的转变,这导致计算机研制技术路线的变化,从单纯强调峰值性能变为强调除性能指标之外的可编程性、可移植性和系统的可靠性。在强调依托自主技术实现E级计算机的今天,我们又处在一个转折的节点,面临研究重点新的转变,即强调如何建立基于自主技术的高性能计算生态环境。
过去的15年里,“863计划”连续支持了三个重大的项目,即2002—2005年的重大专项“高性能计算机及核心软件”,2006—2011年的重大项目“高效能计算机及网格服务环境”,2011—2016年的重大项目“高效能计算机及应用服务环境”。历经多年努力,研制了一系列的高性能计算机,包括 “天河” “神威” “曙光”以及联想的“深腾”。这些机器构成了我国的计算资源,很好地支持了一批重要的应用。
回顾过去20年中国高性能计算的发展,可谓举步维艰,成绩卓然。1996年的“曙光1000”,计算能力是25亿次,当时美国的计算能力是万亿次,相差400倍。2016年中国制造的“神威·太湖之光”,计算能力是12.5亿亿次,性能提升了5000万倍,领先美国最快的TITAN系统4倍多。简单算一笔账,国际上通常的发展速度是10年性能提高1000倍,20年差不多100万倍,但我们提高了5000多万倍。我们在20年走完了别人30年甚至40年走的路程。
从过去20年我国高性能计算环境与美国的对比,可以了解我国高性能计算基础设施的发展情况。1996年,我国在合肥建立了第一个国家高性能计算中心,装备了计算能力6.4亿次的曙光一号。同期美国在NSF的PACI计划支持下,由NCSA和SDSC两个超算中心牵头,建立了美国国家级计算网格,当时我们大大落后于美国。到了2016年,我国实现了由17个高性能计算中心构成的中国国家高性能计算服务环境,资源能力位居世界前列。此时美国的共享计算基础设施XSEDE环境也是由十多个超级计算中心构成。实际上,我们和美国已经实现了并跑。
过去20年,我国高性能计算应用的广度和深度有了长足的进步。1996年,我国高性能计算的应用范围仅限于气象预报、石油勘探等少数领域,达到的并行性也仅有十几个到几十个处理器,使用的应用软件主要依赖进口。到了2016年,我国的高性能计算应用已扩展到诸多领域,例如大飞机研发、高铁列车设计、石油勘探、新药发现、集合气象预报、生物信息、汽车研发、流体机械优化设计、电磁环境计算等。在“863计划”支持下,研发了一批大规模并行应用软件,并在相关行业和领域得到应用,发挥了实际的作用。并行应用的规模已经突破千万核处理器。硬件和应用规模的突破,使得我们能够获得国际高性能计算应用水平标志性奖——戈登·贝尔奖。
在过去20年的发展历程中,我们积累了很多的经验。首先是国家科技计划与地方、应用部门的发展计划相结合。这种结合不仅实现了多渠道筹资研制高效能计算机,而且实现了科技部和地方政府共同出资建设国家超算中心。其次是产学研用的结合。高性能计算中心作为提供计算服务的单位,在高效能计算机的研制过程中发挥了重要作用。例如,由高性能计算中心提出系统的性能指标,参与遴选研制队伍。企业通过直接参与国家计划,提升了自身的技术水平,同时也促进了其市场份额的提高。此外,应用单位牵头研发应用软件,也保证了软件的实用性。再次是始终坚持机器、环境、应用三者的均衡发展,相互促进。高性能计算机体现了计算机技术的最新成就,为高性能计算应用提供计算资源,推动了高性能计算应用和计算机产业的进步。高性能计算环境实现了计算资源的共享,提高了资源的利用率,降低了高性能计算的应用门槛,促进了高性能计算应用的普及和提高。高性能计算应用的发展对计算机技术的发展起到了直接的牵引作用,同时产生应用实效。
当然,在高性能计算机的发展过程中也暴露出一些问题,值得我们关注。首先,我国的高性能计算发展缺少国家级的长期战略规划。目前的情况是,国家层面每五年论证一次,高性能计算需要和很多兄弟领域竞争国家的经费支持。从近年来的情况来看,对高性能计算应用的经费支持力度偏低。其次,当前高性能计算机研制的基本模式是国家、地方和应用部门共同出资,而国拨经费的比例偏低有可能使這种模式难以为继。另外,探索新的发展模式是高性能计算环境发展必须思考的问题,国家支持与有偿服务相结合的发展机制也许值得探讨。
我国在高性能计算核心关键技术方面与美国相比还有较大差距。我国在高性能计算机的基础关键器件(处理器、存储器等)、大规模并行算法与软件等核心关键技术方面仍依赖国外。要实现高性能计算的可持续发展,必须加强基础研究,提高技术储备的纵深,其中,发展应用软件是关键。目前的现状是,高性能计算机硬件技术发展较快,而进口的软件却跟不上国产应用计算机的并行规模,所以需要通过自主研发、开源、共享等技术手段,来解决并行应用软件的问题。
我国高性能计算领域的人才储备严重不足,严重制约了应用发展,要通过学科交叉,拓宽人才培养渠道,在实践中再培训,切实解决人才不足的问题。
最后,发展高性能计算,要建立产学研用相结合、多学科协作的长效机制,形成群体优势力量,这是高性能计算长久稳定发展的必需。
二、为什么要发展高性能计算
我国的经济建设、社会发展和国家安全需要E级高性能计算
我国社会经济发展和国家安全对E级高性能计算有迫切需求。以百亿亿次量级的计算需求为例,首先解决国家发展的重大挑战性问题,如能源短缺、环境污染、全球气候变化等对E级计算有迫切需求;其次,E级计算在促进传统产业转型升级中有重要作用,如航空工业、高速铁路、重大装备制造、汽车工业等领域,技术的研发都对计算提出强烈需求;第三,高性能计算能帮助提高人民生活水平,例如,涉及老百姓生活和身体健康的精准医学、个性化药物研发、突发恶性传染病的应对等方面,E级计算都可以发挥巨大作用;最后,重大科学发现和基础科学研究,更是高性能计算的传统应用领域,如高能物理、天文物理、材料高通量计算等,对高性能计算的依赖程度非常高。
高性能计算促进我国信息产业发展
高性能计算对我国信息产业的发展具有极大的促进作用。首先,高端计算系统的研发和技术辐射促进了我国服务器产业的进步。目前,国内HPC和服务器的销售额已经接近200亿元,在国际市场上也占有一席之地。高端系统和服务器产业的发展极大促进了我国核心部件和关键元器件的自主研发,为形成具有自主产权的硬件系统奠定了基础。其次,高性能计算应用的研发和普及为国产高性能计算软件产业的发展奠定了基础。长期以来,我国的应用软件主要依赖进口,尤其是在工业生产领域和基础科学研究领域,支出大量采购经费,且软件升级受制于外方。因此,在发展硬件技术的同时,拓展应用软件市场,逐步占据高端市场,辐射低端市场,最终替换商业软件,抢占HPC软件的市场,是我国应用软件发展的必由之路。最后,国家高性能计算环境的发展,催生我国计算服务业的发展,通过环境运行,探索运营与盈利的新模式,从单纯提供计算机向提供解决方案和交钥匙服务方向转变,这将促进我国高性能计算服务业的发展,也有利于提升我国相关企业的竞争力。
自主可控是我国高性能计算发展的必由之路
处理器是计算机的核心部件,长期以来中国超级计算机的处理器依赖进口。随着我国超级计算机规模的提高,计算能力不断增强,引起美国的关注。美国于2015年起开始对中国禁运新一代微处理器,拖延了“天河二号”超级计算机的升级。同时,国外限制高端应用软件向我国的出口,也造成国家超算中心应用软件采购受限,直接影响服务质量。现实告诉我们,中国的高性能计算事业不能完全建立在国外技术的基础上,中国必须大力发展自主关键技术,提升高性能計算的核心技术水平和自主可控能力。
三、发展E级计算面临的挑战
E级计算机核心技术的挑战
E级计算机的研制面临巨大的技术挑战,主要体现在功耗 (Power consumption)、应用性能 (Performance)、可编程性 (Programmability)和可靠性 (Resilience)几个方面,可简单总结为3个P,1个R。
为了应对这些挑战,我们需要在体系结构上有所突破,探索突破当前异构加速、异构多态、国产众核等途径的新型体系结构。在核心关键技术方面要有创新,寻求在高性能处理器、高速互连、低功耗技术、系统软件、并行算法等方面的技术创新。同时要以软硬件协同的方式,改善系统性能,提高系统可靠性,降低系统能耗。
大规模并行软件的挑战
应用软件方面的挑战主要来自E级计算应用软件的大规模并行性。要充分考虑如何发展适应体系结构的大规模并行算法,如何支持数百万核至数千万核水平的大规模并行程序的开发,如何应对异构体系结构带来的新的编程问题,如何实现大规模并行程序的调试和性能调优。如果这些基本问题得不到解决,我国高性能计算的应用水平难以提高。
高性能计算环境建设的挑战
除了硬件和软件之外,高性能计算的推广离不开良好的生态环境。要建立环境可持续发展的运行模式,研发支撑软件平台,实现高性能计算环境的基础设施生态运行;一方面要注重不断丰富环境的资源,另一方面要建立有效的资源共享模式与机制,提高资源利用率,充分发挥资源的效益;要发展新的应用服务模式,拓展环境的应用;要与时俱进,在新的技术条件下提供更高质量、更好体验的服务。这些都是值得我们探讨和努力解决的问题。
构建高性能计算生态环境任务紧迫
当前国际形势下,采用国产处理器实现E级计算机,不是应该不应该,而是不得不采取的措施,依托自主技术已经成为我国高性能计算发展的必然选择。要发挥基于国产处理器的E级计算机系统的作用,必须建立适应国产处理器的应用生态环境,需要我们在系统软件、工具软件、应用软件方面有所建树。事实上,在应用生态环境建设方面我们仍然存在非常大的问题。做一两台高端的计算机不是我们的终点,恰恰是新的起点。未来需要有更多的企业、研发部门、应用部门、学术界一同努力,共同推进我国高性能计算机产业,特别是服务器产业的发展。只有很多人来做这件事情,国产处理器的应用生态问题才能得到解决。