人才培养是中国高性能计算面临的重大挑战

  • 来源:微型计算机
  • 关键字:人才培养,挑战,英特尔
  • 发布时间:2014-11-21 12:19

  2014英特尔高性能计算技术峰会近日在重庆成功举办。会议期间,本刊记者与北京大学信息学院计算机系副主任陈一峯先生以及英特尔中国公司软件与服务集团客户响应团队经理乔楠先生进行了交流,就中国高性能计算领域面临的人才瓶颈进行了以下探讨。

  MC:您能比较一下国内、国外在高性能计算人才培养上的差距吗?我们在这方面的优势在哪里?

  陈一峯:首先,我们在人才培养和需求方面的缺口特别大。因为高性能计算确实涉及到比较多的学科,而且涉及到的技术难度特别大,门槛也很高。要求这样的人才既要懂数学又要懂计算机的结构,还要懂物理。所以基本上现在整个产业都处于招不到人的状态,而我们的一个学生可能会有很多个机会。当然,从另外一个角度说,这说明我们的人才培养没有跟上。这也不光是我们中国的问题,包括国际上整个产业都有这个问题。

  我们国内在人才培养方面也做了不少工作,但确实还是落后。不过和国外比起来,我觉得也有一定的优势。举个例子来说,如果我们的学生需要做一个有兴趣、有创新的工作项目,我们有“天河二号”、“天河一号A”或者其他的超级计算机可以去申请使用,这个机会就要比国外的学生、老师多。我们中国花了大量的资源去做硬件机器,所以有很多这样的资源。这也是为什么我们小组选择这个研究方向(蛋白质折叠),就是因为国家支持、国家需要。

  另外,北京大学是一个文、理、工综合大学,这又是一个很大的优势。我们的高性能计算有时候会涉及到很多的学科。北大在学科布局上非常完整,比如生物、化学、物理、天文、工学、工程等,这些学科都需要高性能计算。之前我在会上也提到,一定要和应用领域的专家一起来做,把应用映射到最新的机器上,这是一个挑战。现在国外,比如美国,有国家实验室的机制。国家实验室就是以超算为中心的联合研究机构。它的特点是多学科共同研究,物理学家、化学家、计算机专家,他们工作时在一起,连聊天都在一起,这样的机构对应用的发展会有很大的促进。因为人必须在一起,听听别的专业的人是怎么考虑问题的,他们的经验是什么。只有这种多学科的交叉,我们才有可能发现新的方法。

  MC:随着新的技术,比如MIC(众核)或者大数据的出现,适合这些新技术的软件开发人才也显得不足,不知道两位怎么看这个问题?

  陈一峯:首先,大家都能看得到这是一个挑战。但我想从另外一个角度说这个问题,其实不是软件技术开发或者编程经验这方面进展缓慢,而是硬件发展太快。比如,如果是很多年以前,可能我们发表一篇科研论文文章,推迟五年也没有关系,科学发展的速度也没有降低。但是现在就不行了,现在每几个月就有新的硬件产品,而且都是在不断地改进、不断地更新,采用不同的模型、不同的架构以及不同的产品链。

  所以,其实是硬件技术发展太快。在新的硬件环境下如何编程、如何开发软件,我们也在学,这有一个过程,而且我们自己还是做计算机专业的。我们还需要研究,寻找用什么样的方法能在把这个工具用好,等我们把这个想明白了,再想办法去训练和培训应用方。后续再交付到应用方,更需要时间积累,因为他们不是搞计算机专业的,对结构的理解要弱很多,这又是一个过程。包括培训,怎么在低年级本科生里面去教学,怎么教他们做并行,我们都在做尝试。有的可能过程很慢,现在看起来是跟不上的,落后的。

  在众核时代,确实存在与用户之间的共识少的问题。在一段时间内肯定用户是会感觉到的,因为他的学科发展不是这个频率,他的知识更新、研发周期不是这个频率,他可能引用的是十年前的文献,但是在硬件领域,十年前的文献就没法儿引用,因为讲的东西都完全不一样。每一个学科都有它的发展规律。这在短时间内肯定会有这种问题,我觉得也是正常的。大家可以注意发展方向,我们有没有可能设计新的方法,符合这个发展方向,所以以后变的时候,可以少量地调整,让这个技术继续能够适用,这可能是一个合理的思路。

  乔楠:我补充一下。我非常认同陈老师的观点,硬件的发展速度过快,软件跟不上。从英特尔的角度来讲,我们也实实在在看到这个问题。从单核、双核到四核再到多核,甚至到现在的众核,CPU的核数在不断增加。另一方面,每一个核的复杂度也在提升,比如它的“VPU”,也就是向量执行单元,也在不断地“长胖”。还有内部的缓存以及跟内存打交道的部件,都在变得越来越复杂。英特尔看到这个问题,然后做了以下几件事情,尽可能地弥补硬件发展过快导致的软件问题。因为我是来自软件部门,所以我能看到这方面的努力。

  第一个努力是在人才培养这一块。英特尔这边有大学合作部,最早是多核培训,与国家教育部合作,组织面向大学老师的培训,每年都会有好几次。然后是提供多核的基本培训内容和材料,也会编一些书籍,最后甚至会在大学开设一些选修课甚至必修课上去开课学习。这是大学培养。另一方面是专才培养,主要是在商业领域有一些培训课程,比如在地震资料处理或者或者DCC动漫渲染等领域,提供专业人才的培养机会。

  第二,通过工具来帮助我们的开发者降低开发成本,提升开发效率。英特尔提供了很多大家耳熟能详的工具,像VTune、ThreadProfiler等多线程、多进程和集群的工具。另外,在众核MIC上的工具和在CPU上的工具是统一的,这样打通所有的环节。

  第三,从硬件这个角度尽可能让它们去融合。指令集未来会是完全兼容的,现在已经部分兼容,未来会完全兼容,不同型号、不同平台将来是走融合这条路。陈老师在会上专门提到他也有这种感觉。从编译器的角度会把指令集的不同给屏蔽掉,软件自己能够捕捉硬件平台不同来自动地适应,这个智能化是一个过程,编译器现在已经迭代了这么多年,已经是十几的版本了,而且还在不断往前走。

  最后一点,英特尔和各方一起努力,包括跟陈老师以及其他老师一起做了一些竞赛,努力去让大家了解这方面,培养这方面的人才。总的来说,高性能计算是有一点阳春白雪的,这方面困难会一直存在下去,因为整个世界是在发展的,计算速度是在发展的,问题永远会存在,我们只能说不断地推着它往前走。

  MC:CPU技术更新之后,应用方面的鸿沟如何弥补?

  乔楠:关于如何弥补计算和应用的鸿沟,英特尔也并不是闭门造车,CPU架构设计师们不是整天在实验室埋头想未来是怎么样的,我应该怎么样设计CPU、芯片,不是的。因为我就参与他们的设计,所以我知道,可能不止是未来一代,未来三、四代的产品设计都会提前很长时间去做Workload测试,了解真实的应用和应用负载。英特尔会在全世界范围去了解各方面的行业发展方向,它所在领域未来的使用量,哪个是未来的爆发增长点等等。

  像最近热门的互联网和大数据,之前就早已经出现在我们的设计蓝图里,甚至还包括存储部分。英特尔本身是做CPU的,为什么还去做SSD呢?这就是因为英特尔看到I/O会是一个瓶颈,如果不把这个问题解决,就无法将CPU的效率发挥出来。否则,CPU就好像是一个聪明的人,但是没活让他干。英特尔会每年都有这样的Workload分析,为未来的CPU去做设计。同时我们的架构设计师还会跑到世界各国,跟陈老师这样的专家去讨论。比如,前几年我们的一个院士就专门到百度跟他们的架构师去交流,未来我们需要设计大的众核还是小的众核,功耗需求是什么?各方面都去了解。从历史的长河来看,这实际上是工业界、科研界以及商业界互相博弈的过程,最后胜出的一定是产生最大社会和商业收益的那些架构。

  文 本刊记者 袁怡男

关注读览天下微信, 100万篇深度好文, 等你来看……