【转】性能优化挑战重重,鲲鹏 HPC 如何突破算力桎梏?
性能优化挑战重重,鲲鹏 HPC 如何突破算力桎梏?
news2023/9/10 8:57:33
比起高性能计算(High Performance Computing,缩写 HPC),很多人对“超级计算机”感觉更熟悉一些。但事实上,超级计算机就是 HPC 系统的最尖端水平。在全球超级计算机 TOP500 中,位列榜首的美国橡树岭国家实验室的“顶点”系统,其浮点运算速度为每秒 14.86 亿亿次。而这份榜单的入围门槛也是达到了每秒 1.14 千万亿次的运算速度。
如此强大的计算能力,究竟能为技术的应用落地带来什么?
看似阳春白雪的 HPC 已走向平民化
不同于侧重数据密集型、I/O 密集型应用的云计算,HPC 强大的算力可用于解决大规模科学问题计算和海量数据的处理。早期 HPC 架构和相关设备均为封闭机型和专属架构,应用也仅限于科学研究、航天航空、油田勘探等高精尖领域,因此,HPC 曾被喻为是 IT 行业“金字塔上的明珠”。随着计算机技术的发展以及数据量和数据价值的不断增加,HPC 的应用领域在不断扩大,未来也将愈加“平民化”。
从目前来看,其应用场景大致可分为以下三类:
计算密集型应用(Computing-intensive):大型科学工程计算、数值模拟等。其应用领域为石油、气象、CAE、核能、制药、环境监测分析、系统仿真等。
数据密集型应用(Data-intensive):数字图书馆、数据仓库、数据挖掘及计算可视化等。其应用领域为图书馆、银行、证券、税务、决策支持系统等。
通信密集型应用(Network-intensive):协同工作、网格计算、遥控和远程诊断等。其应用领域:网站、信息中心、搜索引擎、电信、流媒体等。
总体来看,中国企业正处于数字化转型的高速期,上云速度加快、数据量迅速增长,对大数据的利用能力已成为企业的核心竞争力,企业对 HPC 的需求程度前所未有的提升。那么,作为一项技术门槛高、落地复杂的系统工程技术,HPC 在中国企业中的应用真的进入普及期了吗?
HPC 应用对计算速度有着极高的要求,这意味着这类机群在系统的处理器、内存带宽、运算方式、I/O、存储等方面也都要追寻性能方面的极致。目前,也只有大规模的机构才有能力建立独有的 HPC 平台的能力。
然而在互联网时代,大企业追求轻资产化,努力实现数字化转型,传统 HPC 平台由于存在运维成本高、扩容难、资源利用率低、数据不流动等问题,难以适应企业的业务发展,甚至成为了瓶颈。那么,企业如何使这些老旧的 HPC 系统变得更高效灵活?中小企业是否也能以较低的云成本将 HPC 引入业务?
HPC 应用如何实现高性能?
“在高性能计算领域,由于计算量非常大,仅是提高很少量的百分点都能为企业带来巨大的经济效益,这其中包括时间的缩短、成本的降低以及能耗的降低。所以在该领域下,业界普遍都在追求非常极致的性能、性价比与能耗比。这样就迫使服务提供商要从应用需求出发,根据应用的特点来设计硬件和软件,然后再把这三者做无缝的整合,从而达到更高的性能。”
华为 IT 产品线 HPC Lab 主任、HPC 首席技术专家丁肇辉在接受 InfoQ 采访时表示。
提及 HPC 应用的性能问题,不同领域下的差异很大,通常企业用户需要基于自身的应用需求特征来进行定制化匹配,通过一系列测试工具对 HPC 系统进行精细化的研究分析后,找到可以调整和优化的部分,然后通过硬件升级、软件性能调优、应用扩展等不同方法来提高系统的整体性能,以期达到硬件系统与应用之间的平衡。
在《通过鲲鹏全栈 HPC 软件套件提升应用性能》的演讲中,丁肇辉将 HPC 应用性能优化分为四个层次:应用、计算、I/O、通信,对应的优化手段如下:

