Congestion Control for Large-Scale RDMA Deployments

2023-10-10 22:12

本文主要是介绍Congestion Control for Large-Scale RDMA Deployments,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Introduction
  • DCQCN
  • Buffer Setting

Introduction

PFC是粗粒度的流量控制机制,在端口层面发挥作用,不区别不同的流。这会导致很多弊端,比如不公平,受害流等。

解决PFC限制的解决方法是flow-level的拥塞控制,DCQCN就是一种RoCEv2上的end-to-end的拥塞控制协议。

DCQCN

DCQCN包括sender(reaction point, RP),switch(congestion point, CP),receiver(notification point,NP)。

CP算法:在switch上,使用以下的概率函数对数据包进行ECN标记。
在这里插入图片描述

NP算法:ECN标记的包到达NP(receiver),表示网络中出现了拥塞。NP发送CNP(Congestion Notification Packets)包,将这个信息传达给sender。对于一个流,如果一个标记的包到达,并且在之前的N微秒内没有CNP被发送,CNP就立即被发送。也就是说,对于每个流, 每N微秒最多发送1个CNP包。作者将N设置为 50 μ s 50\mu s 50μs

RP算法:当一个RP(sender)收到一个CNP时,它减少它的当前发送速率( R C R_C RC)并且更新速率降低因子( α \alpha α),最后记录当前的速率为之后恢复过程的目标速率( R T R_T RT)。
在这里插入图片描述

当RP每K个时间单元没收到反馈时,它就更新 α \alpha α。注意K必须比CNP产生间隔要大。作者将K设置为 55 μ s 55\mu s 55μs
α = ( 1 − g ) α \alpha = (1-g)\alpha α=(1g)α

而且,RP使用计时器和字节计数器增加发送速率。字节计数器每B字节增加一次速率,计时器每T个时间单元增加一次速率。计时器确保流能够快速恢复,即使在它的速率降到一个很低的值时。速率恢复包括两个主要的阶段,第一个阶段是fast recovery,执行如下的F=5轮迭代,以快速接近目标速率 R T R_T RT
R C = ( R T + R C ) / 2 R_C = (R_T + R_C) / 2 RC=(RT+RC)/2

fast recovery后面跟着additive increase,目标速率每次增加 R A I R_{AI} RAI,当前速率缓慢地靠近目标速率:
在这里插入图片描述

状态机如下:
在这里插入图片描述

Buffer Setting

DCQCN需要平衡两个冲突的请求:

  1. PFC不能触发得太早(不能在ECN发送拥塞反馈之前触发)
  2. PFC不能触发得太晚(导致buffer overflow,造成包丢失)

Headroom buffer t f l i g h t t_{flight} tflight:发送到上游设备的PAUSE消息需要一段时间来到达和发挥作用。为了避免包丢失,PAUSE发送者需要保留足够的buffer空间,以处理这段时间内接收的包。这包括PAUSE被发送时in flight的包,以及上游设备处理PAUSE时发送的包。作者将每个端口,每个优先级的 t f l i g h t t_{flight} tflight设为22.4KB。

PFC Threshold t P F C t_{PFC} tPFC:这是一个进入队列在PAUSE发送到上游设备之前,能够增长到的最大大小。在每个进入端口,每个PFC优先级都有它自己的队列。因此,如果switch buffer的总大小为B,有n个端口,需要遵守 t P F C ≤ ( B − 8 n t f l i g h t ) / ( 8 n ) t_{PFC} \leq (B - 8nt_{flight})/(8n) tPFC(B8ntflight)/(8n)。当队列降低到 t P F C t_{PFC} tPFC以下两个MTU时,交换机发送RESUME消息。

ECN Threshold t E C N t_{ECN} tECN:一旦外出队列超过这个阈值,交换机开始标记数据包(即上图中 K m i n K_{min} Kmin)。为了使DCQCN有效,此阈值必须足够低,以使PFC阈值在交换机有机会用ECN标记数据包之前不会被触及。 t E C N t_{ECN} tECN是外出队列阈值, t P F C t_{PFC} tPFC是进入队列阈值。

在此基础想法上,作者设置了阈值的大小。

除此之外,作者在各种参数上进行了测试,从而选出最佳的参数大小。

这篇关于Congestion Control for Large-Scale RDMA Deployments的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/183445

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络 服务器端配置 在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。 安装 OFED 首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。 sudo

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

MFC中Spin Control控件使用,同时数据在Edit Control中显示

实现mfc spin control 上下滚动,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:  OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) {  LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);  // TODO: 在此添加控件通知处理程序代码    if

InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE)

在超算网络环境中,InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 是两种重要的网络技术,它们旨在提供高性能、低延迟的数据传输能力,适用于大规模并行计算任务。下面是对这两个技术的具体名词解释和应用场景的详细说明。 InfiniBand (IB) 名词解释 InfiniBand (IB):InfiniBand 是一种高性能计算和企业数据

2024年 Biomedical Signal Processing and Control 期刊投稿经验最新分享

期刊介绍 《Biomedical Signal Processing and Control 》期刊旨在为临床医学和生物科学中信号和图像的测量和分析研究提供一个跨学科的国际论坛。重点放在处理在临床诊断,患者监测和管理中使用的方法和设备的实际,应用为主导的研究的贡献。 生物医学信号处理和控制反映了这些方法在工程和临床科学的界面上被使用和发展的主要领域。期刊的范围包括相关的评论论文(review p

高精度打表-Factoring Large Numbers

求斐波那契数,不打表的话会超时,打表的话普通的高精度开不出来那么大的数组,不如一个int存8位,特殊处理一下,具体看代码 #include<stdio.h>#include<string.h>#define MAX_SIZE 5005#define LEN 150#define to 100000000/*一个int存8位*/int num[MAX_SIZE][LEN];void

android xml之动画篇 alpha、scale、translate、rotate、set的属性及用法 和

1.简介 Android的补间动画TweenAnimation由四种类型组成:alpha、scale、translate、rotate,对应android官方文档地址:《Animation Resources》 逐帧动画 FrameAnimation(也称 Drawable Animation  ):animation-list alpha 渐变透明度动画效果 scale 渐变

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 密集检索需要学习具有区分性的文本嵌入,以表示查询和文档之间的语义关系。考虑到大语言模

Android AnimationDrawable资源 set[translate,alpha,scale,rotate]

本文内容摘自《疯狂Android讲义 第三版-李刚著作》 xml <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"android:duration="1000"android:fillAfter="true"android:f