ECMP等价多路由机制,大模型训练负载均衡流量极化冲突原因,万卡(大规模)集群语言模型(LLM)训练流量拥塞特点

大规模集群,大语言模型(LLM)训练流量特点,ECMP(Equal-Cost Multi-Path Routing)流量极化拥塞原因。

视频分享在这:

2.1 ECMP等价多路由,大模型训练流量特点,拥塞冲突极化产生原因_哔哩哔哩_bilibili

一、ECMP介绍

ECMP(Equal-Cost Multi-Path Routing)等价多路径路由

未开启ECMP,无法充分利用路径资源。如图1所示,假设从S0到Server的为S0-S1-S2-S4即图中橘色路径,那么即便存在另一条等价路径,蓝色路径,路由器仍然会每次选择第一条橘色路径转发数据。除非此条路径发生拥塞,才会重新选择路径。

开启ECMP,便可同时利用这两条路径,进行基于流的负载均衡,例如主机A到Server的数据流选择橘色路径,主机B到Server的数据流选择蓝色路径。

ECMP是一个逐跳的基于流的负载均衡策略,当路由器发现同一目的地址出现多个最优路径时,会更新路由表,为此目的地址添加多条规则,对应于多个下一跳。可同时利用这些路径转发数据,增加带宽。

ECMP的路径选择策略:

ECMP的路径选择策略有多种方法:

  • 哈希,例如根据源IP地址的哈希为流选择路径。
  • 轮询,各个流在多条路径之间轮询传输。
  • 基于路径权重,根据路径的权重分配流,权重大的路径分配的流数量更多。

哈哈哈,稍微详细的解释是这样的。

基于流负载分担(哈希):路由器根据IP报文的五元组信息(是指源IP地址,源端口,目的IP地址,目的端口,和传输层协议这五个量组成的一个集合。 例如:192.168.1.1 10000 TCP 121.14.88.76 80 就构成了一个五元组)将数据分成不同的流。具有相同五元组信息的IP报文属于同一个流。转发数据时,路由器把不同的数据流根据算法从多个路径上依次发送出去。

基于包负载分担(轮询):转发数据时,路由器把数据包从多个路径上依次发送出去。

基于带宽的非平衡负载分担(基于路径权重):报文按接口物理带宽进行负载分担(即基于报文的负载分担)。当用户为接口配置了指定的负载带宽后,设备将按用户指定的接口带宽进行负载分担,即根据各接口物理带宽比例关系进行分配。

二、ECMP面临的问题

然而ECMP是一种较为简单的负载均衡策略,实际使用中面临如下问题。

1.可能增加链路的拥塞
ECMP并没有拥塞感知的机制,只是将流分散到不同的路径上转发。对于已经产生拥塞的路径来说,很可能加剧路径的拥塞。而使用哈希的方法,产生哈希碰撞也会增加链路的拥塞可能。

2.非对称网络使用效果不好
例如图2中,A与h3之间的通信,ECMP只是均匀的将流通过B,D两条路径分别转发,但实际上,在B处可以承担更多的流量。因为B后面还有两条路径可以到达h3。

3.基于流的负载均衡效果不好
ECMP对于流大小相差不多的情况效果更好,而对于流大小差异较大,例如大象流和老鼠流并存的情况下,效果不好。如图2,主机h1到A的流量为15,h2到A的流量为5。那么无论为h1的流量选择哪条路径都会发生拥塞。但若将h1的流拆分成两部分传输,可以避免拥塞的情况。,在数据中心这种突发性流量多,大象流与老鼠流并存的环境中,需要慎重考虑选择的负载均衡策略,ECMP简单易部署但也存在较多问题需要注意。

三、大模型训练ECMP极化问题

案例针对大型语言模型(LLM)的网络设计HPN

流量模式挑战1:

        云计算流量模式

一般云计算产生数百万个小流量(例如,低于10Gbps),网卡(NIC)利用率低,通常低于NIC容量的20%(简单点说,就是带宽没利用满)。一般云计算的流量模式如下图所示:

        大语言训练流量模式

