异构平台挑战软件设计

2011-11-09 06:42王左利
中国教育网络 2011年9期
关键词:教育网络南京大学异构

文/本刊记者 王左利

异构平台挑战软件设计

文/本刊记者 王左利

“现在要做一个好的软件工程师,与以前大不相同的是,你必须对硬件充分了解,这样才能设计出优秀的算法。”

南京大学地球科学系教授周会群对高性能计算的研究非常深入。他说,计算机可以帮助学科人员聪明地做实验,无论是“做不了”的实验,还是“做不起”的实验,计算机都可以帮助我们去做。作为一名在地球科学领域但每天都在跟高性能计算打交道的学者,他对当前高性能计算发展的一些观点更值得计算机学科的人去体会。

对于GPU的研究大量重复

《中国教育网络》:最近全球高性能TOP500排行榜中,排在首位的日本理化研究所的超级计算机K比其他计算机快了数倍,非常惊艳。您对日本高性能计算界相当了解,您觉得日本在高性能计算方面有哪些优点值得我们借鉴?

周会群:日本是一个做事情很有目标的民族。K在设计之初,就有报道说,这是冲着TOP500榜首去的,志在重夺世界第一。它也确实做到了。

日本的超级计算机有一个特点,就是在硬件诞生的同时,就有庞大的软件开发计划。这从著名的地球模拟器的设计中就可以看到。

地球模拟器是由日本宇宙开发事业团、日本原子能研究所以及日本海洋科学技术中心共同研发的,在研发伊始,就有非常明确的应用目标。它要对整个地球的大气环流、全球变暖、地壳变动等活动进行预测与解析。比如,通过计算机模拟来预测厄尔尼诺的现象,解析全球变暖会对气候产生怎样的影响,或者是通过计算机模型来推测数万年以上的大气或者海洋的情况。

日本在建大型计算机设施时,往往都有明确的应用目标,他们希望以此来保持本国技术的先进性,这是一个很重要的战略。

对比国内,我们在应用与硬件的结合上做得很不够,往往缺乏典型应用的支持。甚至缺乏对硬件设施建好之后如何经济、有效地利用起来的考虑。

《中国教育网络》 :现在GPU越来越热,您认为,异构平台将会是一个趋势吗?

周会群:是的,不过异构平台与其说是一个趋势,不如说是我们不得不接受的选择。关于GPU,我所看到的是,很少有人做真正有意义的工作。虽然我们也可以看到,各个领域对GPU的应用正轰轰烈烈,类似“GPU在某某领域的应用”文章层出不穷,但其实质一样。因为科学计算万变不离其宗,大多数模型到最后都归结为求矩阵特征值与线性代数计算问题。

我觉得与其这样,不如有专门的人集中力量把两个常用的数学程序库BLAS与LAPACK在GPU上高效能并行化,其他程序只需连接这两个库,这样一切问题迎刃而解。现在的问题是,最本质的工作没有人做,却有大量重复的工作正在进行。

算法评判标准改变

《中国教育网络》 :那么,在多核或者异构平台时代,您认为存在的软件挑战在于什么?

周会群:如何有效、协调地综合利用GPU,如何将现在在C P U上广泛使用的数学程序高效率地应用到GPU上,是一个巨大的软件挑战。如果没有好的算法,异构处理器往往会出现通讯时间很短,等待时间很长的问题。

在异构和多核时代,评断算法好坏的标准有了改变。我们必须重新审视既有的算法。过去我们认为一个好的并行算法应当符合:高度并行性,即算法能够将计算任务分解成尽量互不关联的部分;进程之间通信量尽可能少;内存的合理利用。而且往往强调的是前两个准则,比较忽略第三点。而现在,忽视第三个标准的算法往往表现不好。

例如,解线性方程组的Gauss-Seidel迭代法及其变种,常常用于为大型科学和工程问题的偏微分方程离散化后的得到的线性/非线性方程组求解提供条件预优解。可以证明所谓的红黑迭代格式可以把原来相互关联、不利于并行计算的算法变为完全互不关联、具有最高并行度的算法。按列均衡分割迭代矩阵,分配给不同

的CPU核,各核之间的通信量也很少,完全符合前述准则的前两条,按过去的标准是一个优良算法。可是,在一台两路八核的服务器上,我们发现虽然使用双核的加速倍率基本可以达到使用单核的近2倍,但当使用核数继续增加后,加速倍率基本上没有任何增长。在8个核上运行时每个核的并行效率仅30%左右,可以说是效率很低。

而过去一些表现不好的算法今天倒是有了用武之地。比如,天体物理学计算和材料科学、生命科学研究中所用的分子动力学模拟方法分别涉及计算N个粒子之间的万有引力和库仑力,其计算复杂性为N的平方,模拟中80%以上的时间都耗费在这两种力的计算上。最笨的算法是直接计算粒子两两之间作用的所谓的笨办法。过去也开发了大量优化算法,但是目前在GPU上计算最快的算法正是笨办法,比优化算法快数十倍。

现在要做一个好的软件工程师,与以前大不相同的是,你必须对硬件充分了解,这样才能设计出优秀的算法。过去,CPU有什么进展,程序就有什么进展。但多核处理器或者是异构平台并非如此,无论所使用的处理器比之前快多少倍,如果程序设计得不好,结果可能一倍都快不了。

对于高性能计算来说,现在一个理想的CPU要具备两个因素,第一,要有很大的Cache,第二,与其他CPU和内存的联系必须非常紧密,也就是link有足够的带宽,很低的时延。否则核再多都没用。

计算机教育要注重基础理论

《中国教育网络》 :那么对高校培养计算机人才提出了哪些新挑战?

周会群:科学计算里涉及的软件开发不同于普通的软件开发,是一个复杂问题。碰到的很多问题,如果不懂其理论,根本没有办法做好。这就需要对当前的课程进行改革,重视计算机基础理论。而计算机基础理论的教学是国内计算机教学中的软肋。

现在,中国的大学,包括一些顶尖的学校,计算机体系结构这门课早已不是重点。一方面,国内在此方面鲜有建树,体系结构几乎都是由别人所决定的;另一方面,在大多数学校作为选修课来供学生选择。这门课比较难,所以很少有学生选它。另外一门非常重要的课程是并行计算原理。要想解决实际计算中遇到的问题,这是很重要的基础理论。但同样遗憾的是,它在很多学校都不是必修课。课程设置的滞后性与不科学性,导致人才的缺失。

此外,计算机教学应当与其他学科进行紧密的结合。因为高性能计算是一门交叉学科,需要培养具备复合知识结构的人才,而中国的计算机教学比较忽略这一点。

周会群 南京大学地球科学系教授。毕业于南京大学地球化学专业,在南京大学获博士学位。曾在日本名古屋大学访问研究,进修和研究内容为:计算机断层扫描、地震勘探数据的三维可视化,随后在日本和美国的知名公司任职。目前任江苏省高性能计算专业委员会主任。

猜你喜欢
教育网络南京大学异构
谆谆教导 殷殷期望——南京大学师生热议习近平总书记给南京大学留学归国青年学者的重要回信
试论同课异构之“同”与“异”
基于人工智能辅助的职业教育网络培训管理研究
南京大学学报数学半年刊 第38卷 2021年 总目次
《南京大学学报数学半年刊》征稿简则
长沙市教育局召开教育网络信息安全工作会议
吴健:多元异构的数字敦煌
异构醇醚在超浓缩洗衣液中的应用探索
南京市口腔医院 南京大学医学院附属口腔医院 南京大学医学院口腔医学院
新常态下高校心理健康教育网络融合模式