0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVIDIA 携手腾讯开发和优化 Spark UCX 实现性能跃升

NVIDIA英伟达 来源:未知 2023-08-25 20:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

腾讯网络平台部与数据平台部,联合 NVIDIA 合作开发和优化 Spark UCX,最终实现 Spark Shuffle 稳定加速 15% - 20%,平均降低现网 Spark 任务 8% 的执行时间。

什么是 Spark 平台?

TDW-Spark 是腾讯公司级数据平台,是腾讯海量数据处理平台中最核心的模块,支持百 PB 级的数据存储和计算,业务涉及公司各个 BG,为腾讯公司提供海量、高效、稳定的大数据平台支撑和决策支持,是腾讯公司最大的离线数据处理平台。

Spark 业务所面临的挑战

Spark 网络目前的现状包括大规模部署 QP 连接数不够用,使用 RDMA DC 解决连接数过多的问题;Spark 不同应用场景需要不同的 EP 个数、RPC 调用次数、Spark UCX 线程数、Block 大小等,需要联合调配;RDMA 和 TCP 混合部署,需要兼容和故障逃生;以及网络带宽低,需要提升带宽,降低延时。

Spark 原始的业务问题包括:

  • 通信耗时占比高:Spark Shuffle 时间占 Spark 运行总时间的 30% - 40%,造成 Spark 任务完成时间长。

  • 业务需求:网络 IO 和磁盘 IO 是 Spark Shuffle 的瓶颈,需要提高通信效 率,提高计算效率。

  • 降本增效:五万张已经部署的 NVIDIA ConnectX-5 网卡需要提高性能利用率,切换到 RDMA,提高业务带宽。

为了应对上述问题及挑战,腾讯进行了 Spark RDMA 大规模部署网络的工作,主要从两个方面着手:Spark RDMA 网络部署和优化,以及 Spark UCX / UCX 性能优化。

Spark RDMA 网络部署和调优

具体部署调优步骤:

  1. 搭建 37 节点 NVIDIA ConnectX-5 网卡和 26 节点 NVIDIA ConnectX-6 网卡 Spark 环境,部署 Spark、Spark UCX、UCX 代码进行长稳调优。

  2. 基于 GroupByTest 和现网 Spark 业务流量,在 UCX、Spark UCX、Spark 三个层次调优对比 DC、RC 和 TCP 效果。

  3. 优化 Spark UCX、UCX 代码,根据 Spark 业务调优网卡和交换机配置。

  4. 通过在 NVIDIA ConnectX-5 和 NVIDIA ConnectX-6 Dx bond 引入 DCT,提升 Spark 业务带宽利用率。

  5. RDMA 和 TCP 网络共存的情况下,保障长稳运行和 RDMA 故障逃生。

wKgaomTopKWAfh5EAABuql9I-5I182.png

图 1:37 节点的 ConnectX-5 机群与 26 节点的 ConnectX-6 机群

RDMA 部署优化完成情况:

  • 大规模:使用 DCT 技术共享 QP 连接,解决了大规模 QP 不够用 的问题。大规模仿真下 Spark 应用 RDMA 网络满足预期。

  • Spark 应用和网络联合调优:实现了最优的网卡和交换机配置,以 及 Spark 任务配置,降低了 15% - 20% 左右的读完成时间。

  • 故障逃生:Spark UCX 和 UCX 代码层面实现了 RDMA 和 TCP 通道备份。确保 RDMA 故障逃生 TCP,保证稳定运行。

  • 稳定性保证:开发了驱动版本检测、网卡配置和检测、自动化安装升级检测功能。开发了测试网络性能模块,保证 Spark RDMA 各层带宽和延时满足预期。

Spark UCX 性能优化

1. 参数调优:通过调整 maxReqsInFlight、numListenerThreads 等 Spark / Spark UCX 参数,提升任务执行效率,获得最好传输速率,发挥最大系统效能。

2. CPU 利用率优化:启用 sleep / wakeup 特性,替代 busy waiting 模式。让出 CPU 给 Spark 计算任务,减少了 CPU 浪费,体现了 RDMA 的优势。

3. 网路 IO 优化:网路 IO 由阻塞模型改为非阻塞模型,数据接收由同步等待改为异步通知。避免了因为网路 IO 等待而 阻塞计算任务执行,提高了每个线程的任务吞吐量,提升了收发效率和带宽。

wKgaomTopKWAFpnRAAGiOI3ydaI852.png

图 2:网络 IO 优化

4. 调度优化worker 的调度方式改用全局 round-robin (RR) 调度模式,替代原有的按照 thread id 选择 worker 的 方式。避免了 thread id 不连续引起的多个线程选择同一 worker 的问题。

wKgaomTopKWAbjwyAAH2E874614011.png

图 3:调度优化

5. 数据竞争优化:将 send / receive / progress 方法打包至独立线程运行,保证每个 worker 资源仅被单个线程 访问 / 修改,避免了数据竞争,提升了线程运行效率。

