阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

性能优化挑战重重,鲲鹏 HPC 如何突破算力桎梏?

  • 2020-04-10
  • 本文字数:4238 字

    阅读完需:约 14 分钟

性能优化挑战重重,鲲鹏 HPC 如何突破算力桎梏?

比起高性能计算(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 行业“金字塔上的明珠”在底层的革新中,将发挥更大的价值。


作者 | 王晓青


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2020-04-10 18:161089

评论

发布
暂无评论
发现更多内容

软件测试|Python字符串的这些操作,你可都学会了?

霍格沃兹测试开发学社

Vert.x教程(一):如何搭建一个web应用

Kevin_913

Java 教程 Vert.x

聊聊性能测试的左移右移

老张

性能测试 稳定性保障 质量门禁

软件测试|一文教你Python实现不同数据类型互转

霍格沃兹测试开发学社

你的Mac需要一次大扫除!试试App Cleaner & Uninstaller for Mac

Rose

App Cleaner 苹果mac系统优化 Mac清理工具

Amazon Lightsail 宣布为域注册和 DNS 自动配置提供支持

亚马逊云科技 (Amazon Web Services)

DNS cli VPS Amazon Lightsail Amazon Route 53

用友&陕建数科携手共创,实现生态共赢!

用友BIP

数科公司

用友签约索通发展,共建冶金行业新一代数智化智能工厂

用友BIP

软件测试|Python数据可视化神器——pyecharts教程(一)

霍格沃兹测试开发学社

用友携手厦门国会:引领智能会计新时代,共谱数字教育新篇章

用友BIP

智能会计

Proxifier for Mac(附Proxifier注册码):轻松实现全局代理,加速网络访问!

Rose

跨境电商 全局代理客户端 Proxifier破解版 Proxifier下载 Proxifier mac

一个平台搞定数据治理,让数据资产发挥价值

袋鼠云数栈

大数据 数据中台 数据治理 数据资产

东莞理工学院第四届“火焰杯”软件测试高校就业选拔赛颁奖典礼

测试人

软件测试

Premiere Pro 2024 Mac版系统要求 PR2024中文破解补丁

Rose

Premiere Pro2024激活版 Premiere Pro 2024 pr2024破解版

概念回顾:混合负载均衡、全局服务器负载均衡、DNS 负载均衡、云负载均衡

NGINX开源社区

什么是混合负载均衡? 什么是 DNS 负载均衡? 什么是云负载均衡?

软件测试|测试开发之路--UI 自动化常用设计模式

霍格沃兹测试开发学社

敏捷专题:新一代的汽车软件研发

DevOps和数字孪生

敏捷 仿真建模 汽车行业

office 2021中文破解版 (附最新Office LTSC 2021激活工具)支持macOS14

晴雯哥

Kafka基本原理、生产问题总结及性能优化实践 | 京东云技术团队

京东科技开发者

消息队列 Kafk

软件测试|数据可视化神器——pyecharts教程(二)

霍格沃兹测试开发学社

ScreenFlow 10 for mac屏幕录像软件

展初云

Mac 屏幕录像 ScreenFlow

打造美团外卖新体验,HarmonyOS SDK持续赋能开发者共赢鸿蒙生态

HMS Core

HarmonyOS

Mac上用于网络数据流量分析和嗅探的软件 Debookee 8

展初云

Mac软件 网络数据分析

AI赋能,轻松出爆文!AI新闻创作新时代,你准备好了吗?

飞桨PaddlePaddle

新闻 AIGC 新闻写作

mac VM虚拟机中文版 VMware Fusion Pro 13 密钥激活 附 安装教程

Rose

VMware Fusion Pro 13 VM虚拟机破解版 VMware Fusion激活秘钥 Mac虚拟机下载

传统渠道DMS系统跟不上时代?是时候建立多级渠道运营系统了

用友BIP

渠道运营

软件测试|Python绘图神器——Matplotlib使用教程(一)

霍格沃兹测试开发学社

对话InfoQ,聊聊百度开源高性能检索引擎 Puck

百度Geek说

百度 开源

Infuse 7 Pro for Mac音视频播放器

展初云

播放器 Mac软件 Infuse

第21期 | GPTSecurity周报

云起无垠

office 2021中文破解版 (附最新Office LTSC 2021激活工具)支持macOS14

晴雯哥

性能优化挑战重重,鲲鹏 HPC 如何突破算力桎梏?_服务革新_华为云开发者联盟_InfoQ精选文章