【论文阅读】互连网络的负载平衡路由算法 (CQR, Channel Queue Routing 通道队列路由)

  • Channel Queue Routing (CQR) 通道队列路由
    • 1. Channel Queue Routing (CQR) 的动机
      • (1) 排队论(queueing theory)模型
      • (2) GAL’s latency on tornado traffic
      • (3) Routing tornado traffic with CQR
    • 2. Channel Queue Routing 通道队列路由
    • 3. CQR 的性能
    • 4. 总结

Channel Queue Routing (CQR) 通道队列路由

A. Singh. Load-Balanced Routing in Interconnection Networks.PhD thesis, Stanford University, 2005.

总结自 A. Singh 的博士毕业论文 —— Load-Balanced Routing in Interconnection Networks

1. Channel Queue Routing (CQR) 的动机

对于对抗性流量模式,自适应路由算法的重点必须随着负载的增加而改变。在低负载时,应尽量减少数据包的路由,以最大限度地减少延迟。随着负载的增加,最小化延迟需要将一些数据包转移到非最小路由,以平衡信道负载。在本节推导了 8-node ring 网络拓扑龙卷风流量模式的最佳自适应路由算法,并将其与 GAL 的性能进行比较。

虽然 GAL 在非常低的负载和接近饱和的负载下都匹配此最佳算法,但它在中间负载下从最小到非最小路由的转换太慢,导致延迟大约比最佳性能多 100 周期。这代表了 GAL 在所有对抗模式上的表现,因为它只能在超过阈值即网络延迟已经很大的情况下才会进行非最小路由。为了了解龙卷风流量应如何路由以获得最佳延迟,我们提出了排队论(queueing theory)的近似理论模型。

(1) 排队论(queueing theory)模型

对于排队模型,我们假设每个队列都是一个独立的 M/D/1 的队列,并且具有到达率 a 和服务率 1。此类队列中数据包的排队延迟由为:
在这里插入图片描述

如果数据包穿过“此类队列”的线性网络,则会因“队列和跳跃延迟”而产生排队延迟。其总延迟近似为:
在这里插入图片描述

当以最佳路由处理 TOR 时,有两类数据包 — 最小路由的数据包和沿非最小路径发送的数据包。令每个节点的注入负载为 a ,每个节点最小和非最小发送数据包的速率分别为 x1 和 x2。然后,低于饱和度时:
在这里插入图片描述

以最少(非最少)路由发送的数据包必须遍历 3(5) 个 M/D/1 队列,且每个队列的到达率为 3a(5a)。 因此,最小路由的数据包的延迟由下式给出:
在这里插入图片描述

非最小路由数据包的延迟由下式给出:
在这里插入图片描述

那么平均延迟就是这些延迟的加权和:
在这里插入图片描述

综上得到最佳性能的最小非最小流量比例,对于8节点环上的龙卷风流量:
在这里插入图片描述

证明 :对于最小延迟,每个节点应该沿着最小路径发送所有流量,直到最小路由的增量延迟大于非最小路由的增量延迟。路由将严格最小化:
在这里插入图片描述

求解方程 5.5,得到 a<=0.13。因此,从严格最小到非最小的切换点发生在 as = 0.13。一旦每个节点开始发送非最小化流量( a > as),最小化 (x1) 和非最小化 (x2) 发送的负载的最佳比例将使得沿任一方向的增量延迟相同:
在这里插入图片描述

求解方程 5.6、5.1 得出 x1 = (a+as)/2 for a > as。最后,当网络在 a=0.53 饱和后,x1=0.33 和 x2=0.2。沿最小和非最小路径的可接受吞吐量图如图 5.12 所示。
在这里插入图片描述

将 x1 和 x2 的值代入方程 5.2、5.3 和 5.4,我们根据模型得到数据包的平均最小延迟、非最小延迟和总体延迟。如图 5.13 所示,两条路径的平均延迟相似,总体平均延迟较低。
在这里插入图片描述

(2) GAL’s latency on tornado traffic

如果与数据包目的地关联的最小注入队列的占用率低于阈值,GAL 会最小化路由数据包。否则,超过阈值,数据包将被注入非最小注入队列并进行非最小路由。

通过这种方法,GAL 最小化路由数据包,直到沿最小路径的容量饱和。并且路由从严格最小注入切换到非最小注入队列。直到最小路径上的所有队列都完全填满时,才会发生这种切换,如图 5.14 所示。因此,发生此切换的负载只是龙卷风模式的严格最小路由的饱和负载,由 as = 0.33 给出。尽管饱和时可接受的吞吐量仍然是最优值 0.53。

在这里插入图片描述

然而,需要注意的一点是,虽然 GAL 路由在龙卷风模式下是吞吐量最优的,但就延迟而言,从严格最小到非最小的切换延迟会带来高昂的代价。

