原标题:俄罗斯科学家:使用GPU将个人电脑转变为超级电脑


图片来源于: Vladimir Kukulin

引言

对于CPU来说,摩尔定律正在走向终结。而GPU正在广泛应用于深度学习的游戏,和无人驾驶汽车。因为专用的图形协处理器,可以提升一些性能。使用GPU处 理的桌面电脑,当作超级计算机来使用时,性能上可以赶上传统的超级计算机。例如这个月,一组俄罗斯科学家报告称,他们已经能够使用现成的含有GPU的高端 PC,解决原子物理方面的传统计算问题,并且在微调GPU算法以后,比他们同事使用的CPU控制的传统超级计算机,速度更快。另外,还有一项好处就是节省 了使用传统的超级计算机的昂贵费用。

为什么选择GPU来处理复杂运算问题?

“我相信全球许多研究小组,在他们自己的领域,例如地球物理学、地震学、等离子体物理、医学诊断等等,可以得到相似的结果。”莫斯科国立大学的理论物理学的教 授,Vladimir Kukulin这么说。“但是只有结合快速和廉价这两个因素,重新审视整个问题,然后发明一些有效的方法,使用数千个或者上百万个单独的线程,并行处理整 个运算的执行。”

Kukulin的研究小组处理的问题,包括解决他们的领域电磁散射问题,所要进行的广泛运算,例如:当核子碰撞粒子或者另外的核子,并且产生喷雾粒子和子核 。这种核多体问题,Kukulin说,需要包括数以百万计的元素的模型的计算。

这么多运动部件的矩阵代数,甚至可以难倒超级电脑。但是,Kukulin说,他的研究小组实现了用单独的线程指令,和其他相似的线程同时运行,处理巨大的矩阵运算。核计算的并行性,意味着它可以使用GPU来有效地并行处理。

GPU,初始用来处理生成图形时的复杂矩阵运算,今天却具有一些列意想不到的应用,包括比特币挖矿,分子模拟,以及上面提到的应用。Kukulinc称GPU可以处理一些列计算任务,不仅限于原子物理。

总体来说,他认为解决这种类型的问题,需要便宜的GPU超级电脑,元素之间独立而不相互依赖。因为互相依赖,意味着单个元素(例如GPU计算中的线程,)必须通过通常的if-then逻辑门,检查每个元素对于其他元素计算的影响。

并且,这样的条件逻辑步骤,需要CPU参与,这可能减缓计算速度。相反,当系统包含许多离散元素的时候,为了最大化GPU可以产生的速度,最好是找到一个途径变到问题,或者找到表达式的近似值。

“你可以将你的问题写成一种形式,让你大规模并行处理。”他说,“很有必要避免任何条件运算式。”

所以复杂的模拟中,每个部件都是独立于其他部件的。他们的计算轨迹,很难及时的转化为GPU相关的问题。相反,使用GPU的超级电脑,相对于使用CPU的传统超级电脑,海啸的早期预警系统,将预言海啸到达岸边的实时时间的过程,将被加快。

Kukulin说,如果医疗办公室只需要几千美金的桌面电脑,而不需要昂贵的超级电脑,就可以完成三维超声成像,那么,计算密集型医疗诊断工具则可以被更广泛地接受。

前景和挑战

最终,GPU加速的问题,不仅需要编程技巧,而且需要应用领域的专家,解决GPU加速所带来的相关问题。Kukulin认为这具有艺术性,而不仅仅是编程。