今年7月,美国总统奥巴马发布了一道行政令,要求将高性能计算提升到国家战略层面加以规划,并使其效益极大化。其中,高性能科学计算作为最重要的应用方向之一,得到了美国政府的高度重视。
那么,何为高性能科学计算?如何占领未来国际高性能科学计算领域的制高点?
应用为引,依托现代计算机
什么是高性能科学计算?初次听到这个术语,有的人很可能将其与高性能计算机联系在一起。但这并不能囊括这门学科的全貌。
简要地说,高性能科学计算是一门以实际应用为牵引、以高性能计算机为依托平台而快速发展的交叉学科。它可以利用现代计算机的高效,再现、预测和发现客观世界的运动规律和演化特性的全过程。
当前,高性能科学计算已经与传统的理论研究和实验研究一起,成为推动与实现科技创新的几大重要研究手段,在科学研究与工程设计等方面发挥了重要的作用。
其实早在2005年6月,美国总统信息技术咨询委员会就提交了《计算科学:确保美国竞争力》报告。报告指出,在迅猛发展的高性能计算技术的推动下,计算科学将成为21世纪确保国家核心竞争能力的战略技术之一,而高性能科学计算是计算科学中最主要的内容。
那么高性能科学计算包括哪几个主要研究步骤?为了便于理解,笔者将这一研究过程分为“建立物理模型—研究计算方法—设计并行算法—研制应用程序—开展模拟计算—分析计算结果”几个步骤。
具体解析来看,首先,科研人员需要确定科学计算的研究对象;其次,要针对研究对象的主要特征,抓住主要矛盾,建立出描述研究对象的物理模型,这个物理模型包括一组方程、相应条件以及物理参数;在物理模型的基础上,采用与其相适应的计算方法与算法,并研制出相应的应用程序。
用一个形象的比喻,应用程序,就有点像是用计算机语言编写出来的小说。它可以利用高性能计算机进行计算、求解方程组,并获得方程组在特定约束条件下的解。
不过,需要注意的是,与解析理论所得到的方程或方程组的解不同,高性能计算机所求得的解并不是一个或一组表达式,而是一个海量的数据集,数据集内包含了方程或方程组的解,这也是依托高性能计算机进行客观世界规律特性研究的一大特点。
此后,科研人员需要对海量数据进行分析和评估,总结出新的规律与机制,从而可以再现和预测研究对象的运动规律和演化特性,并可以进一步进行真实实验或产品的理论设计,推动社会经济与科技创新的未来发展。
举一个与老百姓日常生活息息相关的例子,通过高性能科学计算,科研人员可以得到局部地区天气变化情况的数据集。他们通过对数据集的分析,可以获得当前和未来一段时间内,该地区的天气变化,从而可以进行天气预报。
科学计算的“求真”“置信”
高性能科学计算的最主要目的是“求真”,也就是计算结果需要具有科学置信度,它是科学计算逼近研究对象真实程度的度量。也就是说,置信度越高,科学计算的模型就越接近于研究对象的真实状态。
可以说,没有置信度的计算就没有真正的科学价值,只是一种单纯的计算机游戏。
在利用高性能计算机再现、预测和发现客观世界运动规律和演化特性的过程中,处处都蕴含着“求真”和“置信”的关键价值。其中,“再现”是为了检验科学计算的置信度,只有基于可靠的科学计算置信度,才能进一步开展“预测”和“发现”的后续研究工作。
但现实问题往往复杂多变,因此,如何提高置信度,成为该领域的一大挑战。不仅如此,在实际问题中如何定量评估科学计算的置信度也非常困难与复杂,是许多大科学工程研究中一块不可或缺又难以设计的重要内容。
就此而论,笔者认为,应当从物理模型逼近真实对象的程度、计算方法的误差、并行算法和应用程序的代码缺陷与舍入误差等多个方面进行综合考虑。为此,笔者提出了对于确保较高置信度的三点建议,或许能为我国高性能科学计算领域的未来发展提供新的思路。
首先,确保物理模型能够反映客观真实的研究对象。物理模型的真实程度是科学计算置信度的基础,也是必要的条件。同时,一个成熟完善的物理模型还要能够做到“事半功倍”,降低对高性能计算机的性能要求。也就是说,要通过物理建模设计的巧妙构思,降低计算的复杂程度与计算规模。
以辐射与物质的相互作用问题为例,一个描述辐射行为的函数需要依赖时间、位置、光子能量和光子运动方向等变量,是一个有七个自变量的函数。如果空间每个维度分布100个网格数,能量分群为50,方向离散为80,那么总的网格数竟能达到40亿。这种网格规模的计算不是现在的高性能计算机能够承受的。
那么,科学家应当如何降低对计算规模的要求?我们可以这样考虑,如果实际问题有对称性,那么,这个问题就可以从三维降低到二维甚至一维,大幅降低所需的计算量。在同样空间网格与能群分布方法下,二维问题可以将网格数从40亿降至0.2亿,是降低计算规模最简单直观的途径之一。
其次,能够解决实际问题的计算方法与高效算法才是有生命力的,因此,科研人员应通过完善计算方法与高效算法进行更有效的科学计算。方法与算法的好坏不仅关系到求解物理模型的置信度,同时也直接决定求解问题的效率。对于计算方法与高效算法研究,最关键的一点是要立足于实际问题,开展科学计算研究。第三点,是研制成熟的应用程序。应用程序是物理模型、计算方法与算法的集成。现代高性能计算机由数万至数十万个处理器组成,因此,如果应用程序不能系统高效地利用这些处理器,就无法体现它的高性能,也就无法享受物理建模、计算方法与算法的提高所带来的优势。
举例来讲,现代高性能计算机的可用期通常只有6年左右,每年的运行维护费用达到上千万元人民币。为了利用好这样的计算机,必然要求在计算机的可用期内,快速研制出高效使用数万乃至数十万处理器的并行应用程序,从而能够最大程度地发挥高性能计算机平台的优势。
并行应用,将优势最大化
在高性能计算机快速发展的今天,面对国家重大重点任务应用研究的需求变化,如何能够在研制高性能计算机的同时,同步、快速研发出匹配的并行应用程序,以最大程度发挥科学计算优势,成为高性能科学计算领域的一大研究挑战。
为此,科研人员开始将目光瞄准高性能计算应用编程框架的研制,希望能够支撑并行应用程序的快速研发及其与高性能计算机研制的同步,为实际应用和高性能计算机之间架设起一座桥梁。
长期以来,北京应用物理与计算数学研究所在这一方向开展的工作与国际前沿齐头并进,取得了较为丰硕的成果,研制的jasmin等编程框架支持了多项国家重大科研任务中众多并行应用程序的快速研发和千万亿次量级大规模数值模拟应用研究。
在我国,从事高性能科学计算的研究机构与研究人员越来越多,研究水平也在逐步提高。可以预见,高性能科学计算将会在科学发现、经济建设与国防研究等方面发挥越来越重要的作用。
但我们也需要意识到,与先进国家相比,我国仍然缺乏能够长期系统地针对实际应用问题从事高性能科学计算工作的机构与人员。因为,高性能科学计算很重要的一个特点是应用牵引,实践性强。为此,笔者也建议,需要在高性能科学计算领域开展来自物理、力学、数学与高性能计算机等多方面人才的协力合作,并大力推动该领域多学科的交叉融合。以应用为引,发展具有我国特色的高性能科学计算。