GPU“虎山”探未来

以上为镉化钪系统(CdSc)、硅的量子点系统(Si-QD)和磷化镓铟(GaInP)材料计算结果可视化图片。通过研究人员研发的相关软件,GPU的强大计算能力正在一步步为材料计算领域的研究提供支持。

不少人认为,GPU(图形处理器)难以在平面波第一原理计算这样复杂的算法中发挥作用,甚至断言GPU不适合此类计算。尽管如此,一支来自中科院超算中心的队伍却铁了心,偏偏要去挑战——

■本报记者 杨琪

“现在,我们的代码已经可以跑模守恒赝势的分子动力学、原子弛豫以及电子结构计算;我们正在研发超软赝势的GPU代码,相应的测试工作也已展开。”中国科学院计算机网络信息中心超级计算中心(以下简称超算中心)的研究人员贾伟乐通过微信,向《中国科学报》记者传来了团队最新的科研进展。

“我们的研发更加游刃有余。”他的话语似乎透露着轻松科研的感觉,其实“苦日子”早已猛烈地席卷了参与研发的每一个人。

因为这一团队之前的工作,是向被判了“不可能”的领域进发——他们要让GPU(图形处理器)在平面波第一原理计算这样复杂的算法中发挥作用。

挑战:超算不休 GPU将当道

今年夏天,“天河二号”以每秒33.86千万亿次的浮点运算速度,成为全球最快的超级计算机。

“中国的超级计算正在迎头赶上。”美国劳伦斯伯克利国家实验室材料计算专家汪林望这样评价。

超算发展无止境。未来十年,超级计算机性能将向百亿亿次迈进,GPU(图形处理器)和多核CPU处理器的广泛应用将极大地促进该进程。

作为资深科学家,汪林望同时也发现了中国超算发展的不足,“缺乏在这些大机器上运行的应用软件”。因此,许多大型计算机被分成多个部分,被不同的研究人员使用。

“这有悖于建设超级计算机的初衷。因此,研发大规模并行应用软件极其重要。这样的工作正是超算中心团队正在做的工作。”汪林望说。

这支队伍将目光聚焦在如何让传统的材料计算软件使用GPU进行有效加速。

GPU是一种新型显卡“心脏”,其体系结构与传统CPU不同,导致传统软件设计往往不再适用。特别是“材料计算算法和GPU体系结构的双重复杂性,这一工作很少有人能够突破。”超算中心研究员王龙介绍。

再加上硬件设备水平不断提升,建好的大型高性能计算没有软件“跑”怎么办?“一定要有所储备。”超算中心团队看到的不只是眼前。

启动:三方合作战旗扬起

材料计算软件在半导体、太阳能等材料科学研究领域中被广泛应用。如果材料计算软件使用GPU进行有效加速,攻克难题的团队至少要“懂量子力学用于哈密顿矩阵求解,并行计算、懂数学,还需要懂得GPU的特性并设计算法”。

因此,这是一次物理学、计算机学和数学多学科的碰撞。超算团队的执意,更有赖于来自各方学者的倾力支持,比如汪林望。早些时候,他已研发出CPU平面波第一原理计算软件PEtot。

2011年,汪林望得知复旦大学教授高卫国带领吴悦进行GPU相关的研究工作后,他便与高卫国商量大家一同试一试平面波第一原理。超算中心主任迟学斌一直非常重视科学计算软件的研发,在他的支持下,王龙带领贾伟乐、曹宗雁和付继芸加入针对GPU的研究工作。

没有鲜花也没有盛大的仪式,美国劳伦斯伯克利国家实验室、复旦大学和超算中心的三方合作平静地启动了。

可是,攀登科学高峰的过程,却很难用平静来形容。数不清的险阻隐藏在超算这一虚拟空间中,即便是汪林望或超算团队对于研究成功与否也不敢打保票。

出招:科研就该对自己狠一点

“搞科研,就得对自己狠一点。”这是团队的共识,听起来似乎是调侃,其实这支团队将“狠”劲渗透了科研的点点滴滴。