UCX 性能优化

1. 参数调优:使用 DC 替换 RC 模式,提升传输带宽,减少系统 CPU、内存资源消耗。开启 CQE zipping 和 PCI relax ordering 减少 PCI 负载。调整 UCX_ZCOPY_THRESH、UCX_RNDV_THRESH 和 UCX_RND_SCHEME,获得稳定高速的传输带宽。

2. 网络负载均衡优化:随机化 UDP 源端口取值,减轻由于固定端口,交换机对 5 元组哈希得到相同出端口而引起的 负载不均衡问题,优化网络传输带宽。

“Spark UCX 是 Apache Spark 的高性能 Shuffle Manager 插件,它使用 UCX 支持的 RDMA 和其他高性能传输来加速 Spark 作业中的 Shuffle 数据传输。RDMA DC(动态连接)是一种传输服务,旨在解决大型系统在使用可靠连接时的可扩展性问题。使用 DC,用户可以打开有限数量的资源,无论集群大小如何。这一优势对于 Spark 如此大规模的应用程序来说非常有好处,并且可以提高性能。”

——Amit Krig

SVP, Software Engineering & Israel R&D Site Leader, NVIDIA

部署调优后性能提升明显

经过部署调优,NVIDIA ConnectX-6 环境 RDMA 传输性能比 TCP 平均有 18% 的提升;NVIDIA ConnectX-5 环境大部分场景 RDMA 传输性能比 TCP 平均有 16% 的提升。考虑到 Spark 任务有计算和本地 write,所以对 Spark 任务整体完成时间大概有 8% 的性能提升。

NVIDIA ConnetX-6 环境 RDMA 性能提升明显(RDMA read 通信 18% 左右提升,整体完成时间 8% 左右提升),可以大规模灰度部署 Spark 业务真实流量。NVIDIA ConnectX-5 环境大部分场景性能平均提升(RDMA read 通信 16% 左右提升,整体完成时间 6% 左右提升),部分场景 RDMA 性能较差还需要调测优化,可以灰度部署 Spark 业务,继续优化还有提升空间。

wKgaomTopKaAdji2AAC2vt5kA8M435.png

图 4:ConnectX-6 网卡 26 台规模 RDMA 完成时间比 TCP 低 20% 左右

wKgaomTopKaAasluAACyKxd6OfE061.png

图 5:ConnectX-5 网卡 37 台规模 RDMA 完成时间比 TCP 低 18% 左右

wKgaomTopKaAL9QDAABUyl6U7EQ953.png

图 6:20 台规模 Spark 业务灰度测试,RDMA read 平均降低 20% 左右

后期计划

Spark 项目通过远程直接内存访问(RDMA)技术解决网络传输中服务器数据处理延迟问题,为腾讯 Spark 大数据平台业务提供高带宽、低延时的通信。该技术已在二十多台腾讯 Spark 大数据平台服务器完成灰度测试,运行稳定且 Spark Shuffle(数据读取速率)时间平均降低 15% - 18% 左右,减少了 Spark 任务完成时间(大约 8% 左右),节约了服务器资源。计划逐步部署到数千台 Spark 服务器。

wKgaomTopKaAJRrsAABAFFJlyZc946.gif  

点击“阅读原文”扫描下方海报二维码注册 NVIDIA DOCA 应用代码分享活动,为新一代 AI 驱动的数据中心、高性能计算及云计算基础设施带来前所未有的创新。


原文标题:NVIDIA 携手腾讯开发和优化 Spark UCX 实现性能跃升

文章出处:【微信公众号:NVIDIA英伟达】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英伟达
    +关注

    关注

    23

    文章

    4039

    浏览量

    97635

原文标题:NVIDIA 携手腾讯开发和优化 Spark UCX 实现性能跃升