应用:由各个领域的科学家、软件开发专家基于各自领域的算法,对求解方法进行创新,并采用不同的编程模型。
计算:影响计算的主要是软件技术,如编译器、Runtime 和数学库,可以从三个入手进行优化,也可通过异构加速来提升计算效率。
I/O:通常 HPC 并行任务的并发 I/O 操作不应采用简单的 POSIX I/O,而应选择 MPI-IO。此外,对存储硬件进行优化也可以提高 I/O 的效率 。
通信:MPI 是最常用的 HPC 通信接口,MPI 集合通信、RDMA 等技术都适用于大规模并行计算机集群,可有效构建高性能、低延迟的存储网络。当然,对网络设备的优化也不能忽视。
不容忽视的软件调优
虽然很多性能问题都可以通过硬件配置的升级或优化得到解决,但软件调优部分也决不能忽视。
丁肇辉解释道:“HPC 其实服务的是科学计算,由于科学计算的领域差异很大,导致其应用特征差异也较大。因此如果要设计出能够覆盖各种场景下应用计算需求的硬件,其实难度还是非常大的。所以在硬件尽可能突破极致性能的同时,也需要软件接入来确保一定层面上的灵活性。”
从开始设计到最终完成,软件优化在整个软件开发周期中都将起到连续迭代的作用。
“在假定硬件不变的前提下,计算角度的优化目标就是将 CPU 的算力发挥出来,消除内存墙等常见问题。
通信层面的优化则以减少网络拥塞为目的,尽量能够让计算和通信的过程能够叠加,一边计算一边做通信。
I/O 的瓶颈与访存类似,就是尽可能利用更快速、更低时延的存储来达到一定的目的。但是由于其容量较低,需要考虑如何在多级的存储之间做切换。另一方面是要尽可能发挥 I/O 并行度的优势。通常 HPC 的存储节点是分布式的,能够把分布式的多个存储节点都发挥出来,来实现并行 I/O。”
而需要解决这三个层面的问题,华为主要从架构和算法两个方面进行创新:
1、MPI底层架构优化
高性能计算之所以能达到极高的计算速度,是因为在该集群上运行的应用程序一般使用并行算法,把一个大的普通问题根据一定的规则分为许多小的子问题,在集群内的不同节点上进行计算,而这些小问题的处理结果,经过处理可合并为原问题的最终结果。由于这些小问题的计算一般是可以并行完成的,从而可以缩短问题的处理时间。
目前,国内外在高性能计算机系统中,最广泛使用的并行编程环境是 MPI(Message Passing Interface),它也已成为国际上的一种并行程序的标准。OpenMPI(open Message Passing Interface)是流行的开源 MPI 之一,具有模块化涉及、易于扩展等特点。

在 Open MPI 底层架构中,UCX 实现了针对多种协议的优化的点对点通信。不过由于 UCX 将集合操作转化为点对点通信的组合,很多对于点对点操作的初始化逻辑是多余的。对此,在华为 MPI 中,引入 UCG(Unified Communication)的概念,对 UCX 框架进行了重构。根据丁肇辉在演讲中的介绍,UCG 把集合操作定义在 UCX 层,使 UCX 通信的初始化逻辑从 Per message operation 变为 Per collective operation,可以让软件在更底层感知到集合通信,从而节省很多软件上的开销,包括程序的初始化、数据结构的创建等操作。据了解,目前 UCG 已开源,且已经被社区接受。
总体而言,华为 MPI 具有以下几个特点:
基于开源 Open MPI 实现;
通信算法基于 Open UCX 进行重构和优化;
支持鲲鹏系列处理器与 x86 CPU;
针对华为硬件的算法优化、硬件卸载;
与华为自研软件与业界流行软件无缝集成。
2、基于UCG算法的创新
基于并行计算的高性能系统需要保持计算和通信性能的平衡性,其中,集合通信是通信系统的重要组成部分,负责进程之间的数据操作和同步操作。当并行应用的规模越来越大时,所使用的处理器的规模也越来越大,集合通信组内部进程之间的通信量相应增大,且需要相互协作完成通信语义,因此集合通信往往成为系统的性能瓶颈,需要优化集合通信以提高整体系统性能。
在演讲中,丁肇辉老师介绍了对集合通信算法的优化,分为节点内和节点间两部分。在节点内,结合共享内存技术和 CPU 内部的拓扑感知,华为对 MPI_bcast 进行了优化,见下图:

在 NUMA 架构下,对于同一块内存,节点内多个处理器的访问效率通常是不均衡的,此时可以通过多个共享内存块和 Flag 提高效率。
在节点间,华为对 B-nominal 算法进行了升级,提出“K-nominal 算法”,如下图:


K-nominal 算法具有更好的普适性,Bcast 算法可通过 LogkN 阶段通信完成,配合节点内共享内存算法可以达到最优通信效果。尤其是在 OpenMPI 下通过算法来自动调整通信包大小、规模以及正确的 k 值,K-nominal 的表现要比 B-nomial 这样一个典型的分级分步骤的集合通信算法来说,效果更好。
根据丁肇辉的介绍,经过小包测试后,华为 MPI 在 x86 上相较于 OpenMPI 提高了 2 倍以上,在鲲鹏上也提高了 2 倍。

