超算的“苦”,就让老衲来化解吧

一群从业多年的顶尖技术人才,利用多年的行业经验,积累了各大行业客户的成功案例,最终推出了一款能够解决你实际应用问题的软件平台。最关键的是,这款软件还是免费的。

别逗了,哪有这样的好事儿。

真的,这就是我们今天要介绍的主角——阿里云E-HPC监控平台,“集谛”。

集谛”是什么?

“集谛”的英文名称叫做CloudMetrics,在阿里云官方的序列中,它作为弹性高性能计算的一个性能监控与分析引擎模块出现,支持集群资源利用情况的实时监控和用户作业运行情况的在线分析。

最初,我也很诧异阿里云采用了这么一个佛系的名字——集谛。我去网上查了一下,这个名字就是佛教用于,本来是佛教四圣谛中的一种,即所谓的“苦集灭道”。

集谛者,谓贪爱法。由此贪爱而生耽着,以耽着故发业润生,招集为因是名集谛——《佛说决定义经》

说实话,这句话我没看明白,太高深太难理解了。通俗理解,集谛中的集是集合、聚集的意思,集谛所描述的就是众生苦的根本。反过来解读一下,能被称为“集谛”的,就是汇聚了众多的苦和众多的烦恼。到这个层面大家就都好理解了,因为管理HPC不仅仅很苦,而且很烦恼。

超算的“苦”,就让老衲来化解吧

如上图,这个“集谛”在阿里云E-HPC中,更重要的是解决性能的困扰。熟悉HPC的都知道,虽然高性能计算本身是一种计算能力,但是更多的时候我们从最初的设备安装、上架到部署,再到日常的管理和运维,都是很复杂、很琐碎的问题。当然,这一切只是基础。最困难的在于,当你提交作业,点下“开始计算”的那个按键,一切就变成了未知数。

集谛”有什么好处?

多年之前,我在原来的公司负责服务器评测工作,这其中有一项测试就是利用60台老旧的PC机模拟压力,进行SQL数据库测试。只是每次测试的时候,或是因为硬件或是因为温度或是因为人品,失败总是难免的。最多一次,我尝试了15次才跑完了一个测试,总计耗时大约半个月的时间。对于这个测试,我理解为四个字——听天由命。

许多超算业务其实也是类似。在过去的大部分时间内,用户在提交测试之后完全不知道测试的运行状况;而这样造成的结果就是,未来即便客户进行千百次这样的算例,依然不知道应该如何进行优化和调节。如此一来,大家对于计算机的性能极度渴求。

超算的“苦”,就让老衲来化解吧

但事实上,如果我们能够看到算例运行的状态,在算例异常的时候能够得到提醒,甚至于我们可以了解到不同算例下对于计算、存储、网络资源的应用频率,或许我们就可以优化我们的算法和代码,用最短的时间获得想要的结果。这就是集谛的价值所在。

在文章开头我们就说过,目前集谛项目的团队成员都有着多年的行业经验,在加盟阿里云之前,不少成员都是在HPC领域摸爬滚打多年的“老江湖”。这个团队的负责人何万青博士(花名“筏如”)更是有着骄人的“战绩”——在之前供职于英特尔的时候,他曾在全国各大高校和科研单位推广Xeon Phi协处理器,也曾参与天河2号的优化工作。这份工作,也让他成为了超算领域的“陈近南”。

超算的“苦”,就让老衲来化解吧

何万青博士与E级原型机

“我一直在帮用户优化应用,加速程序的运行。之前,我们帮某一个客户优化,受益的只能是一个客户,而且是一次性的;如今我们开发出了‘集谛’平台,则可以将优化的经验融入其中,让更多的用户、更长期的受益”,何万青说。

想要程序优化得好,首先要了解程序的应用情况,比如在运行时刻不同资源调用的百分比。这部分数据,以往都是在客户的系统上才能完成的,而且耗时漫长;如今在阿里云上,通过后台的实时统计,用户不但可以随时随地了解到系统的运行情况,还能够通过节点性能、进程性能的剖析,知晓如何进行改进。

