加速应用迁移、使能原生开发,鲲鹏开发套件DevKit能力再升级 原创

做过应用迁移的都知道,基于传统平台的应用软件迁移到新的创新架构平台,要考虑众多因素

数字经济已经成为全球经济增长的主引擎,根据中国信息通信研究院发布的《中国数字经济发展报告(2022年)》,2021年中国数字经济规模达到45.5万亿元,同比名义增长16.2%,数字经济年均增速显著高于同期GDP平均增速。

要实现数字经济的持续高速增长,需要以算力基础设施为核心的坚实底座来支撑。如果说数据是数据经济增长的生产资料,那么算力就是生产力。《2022中国数字经济发展研究报告》显示,目前中国算力规模约占全球的27%,排名第二。

与此同时,千行百业产生的各种应用和海量数据又驱动着算力朝着多样性发展。鲲鹏作为多样性算力一员,也已经从开放走向落地,为各行各业的数字化变革和应用创新提供了强大稳定的算力支持,并已经广泛应用于数字政府、电信、金融、电力等行业核心应用系统,成为国计民生行业数字化转型的首选。

但是对于开发者而言,加入鲲鹏产业要考虑很多实际的问题,就是现有的应用能不能快速的从原来的计算架构中迁移过去?以及应用迁移过去之后,后续鲲鹏平台应用开发是否具备更大优势?

做过应用迁移的都知道,基于传统平台的应用软件迁移到新的创新架构平台,要考虑众多因素:首先最根本是指令集不同,比如x86是复杂指令集,而鲲鹏使用精简指令集,迁移技术是否可行?其次,迁移周期是否过长?再者,之后的反复编译调试、准确率如何?功能实现是否完全?调优定位如何?优化效果是否达标等等挑战?

就算解决了迁移问题,还要考虑应用开发的挑战。应用开发面临的挑战更复杂,从学习角度看,如何系统化的学习鲲鹏架构优势、特性?从开发角度看,如何实现鲲鹏亲和开发的实时引导?从编译调试看,如何充分发挥多样算力编译和调试能力?测试阶段,应用的安全性、稳定性、性能及功耗等问题如何保障?最后的GPU和CPU等虚拟化场景中的系统调优如何做?

释放生产力,鲲鹏DevKit在应用迁移和开发使能的优势

针对这些挑战,鲲鹏计算产业早已准备,为了帮助伙伴和开发者快速将应用迁移到鲲鹏,2019年鲲鹏发布了一站式开发套件鲲鹏DevKit,实现有源码应用的无忧迁移,针对存量无源码应用,鲲鹏DevKit还提供动态二进制指令翻译工具ExaGear,在软件执行过程中直接将X86指令翻译为鲲鹏指令,“零代码”、“低损耗”的完成迁移。经过两年多的发展,2021年源码迁移效率已经可以达到2人天/应用,迁移已不再是难题;2022年,鲲鹏DevKit全面升级,从加速“应用迁移”走向使能“原生开发”,持续优化增强鲲鹏原生开发的效率和体验。

在不久前的华为全联接大会2022上,鲲鹏DevKit的研发专家们详细解读了鲲鹏DevKit最新版本的关键能力,鲲鹏的重要伙伴也分享了基于DevKit进行原生开发的创新实践。

 “鲲鹏DevKit致力于鲲鹏软件迁移和原生开发的效率提升,提供从迁移、开发调试、编译、测试、调优&诊断等一整套具备原生开发能力的工具套件,包括鲲鹏开发框架、场景化SDK、鲲鹏调试器、云测试服务、HPC场景化性能分析能力等,助力鲲鹏开发者基于鲲鹏平台原生开发高性能应用。”鲲鹏DevKit项目经理马德强介绍道,“我们坚持把困难留给自己,简单给予用户,用一套好的工具对提升生产力。”

加速应用迁移、使能原生开发,鲲鹏开发套件DevKit能力再升级

  • 在迁移阶段:代码迁移工具覆盖TOP 10常用语言、TOP 20+主流OS,聚合管理170万+依赖库,汇编指令100%自动翻译,代码修改建议一键替换,并通过代码鲲鹏亲和分析,将Bug消灭在开发过程中。

  • 开发阶段:通过鲲鹏开发框架提供工程管理向导、启发式编程、场景化SDK、鲲鹏亲和检查等能力,帮助开发者快速创建工程,自动屏蔽编译选项差异,便捷使用鲲鹏架构优势能力,智能提示鲲鹏优化函数和百万级依赖库,并且在开发完成后,通过5类静态检查工具将代码风险一把消除。

  • 调试阶段:鲲鹏调试器是业界首款开放的集群并行调试器,支持单节点或多节点并行调试,提供图形化界面,大幅提升调试效率。

  • 编译阶段:面向不同技术路线提供三类编译软件毕昇编译器、毕昇JDK、GCC for openEuler,均针对鲲鹏平台做了多重编译优化和增强,其中毕昇编译器通过循环优化、软件预取、结构体内存布局、等关键优化技术,实现鲲鹏平台SPEC性能提升25%。

  • 测试阶段:云测试服务提供兼容性、可靠性、安全、功能、性能等五大维度精准测试服务,帮助用户快速识别和定位应用程序在运行阶段的问题,全面提升鲲鹏原生应用质量和体验。

  • 调优&诊断阶段:性能分析工具支持系统性能分析、Java性能分析和系统诊断,提供系统全景及常见应用场景下的性能采集和分析功能,并基于调优专家系统给出优化建议。同时提供调优助手,指导新手用户快速调优。针对HPC场景提供鲲鹏高性能计算分析功能,支持百P级、数十万核的集群算力特征和应用性能分析,充分发挥出鲲鹏集群的最强算力。

原生开发持续增强,开发效率大幅提升

鲲鹏原生开发是DevKit今年重点聚焦的能力,鲲鹏原生开发是指使用鲲鹏DevKit的原生开发能力,如鲲鹏开发框架(含场景化SDK)、编译调试工具、云测服务、调优&诊断工具等,在鲲鹏平台上开发新软件/新功能,充分发挥鲲鹏架构优势,从而获得开发效率/运行性能提升。在鲲鹏DevKit最新版本中重点更新了场景化SDK、鲲鹏调试器、HPC场景性能分析、云开发服务等能力:

“我们基于KAE加速引擎、安全计算TEE,高性能编译器,通信库、数学库和国密加解密库等,为开发者提供安全计算、高性能计算和通用计算三大类场景化SDK,以及二十余种示例工程代码样例,帮助开发者快速创建应用工程,0成本的学习开发鲲鹏应用。” 鲲鹏DevKit高级工程师潘龙龙介绍道。

加速应用迁移、使能原生开发,鲲鹏开发套件DevKit能力再升级

  • 安全计算SDK:操作系统的复杂度在提升,攻击窗口也在变大,如果没有安全加固,漏洞会被利用。安全计算SDK,可以从硬件架构上提供TEE可信运行环境,即使应用和系统被攻破,黑客也无法获取该环境,提高了应用和数据的安全性。

  • 高性能计算SDK:聚合了Hyper MPI通信库和鲲鹏数学加速库,助力开发者快速开发高性能应用。Hyper MPI是整个高性能计算的关键组件,它实现了并行计算的网络通信功能。鲲鹏数学库则提供了一整套基于鲲鹏平台优化后的高性能数学函数。

  • 通用计算SDK:包含硬件加速应用,加速库应用和同构加速应用三种场景;硬件加速应用基于KAE驱动,对上层应用实现硬件加速;加速库应用使用鲲鹏芯片自带的加速指令,对应用实现软件加速;同构加速框架则提供了一套友好的API,当SDK部署完成后,开发者可以通过在JAVA代码中添加注解的方式,将指定的代码段卸载到远端节点进行执行,从而实现应用的加速。

应用开发过程中需要对应用进行调试,鲲鹏调试器能够通过IDE的方式对通用应用程序,GPU程序和HPC并行程序的调试,让代码编写,代码同步,远程编译和远程调试操作全部在本地IDE中完成,避免远程吊事带来的环境分离、效率低下的问题,简化服务器程序的开发流程。

  • CUDA调试器可以在本地IDE上调试远程GPU程序,通过图形化的界面将用户从繁琐的MI指令和linux控制台操作中解放出来,支持GPU设备的选择和多线程调试等功能;

  • HPC并行程序具有逻辑复杂、并发量大、计算节点多、进程数多、状态切换迅速且复杂等特点,非常难以进行集群调试。HPC并行调试支持最多256个本地或远程的MPI集群应用进行调试,调试过程中可以实时查看每个进程的全局排序,方便查找指定节点的指定进程,此外还能够按照全局/单进程/单通信组的方式同步调试,当程序执行到某一关键步骤时,开发者可以选择单独调试一个或一组进程,排除其余进程对调试的干扰。

编译调试完成后,软件功能一切正常,但是性能上不去怎么办?接下来就是性能调优。“服务器承载大量复杂行业应用,性能瓶颈可能存在于任何层次,DevKit性能分析工具能够综合全面的分析系统软硬件及集群的配置和运行情况,优化各模块之间资源占用关系,实现整个系统的性能最大化。” 鲲鹏性能分析专家胡雄斌介绍道:“今年我们做了很多新的功能模块,尤其是HPC场景下的大集群性能分析能力。”

  • NUMA精细化分析: NUMA架构是非均匀内存访问架构,在多处理器系统中,内存的访问时间依赖于处理器和内存之间的相对位置,NUMA精细化分析能实时获取进程和线程的 NUMA 内存访问行为,分析和解决应用的NUMA性能瓶颈。

  • 基于MPI的大集群分析:在HPC大集群下,很难观察HPC应用的性能指标进行优化,为了解决该问题DevKit也提供了丰富的功能:比如在HPC任务执行过程中,找到一条不存在等待时间的关键路径Critical Path,优化这条路径上的热点函数,就可以减少在运行阶段其他节点的等待通信的时间,提升整体的性能;此外,HPC大集群环境节点多,网络环境可能无法对外开放,安装调优工具相对复杂,DevKit的web模式中只需要部署一台server节点,并在Share Folder的节点上部署agent进行数据采集,即可获取集群中各个节点的数据并进行预分析,同时提供独立的HPC采集器,解决web无法安装问题,减少除HPC场景之外的依赖安装,提升工具的实用性

最后,针对鲲鹏开发者和爱好者需要自备环境的问题,鲲鹏DevKit提供了远程实验室,免费提供鲲鹏的软硬件环境,方便开发者体验学习鲲鹏架构;开发者可以针对不同的使用场景,申请云开发服务,云测试服务和远程服务器。其中云开发服务是本次版本的新增功能,开发者线上申请成功后,可以获得一套免费使用的在线IDE开发环境,环境中预装了鲲鹏DevKit开发套件,开发者可以随时随地体验代码迁移,开发调试,亲和检查,编译测试,调优诊断等功能,一键开通,“零”安装,随时随地体验鲲鹏DevKit原生开发能力。

助力伙伴和开发者快速创新、共建鲲鹏应用生态

基于鲲鹏DevKit推出的原生开发新能力,一批批行业应用伙伴已经开启了原生开发实践,部分已完成了相关的应用开发及性能优化。比如,数字认证(武汉)就基于鲲鹏DevKit高效构建了敏捷、分布式密码服务, “鲲鹏DevKit为数字认证研发内生式密码模块的开发提供强大的帮助:通过密码模块工程的快速构建以及安全计算SDK的快速安装和部署,原计划预计需要60人天才能完成的开发工作,通过DevKit开发仅花费了24人天,效率提升60%;此外,通过DevKit性能调优实现了国密SM2签名性能从最初的2万次/秒提升至22万次/秒,达到业界先进水平。” 数字认证密码产品解决方案总监李亚德分享到。

写在最后,开发者不仅是技术发展的引领者,也是产业发展的重要推手。开发者是一群极具有创新和想象力的群体,是一群真正能够理解一个一个开发平台能做到什么,并发挥出平台的最大价值。而鲲鹏DevKit将持续优化开发者的开发体验,通过鲲鹏社区(hikunpeng.com)为开发者提供全方位的支持,包括免费提供所有工具套件之外,以及全方位的原生开发支持与学习交流服务资源,帮助开发者快速上手。

来源:至顶网软件与服务频道

0赞

好文章,需要你的鼓励

2022

11/26

15:28

分享

点赞

邮件订阅