鲲鹏 HPC 软件套件还将进行怎样的完善和迭代?
鲲鹏 HPC 在 2020 年将会发布一套完整的软件栈体系;目前来看,比较受业内关注的 MPI 和调度器这两个组件将是近期更新的重点。而编译器的版本则会相对稳定一些。以调度器为例,由于存在很多和用户之间产生直接交互的复杂功能,所以需要时刻关注用户的反馈,根据用户所提出的不同需求来进行版本迭代,因此为了适应用户的新需求会加速该版本的迭代。
突破性能极限,未来更值得期待
软件优化固然重要,但来自底层的革新才能突破性能极限。
早年间,支撑 HPC 高速运转的 CPU 均基于 x86 架构,而过多考虑功耗层面的 ARM 因在效能表现上无法满足应用场景的极致计算需求,在市场上总是叫好不叫座。随着摩尔定律作为行业标杆的铁律越来越难以为继,x86 体系遭遇瓶颈。加之 ARM 在功耗和效能之间又在不断取得更高的平衡,数据中心高效节能的市场诉求也愈加强烈,此前不被看好的架构开始在服务器市场发挥影响力,特别是 HPC 服务器市场。
2019 年 1 月,华为重磅推出自主研发且基于 ARM 架构的鲲鹏 920 芯片,该芯片具备业界顶尖的制程工艺、集成 8 通道 DDR4。由于采用“众核”架构,鲲鹏 920 可以做到最高 64 个物理 CPU 核,尤其适合大规模并行的计算场景。
基于此,华为以高性能服务器、大容量存储为基础,推出了端到端的高性能计算解决方案,包括基础设施、硬件资源、系统环境、集群管理、服务平台、行业应用等方面,让整个 HPC 的应用系统达到最佳的性能。而无论是服务器,还是编译器、MPI、调试器、函数库等基础软件,均可与企业原有的配置兼容,并实现性能上的优化和提升。

鲲鹏 HPC 全栈
IT 应用开发部署直接决定着企业数字化创新的能力,这将会有效地触发 HPC 应用量的急剧增加,同时,应用的多线程和高并发技术走向,也将催生出更多的 HPC 需求。而随着高性能计算应用的日益广泛和深入,高性能计算系统技术创新、计算环境创新与应用创新等各个层面还将遇到新的挑战与机遇。为了让鲲鹏 HPC 更好地服务于各行各业,华为将在 HPC 领域进行长期的技术投入,包括:
平台层:计算系统(x86、TaiShan)、下一代 NAS 存储系统、网络互联(低时延技术);
中间件:华为 MPI、工具链、集群管理、作业调度;
上层应用:气象 & 海洋、制造、计算化学、生命科学、油 & 气、AI 等领域。
我们有理由相信,这颗 IT 行业“金字塔上的明珠”在底层的革新中,将发挥更大的价值。
作者 | 王晓青
原文地址:https://huaweicloud.blog.csdn.net/article/details/105240993
鲲鹏HPC
鲲鹏使能HPC全栈,面向行业应用场景,提供最优的HPC集群解决方案
HPC解决方案架构
HPC行业生态
HPC集群管理与调度
HPC基础软件
HPC基础硬件
鲲鹏HPC多瑙套件 体验Demo
伙伴案例
学习实践
支持与反馈
【版本发布】 Hyper MPI 1.3.0版本发布,新增了Allgatherv、Scatterv集合操作的优化
2023/06/30
【版本发布】 鲲鹏HPC 22.0.0.SPC005补丁版本发布
2023/07/24
【版本发布】 鲲鹏HPC 23.0.RC1正式版本发布,重点发布Donau Portal、Donau Scheduler配套特性
2023/06/30
【版本发布】 Hyper MPI 1.3.0版本发布,新增了Allgatherv、Scatterv集合操作的优化
2023/06/30
【版本发布】 鲲鹏HPC 22.0.0.SPC005补丁版本发布
2023/07/24
更多公告
HPC 解决方案架构
HPC聚焦资源调度效率低、应用性能优化难等关键挑战,通过全栈架构创新、软硬件自研、基础软件优化和行业应用性能调优等技术构建全栈高性能计算基础平台,帮助客户释放平台算力,缩短产品上市周期,提升企业产品竞争力。
架构简介
HPC总体架构由基础设施、硬件平台、基础软件、集群管理与调度软件和行业应用组成。
行业应用
当前可以支持并应用的行业,包含气象、制造、EDA、政府HPC、教育科研、生命科学;对于开源行业应用,可以通过 鲲鹏代码迁移工具 加快软件迁移效率,通过 鲲鹏性能分析工具 分析HPC性能指标,定位瓶颈点
集群管理与调度
提供统一高效的集群计算多瑙套件(多瑙管理平台和多瑙调度器)
基础软件
提供或兼容通信库(Hyper MPI)、毕昇编译器、鲲鹏KML数学库、openEuler/其他操作系统
硬件平台
提供多样化的计算资源、高性能存储及主流高速网络
基础设施
提供模块化的数据中心
HPC 行业生态
行业TOP应用已完成鲲鹏验证,可覆盖80%算力空间