“借助集谛模块,用户可以通过性能大盘查看集群资源的饱和度,从全局监控集群节点的状态。从节点性能,查看节点具体指标的变化曲线和历史数据,并且能够与调度的作业信息相关联;从进程性能,查看具体进程的历史信息,进而确定需要剖析的进程;从性能剖析,获取热点函数分布及其调用栈信息,了解应用内部的执行状态”,集谛团队孙相征博士说。

超算的“苦”,就让老衲来化解吧

孙博士还现场向我们演示了用户如何通过集谛平台来获取算例状态。登录集谛平台后,用户可以看到自己正在进行的算例节点。而通过点击不同的性能选项卡,系统会自动以图表的方式表明当前咨询调度状态。哪里的网络抖动,哪里计算资源占用过高,都可以一目了然。

同样对于当下流行的异构计算方式,集谛也推出了面向GPU加速的解决方案。在这个场景下,“集谛”除了监控节点host端资源外还能监控GPUdevice端的资源利用情况,给出GPU利用率、显存利用率和PCI-E数据传输带宽等性能指标随时间的变化,帮助用户更好得了解应用运行状态,指导应用改进。

超算的“苦”,就让老衲来化解吧

从节点维度,“集谛”能够展示集群中所有节点的GPU资源利用情况。其中不同GPU卡的性能数据按照时间轴展示在同一坐标平面,方便用户对比节点内不同GPU卡间的负载情况。而从指标维度,“集谛”还能够根据指标和GPU卡对性能数据进行细粒度分类,将不同节点的性能数据展示在同一坐标平面内,方便用户对比节点间的GPU负载情况。

如今,许多运行在阿里云E-HPC上的算例都可以通过“集谛”进行优化,比如面向分子动力学应用的GROMACS软件(分子动力学模拟领域主流软件之一,具有模拟速度快、力场种类丰富、分析工具强大、软件开源免费等优点),就取得了不错的优化效果。

超算的“苦”,就让老衲来化解吧

如上图所示,GROMACS软件本身采用“CPU+GPU”的主从协同计算模式,CPU和GPU任一端的性能瓶颈都会拖慢软件的整体性能。因此为了提升GROMACS的软件执行效率,“集谛”选择将CPU端的PME计算过程进一步offload到GPU端。通过这种方式,在减少CPU端计算任务的同时又充分利用了GPU端的计算资源,从而使CPU和GPU两端的计算负载更加均衡。

由此可见,“集谛”能够从计算、内存、网络、磁盘、加速卡等方面系统地监控集群资源的利用情况并系统地展示给用户,方便用户进行多方位地对比分析,帮助用户迅速定位性能瓶颈,从而为用户应用程序的改进提供指导。

当然,目前“集谛”的功能在不断的开发中,按照何万青的话说“每周都有迭代”。其实对于用户来说,优化算例非常重要,可以获得更好的运行效果;但是在优化之后,用户更希望能够形成系统性的报告,对未来的应用作为指导。对此,“集谛”团队也在积极的努力中,更多功能也将尽快实现。

后记:大嘴哥采访跟踪HPC领域多年,感触最大的就是计算资源的不足和应用环境下的不可知,尤其后者对于提升效率乃至于提升整体的HPC应用水平都是大有裨益。“集谛”的出现,从应用侧面部分解决了困扰,至少让用户能够监测到算例的运行状态。

对于许多中小型用户来说,受限于资金、能力等种种因素,他们很难像大型企业或者科研单位那样对现有算例进行调优,可能也不知道如何进行调优。但是当这些用户采用阿里云E-HPC平台之后,他们就可以清楚的知道算例的整体运行过程,这无异于为他们提供了一个超算应用层面的“显微镜”,对于这部分用户来说,“集谛”的价值得到了最大的发挥。

正如“集谛”这个名字所代表的佛家内涵一样,它的出现,就是为了化解超算应用的那些“苦”。


分享到:


相關文章: