arrow
第六卷, 第二十四期
陈志明:千万亿次科学计算的挑战

《科学时报》2009-11-17头版


作者:陈志明

2009年10月29日,我国首台千万亿次超级计算机系统“天河一号”在国防科技大学建成,使得我国成为世界上第二个掌握千万亿次超级计算机系统技术的国家。这标志着我国超级计算机系统的硬件研制能力进入国际先进行列,也标志着我国科学计算事业进入千万亿次科学计算时代。

科学计算利用先进的计算能力认识和解决复杂的科学工程问题,它融建模、算法、软件研制和计算模拟为一体,是计算机实现其在高科技领域应用的必不可少的纽带和工具。计算与理论和实验一起已成为当今世界科学技术创新的主要方式,一个国家的科学计算能力已成为国家竞争力的具有战略意义的标志。可以预见,千万亿次超级计算机系统的建成,将极大地促进我国对气候与生态环境、航空航天、地球物理、药物设计、纳米材料等复杂系统在各种现实条件下的性态和行为进行精确的模拟和预测,使这些复杂系统的科学原理突破和实际设计达到世界发达国家的 
先进水平。

千万亿次科学计算的特点

千万亿次科学计算的一个显著特点是可以计算问题的规模巨大,一般的千万亿次超级计算机系统拥有10万以上的处理器核心,每个处理器核心可以处理100万个自由度(未知量),这意味着千万亿次计算机可以计算处理具有1000亿个自由度的复杂系统。尽管如此,如果对应用软件所使用的算法不进行研究,千万亿次计算机仍然无法满足许多复杂的实际需求。以全球系统模式为例,地球表面积约为5亿平方公里,以一平方公里为一网格单元,垂直于地球表面的第三个方向分为200层计算,那么就需要1000亿个网格。其中,最主要的分量模式——大气环流模式——在每个网格上需要计算的基本物理量包括大气速度、压力、温度和湿度等未知量,那么一平方公里分辨率的大气模式需要7000亿个自由度,对于实际的气候时间演化模拟,常常需要模拟100年到1000年,而对于一公里的分辨率,模拟时间步长可能不足1秒,这样需要进行至少十亿到百亿时间步的计算。因此,如果对算法不加以改进,这样的模拟计算远远超出了千万亿次计算机的能力,甚至也超出了美国计划在2017年推出的100万万亿次超级计算机系统的能力!

千万亿次科学计算的第二个特点是计算机体系结构非常复杂,这使得支持千万亿次科学计算的应用软件研制极为困难。现在广泛使用的万亿次计算机系统主要是通过单个处理器的高性能和集成1000个以下的处理器来实现的。由于当前半导体技术已经趋近物理极限和计算机能耗的限制,千万亿次计算机系统通常包含成千上万个计算结点,每个结点包含多个处理器,每个处理器包含多核或众核。未来,每个处理器上包含处理器核心的数目将每过18到24个月翻倍。如果将现有的在万亿次计算机系统上运行的科学计算应用软件直接移植到拥有10万个处理器核心、多级存储的千万亿次超级计算机系统上去运行,将根本无法发挥这10万个处理器核心的能力。

正是由于千万亿次科学计算的巨大计算规模和复杂的计算机体系结构,可扩展的大规模并行算法成为千万亿次科学计算的瓶颈。算法的可扩展性是指固定每个处理器核心的计算规模,计算时间随着计算规模和处理器核心数目的同比增加而保持不变。显然,算法的可扩展性要求数值算法的最优计算复杂性。例如,在微电子设计应用中的光刻模拟问题,需要求解三维大波数时谐Maxwell方程组,该问题物理建模的计算量正比于自由度的个数N,而现有的求解代数方程组的算法的计算量正比于N的平方,当自由度增加时,需要更多的处理器核心,如果使用100个处理器核心时一半的时间被用来解方程组,那么当使用1000个处理器核心时解方程组的时间将是91%,1万个处理器核心时解方程组的时间是99%,因此对于使用万个处理器核心以上的计算机,几乎所有的时间都花在了求解方程组上。这意味着,如果计算规模和处理器核心的数目都增加1000倍,计算时间将增加1000倍,而不是可扩展性所希望的计算时间不变,或者说,要保证计算时间不变,处理器核心的数目增加1000倍,计算规模只能增加32倍。需要重视的是,由于现在大多数应用程序还只是在小于1000个处理器核心的计算机上运行的,算法的可扩展性问题还没有暴露,当进行4000个以上处理器核心的应用计算时,问题将很快出现。

千万亿次科学计算的基础研究

科学计算能力包括计算机硬件设备和应用软件及支撑软件的算法的能力。美国2005年总统信息技术咨询委员会报告指出:“尽管处理器性能的显著增长广为人知,然而改进算法和程序库对于提高计算模拟能力的贡献是如此之大,如同在硬件上的改进一样。”以在科学计算应用中广泛出现的三维拉普拉斯方程计算为例,从上世纪50年代的高斯消去法到80年代的多重网格法,算法的改进使计算量从正比于网格数N的7/3次方下降到最优的计算量正比于N,对于N等于100万,也就是三维区域每个方向只放100个网格点,计算效率就改进1亿倍!因此,与万亿次科学计算相比,对于千万亿次科学计算,由于计算问题的规模巨大和千万亿次计算机的能耗限制,算法的改进对计算能力的提高更加重要。