而LLM训练在每个主机上产生少量周期性的、突发的流量(例如,400Gbps),导致网卡带宽的高利用率,突发流量可直接达到网卡容量上限。400 Gbps的生产集群上,大语言模型训练的流量模式如下图所示:

这种突发的大流量,利用ECMP导致突发流量冲撞到同一链路上,就会发生严重拥塞

大语言模型训练这种流量模式破坏了我们传统数据中心网络中广泛部署的等成本多路径(ECMP)负载平衡方案。由于ECMP采用散列算法在所有等效路径上均匀分布流量,因此ECMP可以在具有高熵和低利用率流量模式的网络(即传统的数据中心网络)中很好地工作。但在LLM训练的情况下则不然,由于LLM训练的流量模式是大流量同时转发。

传统数据中心网络的三层架构特性,大流量的转发会经过三次哈希(即ToR、汇聚层和核心层)。由于每次哈希的输入(即流量的五元组)保持不变,这种“级联”哈希的效果可能导致更严重的负载不平衡(即哈希极化),导致大流量需要在同一链路上转发,出现拥塞或者丢包。

参考资料

数据中心内负载均衡-ECMP的使用分析 | SDNLAB | 专注网络创新技术

多路径路由算法选择(1)——ECMP、WCMP - 多看多学多记多实践 - 博客园 (cnblogs.com)

Alibaba HPN: A Data Center Network for Large Language Model Training (ennanzhai.github.io)

下期预告:

阿里如何解决流量极化冲突问题 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Docker】Docker-harbor私有仓库部署与管理

目录 一.Harbor 概述 1.什么是Harbor 2.Harbor的特性 3.Harbor的构成 二.Harbor 部署 1.部署 Docker-Compose 服务 2.部署 Harbor 服务 3.启动 Harbor 4.创建新项目 5.创建用户 6.本地上传镜像 7.从Harbor下载镜像 三.镜像同步 1.定时拉取 2.主动推送 四.管理 …

阿里云开源 Qwen2-Audio 音频聊天和预训练大型音频语言模型

Qwen2-Audio由阿里巴巴集团Qwen团队开发,它能够接受各种音频信号输入,对语音指令进行音频分析或直接文本回复。与以往复杂的层次标签不同,Qwen2-Audio通过使用自然语言提示简化了预训练过程,并扩大了数据量。 喜好儿网 Qwen2-Au…

1.厦门面试

1.Vue的生命周期阶段 vue生命周期分为四个阶段 第一阶段(创建阶段):beforeCreate,created 第二阶段(挂载阶段):beforeMount(render),mounted 第三阶段&#…

人工智能导论-专家系统

专家系统 概述 本章主要介绍专家系统的概念、原理,创建过程,并补充知识发现与数据挖掘内容 **重点:**专家系统的工作原理和体系结构,知识获取的过程和模式 **难点:**如何设计和创建专家系统 AI第2次高峰(60年代) - 费根鲍姆 …

Flutter动画详解第二篇之显式动画(Explicit Animations)