气象
气候/气象/海洋/环境
核心应用 WRF/ROMS/NEMO
了解更多

生命科学
基因测序/冷冻电镜/制药
核心应用 GATK/BWA/Bowtie/Relion/Amber
了解更多

制造
流体力学/电磁设计/多物理场模拟
核心应用 OpenFOAM/SU2
了解更多

教育科研
分子动力学/量子化学
核心应用 VASP/Lammps/Gromacs/QE/CP2K
了解更多

HPC软件仓库
主流HPC软件可执行文件,涵盖气象海洋、制造仿真、生命科学、基础科研等领域

软件兼容性查询工具
更多HPC开源软件兼容性请访问软件兼容性查询工具
HPC 集群管理与调度
多瑙管理平台
多瑙调度器
多瑙管理平台
多瑙管理平台是华为全自研的HPC集群管理平台,通过可视化界面为用户提供了便捷的HPC集群系统数据管理和软硬件资源管理功能,串联整个工作流程,帮助用户合理地进行作业调度和资源分配,提升集群系统计算能力利用率。
价值优势
1、操作系统桌面风格:Web界面桌面风格布局,多窗口多任务高效操作
2、设计计算一体化:支持基于Linux平台的远程2D/3D可视化,打通设计与计算全流程
3、资源分析与监控:多维度分析集群运行历史,实时监控集群资源使用
4、异构多集群管理:同时管理多瑙调度集群和第三方调度集群,数据与资源统一管理
关键技术
1、支持Linux 2D/3D展示,用户可通过Web界面进行数据远程处理
2、可视化拖拽进行提交表单布局,简化用户配置
3、元数据驱动界面展示,灵活定义报表和监控视图,易于扩展
4、安全的跨集群数据传输
软件下载查看文档
HPC 基础软件
Hyper MPI
毕昇编译器
鲲鹏数学库
Hyper MPI
性能提升
Hyper MPI是基于Open MPI 4.1.1和Open UCX 1.10.1,支持MPI-V3.1标准的并行计算API接口,新增了优化的集合通信框架。同时,Hyper MPI对数据密集型和高性能计算提供了网络加速能力,使能了节点间高速通信网络和节点内共享内存机制,以及优化的集合通信算法。Hyper MPI的UCX COLL通信框架能够支持的最大数据包长度为2^32字节。
价值优势
1、Allreduce性能,小包接口时延降低60%,中包接口时延降低3倍
2、Bcast性能,小包接口时延降低79%
3、Barrier性能,时延降低66%
4、Alltoallv性能,降低中小包接口时延,端到端收益7%
关键技术
1、拓扑感知算法
2、Tree类算法实现集合通信加速
3、Ring算法加速大包集合通信
4、Plummer&Ladd算法
5、Rabenseifner算法
了解详情
适用范围
适用于高性能计算通用场景。
HPC 基础硬件
TaiShan 200服务器
2280均衡型
2个鲲鹏920处理器
2个xPU
TaiShan 200服务器
1280高密型
2个鲲鹏920处理器
鲲鹏HPC多瑙套件 体验Demo
操作体验
功能介绍
多瑙套件 操作体验Demo
通过多瑙套件完成应用中心、监控中心、报表中心、计费中心操作;同时进行设计计算一体化,全流程体验。
* Demo登录:用户名 admin/密码 admin
立即体验
伙伴案例
中国科学技术大学超级计算中心平台
面向中国科学技术大学所有学科的用户提供科学与工程计算服务,构建海量数据处理的高IO性能计算模拟系统,集群采用全液冷散热,机房整体空间降低50%,实现更高能效比,基于鲲鹏的OpenFoam应用性能提升20%,助力中科大的科研创新。
学习实践
实验
在鲲鹏BMS上进行WRF部署与性能优化
Rated 5 stars out of 5
2小时
757
微认证
基于鲲鹏HPC解决方案的应用实践