【鲲鹏DevKit黑科技揭秘】HPC应用1人天精准调优,综合性能提升24%

什么是HPC高性能计算?
HPC(High-performance computing,高性能计算)是指通过聚合结构使用多台计算机和存储设备提供比传统计算机和服务器更强大的计算性能,以极高速度解决大规模科学问题的计算和海量数据的处理,从而帮助人们探索科学、工程及商业领域中的重大难题。

当然,对于HPC来说,这些每秒可以运行百万亿次、千万亿次计算的超级计算机只是基础、上面跑的软件也至关重要。如今,各种HPC应用被广泛地应用于众多领域的科学研究,辅助模拟千差万别的计算问题:

● 制造:通过仿真模拟自动驾驶、碰撞测试等环节,辅助设计更加安全的零部件;

● 基因组学:通过 DNA 测序、药物相互作用分析和蛋白质分析来推进系谱学研究;

● 气象:精准预测台风、暴雨、雷电等极端天气,有效减少人民的生命财产损失;

● 石油和天然气:执行空间分析,测试储层模型,从而预测油气资源分布位置。

……

HPC在计算流体力学CFD领域的典型应用:风雷软件
计算流体力学CFD(Computational Fluid Dynamics)是利用计算机和数值方法对流体力学问题进行数值模拟和分析的新兴交叉学科,是典型的计算、访存密集型HPC应用,它能够通过高速计算获得高空气流模拟仿真环境、辅助飞行测试,从而大量减少原型机试验,缩短研发周期,节约研究经费。目前在航空、航天、汽车等工业领域,利用CFD进行的反复设计、分析、优化已成为标准的必经步骤和手段。

风雷软件(PHengLEI)是国内首款具有自主知识产权的大型通用CFD开源软件,目前广泛应用于全国航空航天研究院所和高校。鲲鹏平台多核多并发、易扩展等特点能够很好的满足风雷软件的高并行计算需求,并且鲲鹏开发套件DevKit提供的全场景性能调优能力、能够快速消除性能瓶颈,进一步提升风雷软件在鲲鹏上的运行性能。

通过鲲鹏DevKit专项调优,实现风雷软件整体性能提升24%
OpenMP/MPI并行编程优化是提升风雷软件的计算速度和处理能力的有效手段之一,能够更好、更快的协调多个处理器来并行求解同一问题:比如通过并行编程接口MPI(Message Process Interface)实现各个并行任务之间信息交换和协同控制;或者通过并行编程方式OpenMP添加并行化指令到顺序程序中,将串行程序直接演化成并行程序。

鲲鹏DevKit性能分析工具面向HPC场景提供了OpenMP/MPI专项分析能力:该功能可以采集风雷软件面向OpenMP/MPI应用的关键指标以及性能监测相关信息,精准获得串行及并行时间、较准的Top-Down指标、指令分布和内存带宽等信息,并针对异常信息给出优化建议,帮助技术人员精准、快速的完成调优。
在这里插入图片描述

图1 鲲鹏DevKit性能分析工具-OpenMP/MPI分析
分析结果:

  1. 首先,在DevKit性能分析工具的提示下中发现了两个异常点:
    ● 在总览信息中,发现MPI集合通信(Collective Communication)的占比非常高(占执行时间的37.52%)。接下来可以重点分析MPI集合通信的运行时指标。

在这里插入图片描述

图2 鲲鹏DevKit性能分析工具- MPI集合通信占比异常
● 进一步查看MPI运行时指标(rank、function、caller信息),发现每个进程在函数“Controller::LUSGS”中的allreduce操作耗时都特别高(约230ms)。同时,还可以看到rank(83)的函数“Controller::CommunicationDQ”函数耗时异常。

在这里插入图片描述

图3 鲲鹏DevKit性能分析工具- MPI运行指标异常
2. 根据工具的异常提示,技术人员快速找到了异常函数,并对异常函数展开了深入分析和优化:
● 打开风雷软件源码,发现函数 “Controller::CommunicationDQ”是在函数“Controller::LUSGS”中调用的,并且allreduce操作就在CommunicationDQ调用后面。由于rank(83)的CommunicationDQ函数耗时特别大,导致其他进程都在等待它进行后面的allreduce操作。

在这里插入图片描述

图4 风雷-异常代码示例
● 找到问题根因后,技术人员对上述函数进行了优化改进:在CommunicationDQ增加MPI_Barrier操作,在不改变函数逻辑的前提下,优化了MPI通信占比(从37.52%降低到9.86%)和allreduce操作的时延(从平均230ms降低到平均85ms)。
在这里插入图片描述

图5 鲲鹏DevKit性能分析工具- 优化后MPI集合通信占比正常
在这里插入图片描述

图6 鲲鹏DevKit性能分析工具- 优化后MPI运行指标正常
3. 通过DevKit性能分析工具技术人员能够很直观的发现程序的性能瓶颈、快速定位到性能瓶颈的函数,通过上述一系列的分析与调优,在同等算力下,风雷软件鲲鹏平台上的运行性能整体提升了24%(软件执行时间从397ms降低到320ms);此外,原来通过人工调优预计需要7人天才能完成的工作,在工具的帮助下1人天就完成了调优,极大的提高了工作效率。
在这里插入图片描述
在这里插入图片描述

图7 调优前后风雷软件在鲲鹏上的执行时长对比
鲲鹏DevKit降低HPC应用迁移/调优难度,全面提升软件运行效率
事实上,为了更好的帮助广大开发者在鲲鹏平台上高效创新,鲲鹏DevKit提供了面向全研发流程的迁移、开发、编译、调优工具套件与配套资料:

在这里插入图片描述

图8 鲲鹏DevKit助力HPC应用迁移与调优
● 迁移阶段:通过代码迁移工具实现HPC源码迁移,同时支持10余款TOP HPC应用的自动迁移;

● 开发阶段:提供鲲鹏开发框架和高性能计算SDK,支持鲲鹏加速库及HMPI(华为高性能通信库,Hyper MPI)的自动部署,同时完成了生命科学、制造仿真、基础科研、气象海洋等170+常用HPC软件适配;

● 编译阶段:针对HPC场景增强和引入了多种编译优化技术,支持HPC应用精度100%一致迁移,Autotuner自动优化编译配置,典型HPC应用性能可提升10%;

● 调优&诊断阶段:支持HPC场景的精细化分析,CPU+GPU/RDMA系统问题分析,以及NUMA精细化分析。

目前,鲲鹏DevKit能够实现2人天/应用快速迁移HPC软件到鲲鹏,以及3人天/应用的精准分析,大大提升HPC应用的创新效率。
链接:https://www.hikunpeng.com/zh/developer/techArticles/20220512-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值