在这里插入图片描述

图 5.15 显示了 GAL 的平均最小、非最小和总体数据包延迟。由于 GAL 一直以最小路由方式到达严格最小路由的饱和点,因此负载后最小数据包所产生的延迟非常高。这导致平均总体数据包延迟(最小延迟和非最小延迟的加权平均值)在网络饱和点之前达到 100 个周期的数量级。

(3) Routing tornado traffic with CQR

可以观察到 GAL 在 tornado 流量上表现如此差的原因是它等待太长时间才能将其策略从严格最小化切换到非最小化。这样做是因为它的拥塞感知机制使用注入队列的占用情况,而这对网络拥塞的响应不是很灵敏。CQR 通过使用其通道队列感知网络负载不平衡来解决这个问题,同时依靠网络的隐式背压从网络的其他部分收集近似的全局信息。

在这里插入图片描述

考虑图 5.16 中突出显示的节点2。对于龙卷风流量模式,该节点的最小和非最小队列分别是顺时针和逆时针输出队列。这两个队列的瞬时占用率被标记为 qm 和 qnm 。如果最小路由(非最小路由),数据包将遍历3(5)个队列,每个队列都有占用 qm(qnm) (此处将全局拥塞信息都默认为本地输出队列的拥塞信息)。为了保持两个方向上的延迟平衡,CQR 最小路由只要 3xqm <= 5xqnm,否则它是非最小路由。这种拥塞感知方案比 GAL 中使用的方案响应更快,因为与 GAL 不同的是切换发生在所有最小队列被填满之前,如图 5.16 所示。我们将这种路由方法称为通道队列路由(Channel Queue Routing, CQR) [1]。

2. Channel Queue Routing 通道队列路由

与 GAL 一样,CQR 自适应地选择一个象限来为每个数据包路由。假设源节点为 s={s1,s2,…,sn} ,目标节点为 d={d1,d2,…,dn} ,其中 xi 是节点 x 在维度 i 中的坐标。我们计算一个最小方向向量 r = {r1,r2,…,rn} ,其中对于每个维度 i ,如果短方向是顺时针方向增加节点索引我们选择 ri 是 +1,如果短方向是逆时针方向选择 ri 是 -1。选择要路由的象限也意味着选择一个象限向量,其中对于每个不匹配的维度 QRi,如果我们想要在该维度中最小(非最小)路由,我们可以选择 QRi = ri ( QRi = -ri )。

为了像一维情况一样获得近似象限拥塞信息,每个节点在每个维度上沿两个方向 (+ 和 -) 记录其输出通道队列的瞬时占用情况。然后象限 j 的拥塞信息 Qj,可通过该象限的最短输出队列的长度来近似(选择该象限所有方向中的最短输出队列)。如果 Qj 的跳数为 Hj,则大约为数据包产生的延
迟为 HjQj。为了平衡所有象限的延迟,我们必须使所有象限 j 的 HjQj 相等。因此 CQR 选择最小值 HjQj 对应的象限。

举例来说,图 5.19 显示了 8-ary 2-cube 网络的一部分。源 (0,0) 想要将数据包路由到目标节点 (2,3)。对于这个源-目的地对,有4个象限Q1(++)、Q2(±) 、Q3(-+) 、Q4(–) 的选择,其中跳数分别为 5、 8、 9 和 11。源节点记录每个输出通道的占用情况 qa、qb、qc、qd。最小象限Q1的拥塞情况近似为 min(qa,qb)。类似地,象限 Q2 、Q3 和 Q4 的拥塞情况分别由 min(qa,qd)、min(qb,qc) 和 min(qc,qd) 来近似。CQR 选择跳数-拥塞积最小的对应的象限,即 5Q1、8Q2、9Q3、11Q4 中最小值对应的象限。
在这里插入图片描述

一旦选择了象限,数据包就会使用 VC 在该象限内自适应路由,方式与 GOAL 和 GAL 中的方式相同

3. CQR 的性能

CQR 能够在所有品质因数上与 GAL 的性能(吞吐量和延迟)完全匹配。与 GAL(具有固定阈值)不同,CQR 在饱和后是稳定的,因为它使用通道队列而不是注入队列来做出路由决策。由于饱和后注入负载导致的拥塞仍然保留在源队列中,因此 CQR 不会混淆由于负载不平衡和注入负载超过饱和而导致的拥塞。因此,即使在提供的负载超过饱和之后,接受的吞吐量仍保持平稳,如图 5.20 所示。应与GOAL中的最短输出队列一致。

在这里插入图片描述

CQR 相对于 GAL 的最大改进是,在中间负载时,对于需要算法非最小路由以获得最佳吞吐量的流量模式,它以比 GAL 低得多的延迟交付数据包。当必须使用非最小路径来提供更高的系统吞吐量时,对于接近饱和的注入负载,这种效果更加明显
在这里插入图片描述

4. 总结

总而言之,CQR 感知近似全局拥塞,并使用通道队列拥塞做出自适应全局路由决策,以最小化本地流量路由,同时非最小路由以在高负载下平衡困难流量模式。 CQR 与 GAL 一样,可以匹配局部模式上的最小算法的吞吐量,以及困难模式上的负载平衡不经意算法的吞吐量——这是其他不做出全局自适应决策的算法无法实现的

通道队列路由克服了与 GAL 相关的许多问题。最重要的是,在需要非最小路由的负载上,CQR 的延迟远低于 GAL。这是因为在切换到非最小路由之前,它不需要将最小流量运行到饱和状态,从而导致高延迟。一旦最小和非最小路由导致的延迟匹配,CQR 就开始沿着非最小路由发送数据包,从而实现最小延迟。 CQR 还具有比 GAL 快得多的瞬态响应。这是因为通道队列快速反映全局拥塞,而注入队列(用于 GAL 中的感知)要求在感知拥塞之前沿最小路径的所有队列都已填满。 CQR 也是无条件稳定的,而 GAL 需要阈值适应机制才能提供稳定的性能。最后,与 GAL 相比,CQR 的实现非常简单。

之后将着眼于将 CQR 和 GAL 的优势扩展到任意常规网络拓扑。将把最小和非最小象限的概念推广到任意拓扑中的路由集,并开发基于通道队列的方法来感知这些路径集中的拥塞

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

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

相关文章

白话机器学习1:分类问题中的评价指标

机器学习中的评价指标非常多&#xff0c;它们用来衡量模型的性能和预测能力。不同类型的机器学习任务可能需要不同的评价指标。以下是一些常见的评价指标&#xff0c;按照不同类型的机器学习任务分类&#xff1a; 对于分类问题&#xff1a; 准确率&#xff08;Accuracy&#…

[NeurIPS-23] GOHA: Generalizable One-shot 3D Neural Head Avatar

[pdf | proj | code] 本文提出一种基于单图的可驱动虚拟人像重建框架。基于3DMM给粗重建、驱动结果&#xff0c;基于神经辐射场给细粒度平滑结果。 方法 给定源图片I_s和目标图片I_t&#xff0c;希望生成图片I_o具有源图片ID和目标图片表情位姿。本文提出三个分支&#xff1a;…

pytorch中创建maskrcnn模型

0.模型输入/输出参数参见 链接: pytorch的mask-rcnn的模型参数解释 核心代码 GeneralizedRCNN(这里以mask-rcnn来解释说明) # 通过输入图像获取fpn特征图,注意这里的backbone不是直接的resnet,而是fpn化后的 features self.backbone(images.tensors) # 由于是mask-rcnn,故而…

SpringCloud系列(10)--Eureka集群原理及搭建

前言&#xff1a;当注册中心只有一个&#xff0c;而且当这个注册中心宕机了&#xff0c;就会导致整个服务环境不可用&#xff0c;所以我们需要搭建Eureka注册中心集群来实现负载均衡故障容错 Eureka架构原理图 1、Eureka集群原理 2、创建Eureka Server端服务注册中心模块 (1)在…

R语言使用sjPlot包优雅绘制回归模型的交互效应图

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技&#xff0c;几乎在高分的SCI中必出现&#xff0c;因为把人群分为亚组后再进行统计可以增强文章结果的可靠性&#xff0c;进行可视化后可以清晰的表明变量之间的关系。不仅如此&#xff0c;交互作用还可以使用来进…

Dockerfile实战(SSH、Systemctl、Nginx、Tomcat)

目录 一、构建SSH镜像 1.1 dockerfile文件内容 1.2 生成镜像 1.3 启动容器并修改root密码 二、构建Systemctl镜像 2.1 编辑dockerfile文件 ​编辑2.2 生成镜像 2.3 启动容器&#xff0c;并挂载宿主机目录挂载到容器中&#xff0c;然后进行初始化 2.4 进入容器验证 三、…

照片误删怎么办?华为手机删除的照片如何恢复?

我们在使用华为手机时&#xff0c;可能会因为各种原因不小心删除一些照片。如果这些照片对我们来说很重要&#xff0c;那么恢复它们是非常必要且急迫的。那么华为手机删除的照片如何恢复呢&#xff1f;本文将为您介绍3种恢复华为手机中误删照片的方法。 如何恢复华为手机中被删…

Codeforces Round 941 (Div. 2)(A-D)

A. Card Exchange&#xff08;思维 Problem - A - Codeforces 题目大意&#xff1a; 给定n张牌&#xff0c;每次选k张相同的牌&#xff0c;把他们变成k-1张任意的牌&#xff0c;求最后手中最少能有几张牌。 思路&#xff1a; 直接判断这n张牌当中有没有k张一样的牌&#xff0c…

