【论文阅读】互连网络的负载平衡路由算法 (GAL, Globally Adaptive Load-balancing 全局自适应负载平衡)

  • Globally Adaptive Load-balancing 全局自适应负载平衡
    • GAL: Globally Adaptive Load-balanced routing 全局自适应负载平衡路由
      • 1. GAL on a ring
      • 2. GAL on higher dimensional torus
      • 3. 实验性能
      • 4. 算法稳定性 Stability
      • 总结
    • References

Globally Adaptive Load-balancing 全局自适应负载平衡

将自适应(adaptive)引入后,可以发现自适应算法比 oblivious 算法具有更优越的平均性能。但最坏情况下(worst-case)的高吞吐量的代价是本地流量(local traffic)的下降,对于任何类型的不经意的错误路由(绕远)来说,良性流量的次优性能仍然亟待解决。

此次重点讨论自适应算法,引入了两种新的全局自适应负载均衡路由方法,称为 GAL[1] 和 CQR[2]。与之前基于本地信息(具有最短输出队列(shortest output queue)的有效维度)做出路由决策的自适应路由算法不同,全局自适应负载均衡算法使用分段注入队列(segmented injection queues)或通道队列(channel queues)来感知全局拥塞,以决定每个维度的路由方向。它们通过自适应地在选定的方向上进行路由来进一步平衡网络的负载。使用近似全局信息使 GAL 和 CQR 能够在良性流量模式上实现最小自适应路由的性能(延迟和吞吐量),同时在对抗性流量上实现明显的负载平衡目标。

GAL: Globally Adaptive Load-balanced routing 全局自适应负载平衡路由

迄今为止讨论(在当时)的自适应算法还没有在良性模式(benigh patterns)(例如 UR、NN)和对抗模式(例如 TOR)上都产生最佳吞吐量。理想的算法会以最小路由路由良性流量,并在网络通道上平衡对抗性流量的负载。在本节中,我们提出一种路由算法 GAL,该算法使用近似全局信息(approximate global infomation),将其路由决策在合适的时刻从最小更改为非最小。首先考虑在节点环上路由良性流量 NN 和对抗性流量 TOR 的算法,然后将 GAL 扩展到更高维的环面网络。

1. GAL on a ring

为了感知 8 节点的 ring 的近似全局信息,需要考虑每个源节点的 8 组注入队列(即将注入队列分段),每个组对应一个目标节点。每个组包含两个队列,一个最小队列和一个非最小队列(高维便是多个非最小队列)。当从终端节点接受数据包时,如果该队列的长度(已存储数据包/flit的个数)小于阈值T(threshold),则将数据包放在目的地组中的最小队列进行最小路由,否则将其插入到两个队列中较短的队列中,如图5.1所示。

在这里插入图片描述

当使用这种方案时,理想情况是 NN 流量模式总是被最小化,即永远不会到达最小队列的阈值。而当用此方案去路由 TOR 流量模式时,最初所有的数据包都会使用最小路由,然而当达到 0.33 load 的负载,最小方向会达到饱和而阈值也会被超过,因此方案接下来会将以非最小路由的方式发送剩下的数据包

在这里插入图片描述

如图5.2所示,方案在低负载时以最小路由进行路由,只有当最小通道在 0.33 的负载下饱和后,最小队列长度才会超过阈值。此时一些流量会被非最小路由。随着负载的增加,更多的流量会被非最小路由。在饱和时,负载会以5/8的流量最小路由和3/8的流量非最小路由比例保持平衡。因此通过使用近似全局拥塞信息做出全局路由决策(最小或非最小),该方案能够在良性模式(NN)和对抗模式(TOR)上实现最佳性能,这是先前路由算法没有实现的

2. GAL on higher dimensional torus

将 GAL 引入高维度 Torus 拓扑。在 n 个维度的 torus 拓扑中,将源节点 s 到目标节点 d 的所有可能路径划分为 2^n 个象限(quadrants),每个象限对应一种方向组合(每个维度提供一个方向)。GAL为每个象限提供一组单独的注入队列。图5.3显示了2-D network的每个节点的设置。

在这里插入图片描述

每个 node(路由器)都有一个无限源队列对终端节点的网络接口进行建模,类似于 Booksim 模拟器模拟中的注入队列。每个节点中共有 S = k^2 个组(Sets),每个组包含4个注入队列(代表四个象限,其中一个为最小路由队列,根据源目标节点对)。当注入单元(injection unit)接收数据包时,注入Sets由目标节点确定。当确定了注入组后,在组中,选择注入队列(即选择象限)按如下步骤:

  • 优先选择与从源到目标节点拥有最小距离且其占用率小于阈值的相关的象限的队列。如果队列超过了阈值,则选择所有队列中最短的队列
  • 一旦选择了象限,数据包就会在该象限内进行自适应路由,如 GOAL 按照本地拥塞信息(具有最短队列的有效维度)进行自适应路由。

如图5.3所示,GAL 路由算法需要和 GOAL 一样的 3 个 VC 通道在每个单向的物理通道去保证无死锁。一旦为数据包选择了象限,数据包就会在该象限中单调地前进,从而无活锁。

3. 实验性能

将 GAL 与自适应算法 CHAOS、MIN AD 和 GOAL 的性能进行比较。图 5.3 显示了 GAL 节点的实验设置。每个节点都有一个无限源队列来对网络接口进行建模,并且有 8x8 = 64 组用于 8x8 环面的注入队列。每组都有与每个象限相对应的 4 个注入队列(每个队列都有128flit deep)。路由器中每个单向的物理通道分别有 3 个 VC 通道(32 flits deep each)。假设每个数据包长度为 1 flit,以便将路由算法研究与流量控制问题分开。对于每个最小注入队列,GAL 的阈值为 2 flits。所有算法的总缓冲区资源保持恒定,即 VC 数量和 VC 通道缓冲区深度的乘积保持恒定

在这里插入图片描述

良性和对抗性流量模式的四种算法的吞吐量性能。两种良性流量模式如图 5.4 所示,而四种对抗性模式如图 5.5 所示。这些数字表明,GAL 是唯一能够在这两类流量模式上提供最佳性能的算法。它成为一种类似 GOAL 的负载均衡算法,并与对抗流量上 GOAL 的吞吐量相匹配。同时,它在良性模式上的表现并与 MIN AD 在这些模式上的性能相匹配。

在这里插入图片描述

此外还有延迟等性能的比较,此处不一一总结。

4. 算法稳定性 Stability

之前讨论了路由算法稳定性的重要性。即如果提供的负载增加到超过饱和点,可接受的吞吐量仍保持恒定,则算法是稳定的对于非最小自适应路由算法来说,实现稳定性可能具有挑战性,因为很难区分负载不平衡引起的拥塞和负载平衡网络饱和引起的拥塞。在前一种情况下,重新路由流量(可能是非最小流量)可以缓解这种不平衡并增加吞吐量。然而,在负载平衡但饱和的情况下,重新路由流量可能会导致不平衡并降低吞吐量。 GAL 通过测量吞吐量的变化并调整其队列阈值来解决这种不稳定问题。更改这些阈值可以控制非最小发送的数据包比例,这反过来又用于保持稳定性。

一个简单的示例来演示控制非最小发送数据包比例的必要性。考虑使用 GAL 路由 UR 流量但使用固定队列阈值的情况。对于超出饱和的提供的负载,流量最初将被最小化路由,因为最小队列是空的(应该是没有到达阈值)。由于网络无法承受所有流量,背压将导致数据包传输到到最小队列中。尽管最小路由完美地平衡了 UR 流量的负载,但这些队列的占用率最终将超过固定阈值,并且某些流量将被非最小路由。此时,吞吐量将开始下降,因为通道带宽被非最小数据包浪费(图 5.10)。

在这里插入图片描述

相反,如果数据包没有进行非最小路由,吞吐量将保持稳定。为了控制非最小路由的数据包数量,GAL 在队列深度设置的最小值Tmin和最大值Tmax之间动态改变每个阈值 T。这是针对每个队列集(queue set,即针对每一个目标节点进行动态调整)独立完成的。然后,阈值限制非最小路由的数据包的比例 - 增加会降低数据包被放置在非最小队列中的可能性,并且当 T = Tmax 时,所有数据包都被最小路由。 为了确保稳定性,只要观察到吞吐量下降,T就会增加。如果一直下降,T会持续增加到Tmax为止。流量模式可能之后会进行变化,使得非最小路由重新有效,当吞吐量不变或者增加,T就会下降

文章通过检测每个源节点对应集合中的所有注入队列在一个周期内排出的数据包的总数来估算每个源-目标节点对的吞吐量。这也是针对每个队列集(queue set,即针对每一个目标节点进行动态调整)独立完成的。

在这里插入图片描述

在这里插入图片描述

图 5.11 显示了阈值调整的示例。测试设置如下:在 1.10 注入负载下施加 UR 流量,然后在第 600 个周期切换到注入负载下的 TOR。因此,具有阈值调整方案的 GAL 对于良性和硬性流量模式都是稳定的。但是在阈值进行调整的过程中,以及通过阈值进行最小非最小路由切换所带来的延迟较高,后续需要解决

总结

在低负载和良性流量模式下,GAL 最小限度地路由所有流量,因此与此类友好流量上的最小路由算法的低延迟和高吞吐量相匹配。在对抗性流量模式下,GAL 在低负载时进行最小路由,然后在注入队列检测到拥塞时切换到非最小路由。在饱和状态下,GAL 与最佳负载平衡的不经意路由的吞吐量相匹配。这结合了最小算法(低负载下的低延迟)和明显负载平衡算法(高饱和​​吞吐量)的最佳功能

虽然 GAL 在各种吞吐量和延迟指标上比任何其他已知的路由算法表现更好,但 GAL 存在四个严重问题

  • 一旦开始非最小路由流量,它就会具有非常高的延迟。
  • 适应流量变化较慢。
  • 需要复杂的方法来实现稳定性。
  • 算法实施起来很复杂。

这些问题都与 GAL 使用注入队列长度来推断全局拥塞有关。之后将介绍通道队列路由(CQR - 发音为“seeker”)[2],它与 GAL 在本地和困难模式上实现高吞吐量的能力相匹配,但克服了 GAL 的局限性。 CQR 通过使用通道队列而不是注入队列来估计全局拥塞,从而克服了这些限制在需要非最小路由的负载下,CQR 的延迟比 GAL 低得多。它能够快速适应流量的变化,无条件稳定,并且实现简单

References

[1] A. Singh, W. J. Dally, A. K. Gupta, and B. Towles, “Adaptive channel queue routing on k-ary n-cubes,” in Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures, Barcelona Spain: ACM, Jun. 2004, pp. 11–19. doi: 10.1145/1007912.1007915.
[2] A. Singh, W. J. Dally, B. Towles, and A. K. Gupta, “Globally Adaptive Load-Balanced Routing on Tori,” IEEE Comput. Arch. Lett., vol. 3, no. 1, pp. 2–2, Jan. 2004, doi: 10.1109/L-CA.2004.8.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索数学的奇妙世界:Mathematica之美【上】

文章目录 一、二维函数作图1.二维函数作图命令Plot2.曲线样式3.重画和组合图形4.二维函数绘图 二、三维函数作图1.函数作图命令Plot3D2.三维参数作图 三、等值线图和密度图1.等值线图2.密度图3.图形之间的转换 四、数据绘图1.二维数据绘图2.三维数据绘图 总结 一、二维函数作图…

限流--4种经典限流算法讲解--单机限流和分布式限流的实现

为什么需要限流 系统的维护使用是需要成本的,用户可能使用科技疯狂刷量,消耗系统资源,出现额外的经济开销问题: 控制成本>限制用户的调用次数用户在短时间内疯狂使用,导致服务器资源被占满,其他用户无…

深度学习-线性回归+基础优化算法

目录 线性模型衡量预估质量训练数据参数学习训练损失最小化损失来学习参数显式解 总结基础优化梯度下降选择学习率 小批量随机梯度下降选择批量大小 总结线性回归的从零开始实现实现一个函数读取小批量效果展示这里可视化看一下 线性回归从零开始实现线性回归的简洁实现效果展示…

selenium在Pycharm中结合python的基本使用、交互、无界面访问

下载 下载与浏览器匹配的浏览器驱动文件,这里一定注意的是,要选择和浏览器版本号相同的驱动程序,否则后面会有很多问题。 (1)浏览器(以google为例)版本号的查询: 我这里的版本号是1…

大规模数据处理和分析

大规模数据处理和分析:随着大数据技术的发展,处理大规模数据集的能力成为了一种竞争优势。热门问题包括数据清洗、特征工程、分布式计算等。 当我们谈到大规模数据处理和分析时,通常涉及到以下几个方面的内容: 数据清洗&#xff1…

C语言 | Leetcode C语言题解之第55题跳跃游戏

题目&#xff1a; 题解&#xff1a; #define max(a, b) (((a) > (b)) ? (a) : (b))bool canJump(int* nums, int numsSize){int cover 0;int i;// 只可能获取cover范围中的步数&#xff0c;所以i<coverfor(i 0; i < cover; i) {// 更新cover为从i出发能到达的最大…

prime1--vulnhub靶场通关教程

一. 信息收集 1. 探测目标主机IP地址 arp-scan -l //查看网段 vm 编辑--查看虚拟网络编辑器&#xff0c;看到靶机的网段 网段是&#xff1a; 192.168.83.0 是c段网络 2. 全面检测目标IP nmap -sP 192.168.83.1/24 靶机ip是&#xff1a; 192.168.83.145 攻击机的ip是&…

浏览器渲染机制:重排(Reflow)与重绘(Repaint)以及Vue优化策略

浏览器渲染机制是一个复杂但有序的过程&#xff0c;其目的是将HTML、CSS和JavaScript代码转化为用户可以看到和交互的视觉界面。重排&#xff08;Reflow&#xff09;与重绘&#xff08;Repaint&#xff09;是浏览器渲染过程中对页面元素进行更新的两个重要步骤&#xff0c;理解…

格瑞威特 | 邀您参加2024全国水科技大会暨技术装备成果展览会

—— 展位号&#xff1a;A13 —— 企业介绍 北京格瑞威特环保设备有限公司成立于2009年&#xff0c;是专业从事设计、研发、销售智能加药计量泵、在线水质分析仪表、便携式水质分析仪表、流量计、液位计、阀门、搅拌机、烟气报警仪、加药装置等各类水处理设备及配件的OEM供服…

C++ | Leetcode C++题解之第55题跳跃游戏

题目&#xff1a; 题解&#xff1a; class Solution { public:bool canJump(vector<int>& nums) {int n nums.size();int rightmost 0;for (int i 0; i < n; i) {if (i < rightmost) {rightmost max(rightmost, i nums[i]);if (rightmost > n - 1) {r…

亚马逊云科技AWS将推出数据工程师全新认证(有资料)

AWS认证体系最近更新&#xff0c;在原有12张的基础上&#xff0c;将在2023年11月27日添加第13张&#xff0c;数据工程师助理级认证(Data Engineer Associate)&#xff0c;并且在2024/1/12前半价(省75刀&#xff1d;544人民币。 原有的数据分析专家级认证(Data Analytics Specia…

tfrecord文件介绍、读取、写入介绍

1、tfrecord文件格式介绍 tfrecord文件格式&#xff0c;是深度学习框架tensorflow专用的一种文件格式&#xff0c;其底层使用protobuf&#xff0c;TensorFlow(python)也提供了api用于读取和写入tfrecord&#xff0c;非常方便&#xff0c;而对于golang语言&#xff0c;目前没有成…

开发总结-Controller层

Controller层一定要try catch一下&#xff0c;不然里面报的错可能导致程序报错。 catch中就表示有错误就 Return ResultUtils.err(e.getMessage()) 必填项校验 在实体属性中添加注解 NotNull : 用在基本类 型上 不能为null 但可以为空字符串 NotEmpty : 用在集合类上 不能为…

Java Swing 桌面程序使用 GraalVM 封装为 exe 文件进行Native化

背景 本文主要基于如下两点情况&#xff0c;进行的实际案例&#xff0c;并记录的操作步骤。 使用 Java Swing 开发的小型桌面程序&#xff0c;运行需要依赖当前电脑安装 jre 环境&#xff0c;对使用者很不友好&#xff0c;且相比原生的 exe 程序偏慢。 GraalVM Native 允许开…

SpringMVC整体工作流程

. 用户发起一个请求&#xff0c;请求首先到达前端控制器前端控制器接收到请求后会调用处理器映射器&#xff0c;由此得知&#xff0c;这个请求该由哪一个Controller来进行处理(并未调用Controller)&#xff1b;前端控制器调用处理器适配器&#xff0c;告诉处理器适配器应该要…

甘特图是什么?利用甘特图来优化项目管理流程

在现代项目管理中,图表是一种强大而直观的工具,可以帮助项目经理和团队成员清晰地了解并掌控整个项目进程。其中,甘特图是最常用和最有效的图表之一。 甘特图是一种条形图,可以用来直观地展示项目中各个任务的进度、持续时间和相互关系。它由一个横轴和一个纵轴组成。横轴代表时…

[LitCTF 2023]Ping、[SWPUCTF 2021 新生赛]error、[NSSCTF 2022 Spring Recruit]babyphp

[LitCTF 2023]Ping 尝试ping一下127.0.0.1成功了&#xff0c;但要查看根目录时提示只能输入IP 查看源代码&#xff0c;这段JavaScript代码定义了一个名为check_ip的函数&#xff0c;用于验证输入是否为有效的IPv4地址。并且使用正则表达式re来匹配IPv4地址的格式。 对于这种写…

【计算机组成原理 1】计算机硬件概念

0️⃣ 参考 王道计算机考研408 1️⃣ 冯诺依曼机 核心思想【存储程序】 存储程序就是将指令先放入内存中&#xff0c;再从内存读取指令执行&#xff0c;从而实现自动化。核心 【运算器】 说明&#xff1a;在计算机系统中&#xff0c;软件和硬件在逻辑上是等效的 例如&#xf…

Debian 系统设置SSH 连接时长

问题现象&#xff1a; 通过finalshell工具连接Debian系统远程操作时&#xff0c;总是一下断开一下断开&#xff0c;要反复重新连接 &#xff0c;烦人&#xff01; 解决办法&#xff1a; 找到ssh安装目录下的配置文件&#xff1a;sshd_config vi sshd_config &#xff1a; 找到…

基于Springboot+Vue的Java项目-火车票订票系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…
最新文章