比如,他们将黑夜当白天用。许多夜晚,他们都在想办法解决难题。GPU代码的调试非常困难,因为许多变量不能够直接打印出来。在CPU代码中需要花几个小时调试出来的错误,在GPU代码中却需要几天时间。

因此,王龙与贾伟乐常常在清晨5点下班。回家休整一下,8点回到办公室继续工作。

贾伟乐还记得有一次自己零点离开实验室,门卫保安稀奇地问:怎么这么早就下班?

大多数时候,王龙累了就在办公室的皮凳子上休息一会,“直到现在,我都忘不了224室皮凳子的气息”。

这样的“黑加白”和“5+2”持续了近4个月的时间,他们面对的难题异常艰涩。

比如其中的关键性问题,即计算体系规模太小,只能用GPU卡进行计算,多个GPU之后,关键的傅里叶计算部分又不适合多GPU计算。如果不攻克这一难题,加速度只能达到5倍。

另外,GPU的计算速度非常快,没有数据结构的总体设计和改变,计算块太小,因此通信也成为瓶颈之一。

“我们坚信,改变软件的总体结构可以有效地利用GPU,推进材料计算的发展。”汪林望说。

对自己“狠”一点,还体现在他们的科研追求:这支团队采用非常严苛的标准来测算加速度。因为,“我们做这件事情是要有实用性、被大家认可的,不是发几篇文章就了事”。

“在当时,该软件将业内最快纪录提高了7倍,效果非常好。”超算中心主任迟学斌说。目前,他们已经将加速提升至20倍以上,同时扩充了新功能。

未来:几分运气更需脚踏实地

经历4个月的磨砺,超算中心团队在至为关键的核心模块研发中发挥了主要作用。2011年4月,他们超算领域顶级大会——国际超级计算大会(SC11)提交论文。

至此,故事依然没有画上句号。

“希望更多的用户能够使用他们的软件,这样GPU的强大的计算能力能够真正为材料计算领域的研究人员所用。”汪林望说。

他认为,商业化对于软件是必要的,这样可以保证软件的正确性和坚固性。同时,这也将对整个材料科学模拟社区作出重要贡献。这也得到了迟学斌和计算机网络信息中心领导的大力支持。

软件的开发是一个庞大的工程,已经作出的成绩和未来持续的探索都离不开专家与团队的支持。

汪林望帮助大家理解算法并给出了必不可少的指导,高卫国等贡献了数学领域的精华;尽管来自超算中心的付继芸是团队中唯一的女生,但是她并不娇气,反而是用女性的细腻和耐性撰写了大量代码;超算中心副研究员曹宗雁更是“神奇”:他用两个小时将超算集群上所有的底层的库与软件安装完毕、进行匹配,而专业公司往往花一天时间安装一个软件。

这支团队继续探索GPU领域,不久的将来,他们将会发布一个可以用于大规模GPU异构集群系统的软件:Ultra-Mat。这一软件将会在半导体材料、计算物理、纳米材料、计算化学等领域广泛使用。

《中国科学报》 (2013-10-15 第8版 平台)