目录 前言 一、定义 1.AnimationController 1.常用属性 1. value 2. status 3. duration 2.常用方法 1.forward 2.reverse 3.repeat 4.stop 5. reset 6. animateTo(double target, {Duration? duration, Curve curve Curves.linear}) 7.animateBack(double ta…

C# 智慧大棚nmodbus4

窗体 :图表(chart): 下载第三方: nmodbus4:可以实现串口直连,需要创建串口对象设置串口参数配置Serialport 如果需要把串口数据表通过tcp进行网口传递 需要创建tcpclient对象 ModbusSerialMaster master; /…

MyPostMan 迭代文档管理、自动化接口闭环测试工具(自动化测试篇)

MyPostMan 是一款类似 PostMan 的接口请求软件,按照 项目(微服务)、目录来管理我们的接口,基于迭代来管理我们的接口文档,文档可以导出和通过 url 实时分享,按照迭代编写自动化测试用例,在不同环…

kubernetes--Istio(四)

一、可观测性 Istio 为网格内所有的服务通信生成详细的遥测数据。这种遥测技术提供了服务行为的可观测性, 使运维人员能够排查故障、维护和优化应用程序,而不会给服务的开发人员带来任何额外的负担。 通过 Istio,运维人员可以全面了解到受监…

Burp安全扫描Web应用

一、浏览器设置代理 如下图所示,点击火狐浏览器的“扩展和主题”,搜索“代理”。 如下图所示,选择搜索到的第一个代理(选择任何一个都可以)。 如上图所示,第一个点击后,进入如下页面&#xff0…

【Access、Trunk和Hybrid】

概述 Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;Hybrid类型的端口可以允许多个VLAN通过&#xf…

自己编写一个谷歌浏览器插件, 模拟某音直播间自动发消息

闲来没事, 做个插件玩一玩,于是一顿学习。 按照浏览器插件规范,一顿代码编写, 搞了一个简单的插件。仅做学习。 可以实现在直播间自动发消息。 定时轮发。 实现原理: 利用谷歌popub.js 发送消息。 在content-script.…

g2plot如何实现面积图和折线图的动态切换?

一开始的时候显示的是面积图: 当我点击折线图的时候,要变成折线图: 当我再点击面积图的时候,还要变回面积图: 要实现这个功能,得知道g2plot几个重要的API。 参考文档如下:https://g2plot…

防火墙之双机热备篇

为什么要在防火墙上配置双机热备技术呢? 相信大家都知道,为了提高可靠性,避免单点故障 肯定有聪明的小伙伴会想到那为什么不直接多配置两台防火墙,然后再将他们进行线路冗余,不就完成备份了吗? 答案是不…

JDK、JRE、JVM的区别java的基本数据类型

说一说JDK、JRE、JVM的区别在哪? JDK: Java Delopment kit是java工具包,包含了编译器javac,调试器(jdb)以及其他用于开发和调试java程序的工具。JDK是开发人员在开发java应用程序时候所需要的的基本工具。…

海外社媒矩阵为何会被关联?如何IP隔离?

在当今的数字时代,社交媒体已经成为人们日常生活中不可或缺的一部分。通过社交媒体,人们可以与朋友互动,分享生活,甚至进行业务推广和营销。然而,社交媒体账号关联问题逐渐受到广泛关注。社交媒体账号为何会关联&#…

问题清除指南|成功解决pipmatplotlib因为ConnectTimeoutError更新失败问题

前言:跑baseline需要升级matplotlib和pip,在此记录一个错误和一个「别致」的解决方案。 北京时间 14:00 左右,在终端环境中运行命令python -m pip install --upgrade pip,报错: 多次尝试,未果。 隔天上午 0…

Elasticsearch 企业级实战 01:Painless 脚本如何调试?

在企业级应用中,Elasticsearch 常常被用来处理复杂的数据查询和操作。 Painless 是 Elasticsearch 的内置脚本语言,虽然强大,但调试起来并不容易。 本文将详细介绍如何在实战中有效调试 Painless 脚本,以提高开发和运维效率。 本文…

2.javaWeb_请求和响应的处理(Request,Response)

2.请求和响应的处理 文章目录 2.请求和响应的处理一、动态资源和静态资源javax.servlet(包) 二、Servlet体系1.简介2.HttpServlet3.Servlet生命周期 三、Request对象1.ServletRequest1)ServletRequest主要功能有:2)ServletRequest类的常用方法: 2.HttpServletReques…

通过SchedulingConfigurer 接口完成动态定时任务

通过SchedulingConfigurer 接口完成动态定时任务 一.背景 在Spring中,除了使用Scheduled注解外,还可以通过实现SchedulingConfigurer接口来创建定时任务。它们之间的主要区别在于灵活性和动态性。Scheduled注解适用于固定周期的任务,一旦任…