【java9】java9新特性之接口的私有方法

在Java 9中&#xff0c;接口可以包含私有方法&#xff08;包括静态私有方法和实例私有方法&#xff09;。这允许接口的设计者创建一些辅助方法&#xff0c;这些方法只能被接口中的其他方法所使用&#xff0c;而不能被实现该接口的类直接访问。 Java7 Java7及之前 &#xff0c…

软件项目管理的主要内容是什么?

目录 一、项目需求分析 二、项目计划制定 三、资源分配与调度 四、进度监控与控制 五、质量管理与保障 六、风险管理与应对 七、沟通协调与团队管理 八、项目收尾与总结 九、其他 一、项目需求分析 项目需求分析是软件项目管理的起始点&#xff0c;它涉及与客户的深入沟…

ubuntu22.04 修改内核源码教程

1. 确认当前内核版本 uname -a 2. 去ubuntu官网下载对应版本内核源码 6.5.0-28.29 : linux package : Ubuntu (launchpad.net) 3. 准备编译环境 sudo apt-get install libncurses5-dev libssl-dev build-essential openssl flex bison libelf-dev tar -xzvf linux_6.5.…

Spring Boot整合Redisson的两种方式

项目场景 Spring Boot整合Redisson的两种方式&#xff0c;方式一直接使用yml配置&#xff0c;方式二创建RedissonConfig配置类。 前言 redisson和redis区别&#xff1a; Redis是一个开源的内存数据库&#xff0c;支持多种数据类型&#xff0c;如字符串、哈希、列表、集合和有序…

Spring快速入门!(超详细)——工厂模式

GOF之工厂模式 设计模式&#xff1a;一种可以被重复利用的解决方案。GoF&#xff08;Gang of Four&#xff09;&#xff0c;中文名——四人组。《Design Patterns: Elements of Reusable Object-Oriented Software》&#xff08;即《设计模式》一书&#xff09;&#xff0c;19…

【网络安全】00后程序员,找 Bug 赚了 6,700,000元!他是怎么做到的?

1. 漏洞赏金计划&#xff08;Bug Bounty Programs&#xff09; 2. 安全咨询服务 3. 安全培训和教育 4. 写作和发表研究 5. 参与安全竞赛&#xff08;CTFs&#xff09; 6. 开发和销售安全工具 在网络安全领域&#xff0c;通过合法的方式利用漏洞赚钱主要涉及以下几种方法。…

【七十二】【算法分析与设计】64. 最小路径和,79. 单词搜索,1143. 最长公共子序列,利用记忆化递归填写dp表,可以很容易解决边界和填表顺序

递归填写dp表 利用递归函数填写dp表,可以很容易完成边界的处理,并且不用考虑填表的顺序. 绝大部分的动态规划可以用递归填表. 不用考虑填表顺序,只需要遍历一遍dfs即可. 64. 最小路径和 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路…

网络安全工程师必备的6个渗透测试工具

渗透测试是模拟黑客攻击&#xff0c;评估系统安全性的重要方法。 网络安全工程师需要掌握各种渗透测试工具&#xff0c;才能有效地发现和修复漏洞。 1. Nmap 功能: 强大的网络扫描器&#xff0c;可以扫描网络拓扑、识别主机和服务、发现开放端口和漏洞。 用途: 信息收集、漏洞…

Ubuntu编译安装MariaDB并进行初始化配置

Ubuntu编译安装MariaDB并进行初始化配置 1. 编译安装MariaDB2. 配置MariaDB3. Docker安装MariaDB 1. 编译安装MariaDB MariaDB官方安装文档&#xff1a;https://mariadb.com/kb/en/Build_Environment_Setup_for_Linux/    下载MariaDB源码&#xff1a;https://mariadb.org/ma…

Springboot + MySQL + html 实现文件的上传、存储、下载、删除

实现步骤及效果呈现如下&#xff1a; 1.创建数据库表&#xff1a; 表名&#xff1a;file_test 存储后的数据&#xff1a; 2.创建数据库表对应映射的实体类&#xff1a; import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.Table…

MySQL使用Sequence创建唯一主键

目录 第一章、快速了解Sequence1.1&#xff09;是什么&#xff1f;为什么使用1.2&#xff09;Sequence和自增主键的区别 第二章、在MySQL中使用Sequence2.1&#xff09;创建mysql_sequence表2.1.1&#xff09;创建表2.1.2&#xff09;插入数据 2.2&#xff09;创建函数2.2.1&am…

vue使用debugger调试代码

1.在vue.config.js中 在你的vue文件vue.config.js中找到如下configureWebpack位置&#xff0c;加入devtool:"source map"&#xff0c;重新启动项目debugger即可生效。