文章出处:【微信号:NVIDIA_China,微信公众号:NVIDIA英伟达】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVIDIA DGX Spark系统恢复过程与步骤

    在使用 NVIDIA DGX Spark 的过程中,可能会出现配置故障,而导致开发中断的问题,本篇教程将带大家了解如何一步步完成系统恢复。
    的头像 发表于 11-28 09:46 3501次阅读
    <b class='flag-5'>NVIDIA</b> DGX <b class='flag-5'>Spark</b>系统恢复过程与步骤

    NVIDIA在ISC 2025分享最新超级计算进展

    NVIDIA DGX SparkNVIDIA BlueField-4 DPU,新一代网络和量子技术实现了飞跃。在 SC25 上展示的加速系统突显了全球超级计算和 AI 的进展
    的头像 发表于 11-25 10:59 461次阅读
    <b class='flag-5'>NVIDIA</b>在ISC 2025分享最新超级计算进展

    NVIDIA DGX Spark助力构建自己的AI模型

    2025 年 1 月 6 日,NVIDIA 正式宣布其 Project DIGITS 项目,并于 3 月 18 日更名为 NVIDIA DGX Spark,进一步公布了产品细节。DGX Spa
    的头像 发表于 11-21 09:25 511次阅读
    <b class='flag-5'>NVIDIA</b> DGX <b class='flag-5'>Spark</b>助力构建自己的AI模型

    NVIDIA DGX Spark平台上对NVIDIA ConnectX-7 200G网卡配置教程

    NVIDIA DGX Spark 平台上对 NVIDIA ConnectX-7 200G 网卡进行配置时,会遇到“4 个逻辑端口”现象。理解背后的真相是后续所有配置的基础。本文将从此现象入手,逐步解析其原理,并提供从基础配置
    的头像 发表于 11-21 09:19 4389次阅读
    在<b class='flag-5'>NVIDIA</b> DGX <b class='flag-5'>Spark</b>平台上对<b class='flag-5'>NVIDIA</b> ConnectX-7 200G网卡配置教程

    NVIDIA DGX Spark快速入门指南

    NVIDIA DGX Spark 已正式向 AI 开发者交付,对于刚入手的全新 DGX Spark,该如何进行初始化设置?本篇文章将引导您完成 DGX
    的头像 发表于 11-17 14:11 4056次阅读
    <b class='flag-5'>NVIDIA</b> DGX <b class='flag-5'>Spark</b>快速入门指南

    NVIDIA黄仁勋向SpaceX马斯克交付DGX Spark

    革新于星舰基地开始。NVIDIA 创始人兼首席执行官黄仁勋亲手将全球迄今为止最小的 AI 超级计算机 NVIDIA DGX Spark 交付给埃隆·马斯克,拉开了该产品上市的序幕。
    的头像 发表于 10-21 11:12 596次阅读

    NVIDIA DGX Spark新一代AI超级计算机正式交付

    NVIDIA 创始人兼首席执行官黄仁勋在 SpaceX 向埃隆·马斯克交付 DGX Spark
    的头像 发表于 10-21 10:41 610次阅读

    MediaTek携手NVIDIA开启个人AI算力新纪元

    Spark 助力开发者能在本地端对大型 AI 模型进行原型设计(Prototype)、微调(Fine-tune)和推理(Inference)。NVIDIA DGX Spark 将于
    的头像 发表于 10-16 11:26 466次阅读

    NVIDIA DGX Spark桌面AI计算机开启预订

    DGX Spark 现已开启预订!丽台科技作为 NVIDIA 授权分销商,提供从产品到服务的一站式解决方案,助力轻松部署桌面 AI 计算机。
    的头像 发表于 09-23 17:20 902次阅读
    <b class='flag-5'>NVIDIA</b> DGX <b class='flag-5'>Spark</b>桌面AI计算机开启预订

    鸿蒙5开发宝藏案例分享---性能优化案例解析

    鸿蒙性能优化宝藏指南:实战工具与代码案例解析 大家好呀!今天在翻鸿蒙开发者文档时,意外挖到一个 性能优化宝藏库 ——原来官方早就提供了超多实
    发表于 06-12 16:36

    欧洲借助NVIDIA Nemotron优化主权大语言模型

    NVIDIA携手欧洲和中东的模型构建商与云提供商,共同优化主权大语言模型 (LLM),加速该地区各行业采用企业级 AI。
    的头像 发表于 06-12 15:42 912次阅读

    NVIDIA发布AI优先DGX个人计算系统

    NVIDIA 宣布,多家行业领先系统制造商将打造 NVIDIA DGX Spark
    的头像 发表于 05-22 09:39 805次阅读

    NVIDIA加速的Apache Spark助力企业节省大量成本

    随着 NVIDIA 推出 Aether 项目,通过采用 NVIDIA 加速的 Apache Spark 企业得以自动加速其数据中心规模的分析工作负载,从而节省数百万美元。
    的头像 发表于 03-25 15:09 888次阅读
    <b class='flag-5'>NVIDIA</b>加速的Apache <b class='flag-5'>Spark</b>助力企业节省大量成本

    NVIDIA GTC2025 亮点 NVIDIA推出 DGX Spark个人AI计算机

    台式超级计算机由 NVIDIA Grace Blackwell 驱动,为开发者、研究人员和数据科学家提供加速 AI 功能;系统由头部计算机制造商(包括华硕、Dell Technologies、HP
    的头像 发表于 03-20 18:59 1261次阅读
    <b class='flag-5'>NVIDIA</b> GTC2025 亮点  <b class='flag-5'>NVIDIA</b>推出 DGX <b class='flag-5'>Spark</b>个人AI计算机

    NVIDIA 宣布推出 DGX Spark 个人 AI 计算机

    台式超级计算机由 NVIDIA Grace Blackwell 驱动,为开发者、研究人员和数据科学家提供加速 AI 功能;系统由头部计算机制造商(包括华硕、Dell Technologies、HP
    发表于 03-19 09:59 502次阅读
       <b class='flag-5'>NVIDIA</b> 宣布推出 DGX <b class='flag-5'>Spark</b> 个人 AI 计算机