2008年4月25日,笔者参加了在华盛顿举行的“基于模拟的工程与科学研究与发展国际评估研讨会”,该会议由美国世界技术评估中心(WTEC)主办,是WTEC在美国科学基金会等机构资助下,进行为期6个月的访问欧洲和亚洲许多一流科学计算研究和应用中心的总结报告会。在今年出版的WTEC报告中对1998~2006年获得著名的超级计算Gorden Bell奖的应用程序进行了评估,指出尽管获奖程序的应用领域各不相同,但共同点是,算法(线性代数、图剖分、区域分裂、高阶离散)的进步使得获Gorden Bell奖应用程序对计算能力提高的贡献超过摩尔定律。

任何计算机系统,包括能够处理1000亿个自由度的千万亿次计算机,所能处理计算问题的规模总是有限的,因此自适应方法将在新一代千万亿次科学计算的软件研制中发挥重要作用。自适应方法是研究如何让计算机自动实现自由度最优分配的计算方法,它的基本思想是为了保证计算精度,计算机所能处理的自由度并不需要平均分配。例如对于天气预报,我们可以在台风、暴雨和我们所特别关心的区域分布更多的自由度,仍然保证计算结果的可靠性。在实际应用中,自适应方法往往能带来两三个数量级计算能力的提高,因此当前自适应方法无论在理论研究还是在软件实现方面都得到越来越广泛的重视。值得欣慰的是,在国家“973”计划项目“大规模科学计算研究”和“高性能科学计算研究”的持续支持下,我国在三维并行自适应方法的理论、应用和具有自主知识产权的自适应方法软件研制方面取得重大突破,为迎接千万亿次科学计算的挑战提供了坚实的基础。

代数方程组和大型特征值问题的可扩展算法是制约千万亿次科学计算的瓶颈,必须加大研究力度。算法的可扩展性需要算法的最优性,也就是算法的计算复杂性应与问题自由度个数N成正比。对于迭代法,通常每一步迭代的计算量正比于N,可扩展性要求迭代步数不依赖于问题的规模,这需要高效的预条件技术。对于线性椭圆问题离散得到的线性代数问题,过去30年数学家发展的多重网格法和具有可扩展性的代数多重网格法较为满意地解决了预条件问题,代数多重网格法的可扩展性在IBM蓝色基因/L上一直到13万个处理器核心时都得到了成功验证。但对于非椭圆问题,例如在微电子技术应用、石油勘探技术中起关键作用的大波数时谐波动计算问题,高效预条件的构造是一个长期未解决的公开问题。可以预见,大波数时谐波动问题计算方法的突破将极大地推动千万亿次科学计算在这些应用领域中的进步。

千万亿次科学计算应用软件的研制无疑在千万亿次科学计算的应用中起着关键的作用。在国家两期“973”项目的支持下,我国对高性能科学计算软件的研究开发经历了从串行程序并行化到高性能科学计算软件框架或软件平台再到应用软件的转化过程。由于高性能计算机系统体系结构的复杂性,传统的串行程序并行化方法无法适应研制周期和发挥计算机最大性能的要求,这促使我国的科学家根据并行应用程序的多层软件体系结构,提出了“集成共性、支撑个性”的新型并行软件研究方法。在此新思路下,北京应用物理与计算研究所研究员莫则尧带领的团队成功研制三维并行结构自适应软件框架JASMIN,中国科学院数学与系统科学研究院研究员张林波成功研制三维并行自适应有限元软件平台PHG,这两个平台对用户屏蔽并行实现细节,较好地解决了自适应方法并行实现中的负载平衡难题,在我国百万亿次机群系统“曙光5000A”的测试中,直到4000个处理器显示出良好的可扩展性性能。进一步发展JASMIN和PHG,使它们适应于千万亿次计算机系统,成为一个十分重要的发展目标。JASMIN和PHG的研制成功为我国参与新一代千万亿次科学计算应用软件世界范围的竞争提供了强大的基础和宝贵的经验。

总结与展望

高性能计算机的计算能力一直按照每10年增长1000倍的速度提高,与现在得到广泛使用的万亿次机群系统的体系结构不同,未来的超级计算机将拥有十万、百万到千万的处理器核心,这给适合于千万亿次或峰值更高的超级计算机的应用软件研制及其支撑的算法研究开发带来了前所未有的挑战。加强面向千万亿次科学计算的基础研究,特别是可扩展算法和应用软件实现技术的研究,成为发挥千万亿次计算机强大计算能力的关键。在新一轮高性能科学计算应用软件——千万亿次科学计算应用软件的竞争中,世界各国都在不断地加大支持力度。我国在科技部“973”项目的持续支持下,形成了一支多学科交叉的高水平的年轻队伍,在科学计算的基础算法研究、应用软件的研制和大规模并行软件平台的研制方法方面取得了重要突破。可以预见,我国在新一轮的国际竞争中将是大有作为的。

致谢:本文得到中国科学院大气物理研究所研究员王斌,北京应用物理与计算数学研究所研究员江松、莫则尧和中国科学院数学与系统科学研究院研究员张林波的大力帮助,特此致谢。

参考文献

[1] 2005年总统信息技术咨询委员会报告:《计算科学:确保美国竞争力》,北京应用物理与计算数学研究所信息中心译,2006年4月。

[2] WTEC Panel Report:“International assessment on research and development in simulation-based engineering and science,” World Technology Evaluation Center, Washington, 2009,http://wtec.org。

[3] 中国科学院数理学部“高性能计算战略研究”咨询组:《加速发展我国高性能计算的若干建议》,2006年10月,《科研信息化技术与应用》,2008第3期。

[4] D.A.Bader: 《面向千万亿次计算的算法与应用》,都志辉等译,清华大学出版社,北京,2008。