gpu超算算法_科学网—GPU“虎山”探未来相关推荐

  1. gpu超算算法_四颗intel Xeon 可扩展频率高达4GHz处理器+双GPU的全能超算架构

    UltraLAB AlphaS730 (一)AlphaS730产品介绍 UltraLAB AlphaS730是2019年3月上市的一款超级图形服务器,它是目前计算能力最全面的小型超级计算机,配备四颗i ...

  2. gpu超算算法_俄罗斯科学家:使用GPU将个人电脑转变为超级电脑

    原标题:俄罗斯科学家:使用GPU将个人电脑转变为超级电脑 图片来源于: Vladimir Kukulin 引言 对于CPU来说,摩尔定律正在走向终结.而GPU正在广泛应用于深度学习的游戏,和无人驾驶汽 ...

  3. umap算法_科学网—[转载]【源码】均匀流形近似与投影(UMAP)算法仿真 - 刘春静的博文...

    UMAP算法是Leland McInnes.John Healy和James Melville的发明. The UMAP algorithm is the invention of Leland Mc ...

  4. umap算法_科学网-[转载]【源码】均匀流形近似与投影(UMAP)算法仿真-刘春静的博文...

    UMAP算法是Leland McInnes.John Healy和James Melville的发明. The UMAP algorithm is the invention of Leland Mc ...

  5. gpu超算算法_英伟达推GPU加速Arm服务器参考设计!微软Azure启动GPU超算实例

    芯潮(ID:aichip001)文 | 韦世玮 芯潮11月20日消息,昨天,英伟达在2019国际超级计算大会(SC19)上推出用于构建GPU加速Arm服务器的参考设计,以及用于优化网络和存储数据处理的 ...

  6. gpu超算算法_超算安装GPU-based软件 (以pytorch为例)

    一般的超算的拓扑结构是若干个登陆节点+若干个交换机+大量计算CPU节点+大量GPU计算节点+一个(或若干个)存储节点+管理节点. 其中存储节点的共享存储可以被所有节点访问. 一般运作方式是,如果我的计 ...

  7. gpu超算算法_GPU: 超算加速

    在2010年5月份出炉的一份世界超级计算机500强的榜单中,美国Cray的美洲豹"Jaguar",凭借每秒1750万亿次的实测计算能力傲视群雄,排名榜首.但是时隔不久,由中国国防科 ...

  8. mh采样算法推导_科学网—MCMC中的Metropolis Hastings抽样法 - 张金龙的博文

    Metropolis Hastings抽样法示例 jinlongzhang01@gmail.com Metropolis Hasting(下面简称MH)是蒙特卡罗马尔科夫链中一种重要的抽样方法.本文简 ...

  9. python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文

    机器学习中存在两类参数:通过训练数据学习得到的参数:---可认为是辨识得到的参数,例如模型系数: 在学习算法中单独需要优化的参数--超参.调优参数:---算法自身的系数,例如决策树的深度参数: Gri ...

最新文章

  1. Google 公司的 Java 语言编写规范
  2. 【Android 逆向】Android 系统文件分析 ( /proc/ 目录文件分析 | 记录系统和进程信息 | version 内核版本信息文件 )
  3. angularjs组件之input mask
  4. Mac下安装Flink的local模式(flink-1.5.2)
  5. 4-算法 与7无关的数最近的提交
  6. css的white-space属性导致了空格问题——查看十六进制发现2020变成了c2a0
  7. 第二课:电场与偶极子
  8. DSP 2812: 使用C++封装外设时钟控制
  9. SCU4487 king's trouble I(深搜DFS)
  10. 目前1KB文件夹快捷方式病毒扫清方法
  11. ZeroC ICE之Hello World java客户端
  12. Prometheus监控学习笔记之Prometheus普罗米修斯监控入门
  13. 在EXCEL表格中快速自动求和
  14. 数据、变量、内存三者之间的关系
  15. 2018年sfdc工作总结_常见Salesforce 异常
  16. HDOJ 3911 线段树
  17. 包裹侠查快递单号_包裹侠快递查询
  18. html页面标尺,canvas实现标尺.html
  19. 大数据行业就业指南:三大方向 十大职位
  20. 使用Kindle4rss推送自己感兴趣的博文

热门文章

  1. Angular页面发生更新时,更新如何从view层传递到model层
  2. SAP UI5里xml fragment getContent方法的实现
  3. windows系统下如何把excel数据转换成markdown格式的表格
  4. SAP Cloud for Customer里根据External Reference搜索销售订单
  5. Jerry 2016年5月20日到5月23日的学习笔记
  6. mysql 开启引擎命令_MySql中启用InnoDB数据引擎的方法
  7. 宝马计算机考试答案,宝马BMW旅程电脑功能键的说明与测试程序
  8. java 自定义注解 生成json_SpringBoot:自定义注解实现后台接收Json参数
  9. c语言的函数中局部变量可以return吗,C语言--返回局部变量的地址
  10. 数据集转换_“2000坐标”成了标配,你还不懂坐标系定义和转换吗?