IT业界

超级计算机的窘境:软件开发滞后限制其应用

图:2009年5月15日 工程人员正在安装超级计算机的刀片箱 马丹摄

图:2009年6月15日,国内首台百万亿次超级计算机“魔方”,在上海正式启用。“魔方”不但是亚洲第一的超级计算机,也是目前美国本土之外唯一计算速度排名进入全球前十的超级计算机,表明中国成为全球第二个能够研发百万亿次超级计算机的国家。上图为超级计算中心主控机房。

现在的超级计算机通常都有几千颗CPU,速度已经超过每秒千万亿次,但能支持500颗以上CPU的应用软件却很少。像国家天文台需要上千个CPU的运算却缺少软件可用。

上海超级计算中心总共有300多个用户,医生丁海是其中一个。他独立研究的课题涉及较复杂的模拟计算,用普通的电脑根本跑不起来,于是他到超算中心,申请使用一部分计算资源。

128颗CPU的极限

到超算中心排队的单位一直很多。截至2008年,中心装备的曙光4000A型超级计算机CPU使用率已达到88.5%。这台拥有2048颗CPU的超级计算机已经接近“满负荷运转”。2009年6月,“魔方”的加盟将中心可提供的计算能力一下字提升了20倍。它是曾在2008年底排名世界前十的计算机,峰值运算速度达到每秒230万亿次。然而没能进入队列的任务还是很多。

丁海只需要用几十颗CPU,但在300多个用户中已经略高于平均数——虽然中心的客户中不乏蛋白质折叠这样的大型科学计算和国产大飞机设计这样的大型工程项目,但大型用户并不占大多数。据上海超算中心2008年12月的简报统计,在当月新增的10个用户里,只有清华大学航空航天学院、南京大学物理系和上海天文台三家占用的CPU资源在128颗以上。

“不可能给得太多”,中心副主任袁俊说。中心为了照顾到300多个用户的需要,必须进行协调管理,才能最大发挥其整体效能。成立于2000年的上海超算中心不仅承担着“国家网格”计划的南方主节点任务,还为华东地区乃至全国的科研单位和工程用户提供开放的计算服务。袁俊告诉记者,128颗,往往是上海超算中心为单个任务所能提供CPU数的最大值。

事实上,即使资源方面没有限制,很多大型项目也因为技术上的原因用不上那么多运算资源。

规模再大软件控制不了

南京航空航天大学的飞行器设计实验室曾经从浪潮公司购置过一套十多个节点的高性能计算集群,可用着用着就发现不够用了。他们计划购买一套更大的,升级到64个计算节点。购买,安装,迁移任务,一切停当,一个奇怪的现象出现了:运算效率不仅并没有提升,反而下降了。研究人员只好请来浪潮的维护工程师,发现问题出在该应用软件的扩展性上——原来的软件根本不能支持这么多CPU。

据浪潮公司提供的一份资料显示,虽然数百上千个CPU级别的计算机集群现在已经大量出现,但支持500个CPU以上的应用软件却很少。许多流行的高性能软件,特别是广泛应用的开源软件,如在地震预报、蛋白质计算中运用的软件,并行度并不高,有的甚至还是串行程序。这就好比是好不容易修好了一条高速公路,回头一看,却缺乏好车。

“现在的关键是软件跟不上硬件的发展速度,导致超级计算机的计算能力发挥不出来。”浪潮公司服务器部门的经理包艳婷说。对此中国科学院超级计算中心主任迟学斌认为,在研发的历史上,我们一直重视有形的东西,忽视无形的东西。计算机固然很重要,但是如果在这个平台上没有要做的事,那也等于是浪费。

对上海超算中心来说,困难主要是价格问题。尽管上海市政府给了他们令同行羡慕的的持续经费支持,使他们可以采购中国最好的计算机硬件,却无法将最好的软件也统统搬来。国家天文台可能是中心的用户里对CPU要求最高的之一,他们需要上千个CPU同时工作,以计算海量的天文观测数据。但能支持的软件在国际上也很少,即使有也买不起,他们只好自己编写开源代码。它更自由,却未必好用。

再者,能够写此类软件的人才太过稀少。国内高等教育研究生以上学历的教育中,完备、深度的“计算科学”教育既不系统,也不完整,更没有基于并行计算方面的计算科学教育和训练。同时,计算科学和各应用科学的团队在互相协作方面也缺乏机制。美国一个成熟的计算应用软件通常都经历了至少20年以上的持续开发,如计算化学软件NWCHEM,开发团队里化学家、计算数学家、计算机科学家保持了合适的比例,政府也给予了资金支持。

希望看到您的想法,请您发表评论x