互连网络的负载平衡路由算法 (UGAL, Universal Globally Adaptive Load-Balancing 通用全局自适应负载平衡)

  • Universal Globally Adaptive Load-Balancing 通用全局自适应负载平衡
    • 1. Motivation 动机
    • 2. 任意对称拓扑上的 UGAL
    • 3. 总结

Universal Globally Adaptive Load-Balancing 通用全局自适应负载平衡

之前的工作都是基于 torus 网络的负载平衡路由,而这篇文章的内容提出了一种适用于任意对称拓扑(arbitrary symmetric)的通用负载平衡算法。用有向图(directed graph)G(V,E)来表示拓扑,V是网络中的节点,E是边(通道)。因为图是对称的,因此每个节点的度是相同的。

最小自适应路由(MIN AD)在所有可能的最小路径中,根据输出队列长度自适应地选择每一跳的维度。然而严格的最小路由会在最坏情况流量模式下获得次优的性能,因为其无法利用非最小路由进行负载平衡;VAL 路由算法可以提供最佳的最坏情况吞吐量,然而这是以牺牲良性流量的性能为代价的。

为了保证任意对称拓扑上的最佳的最坏情况和最好情况(best-case)性能,提出一种在良性流量上进行最小路由,并在对抗流量模式下像 VAL 路由算法一样进行负载平衡

1. Motivation 动机

考虑图6.1 的一个四节点的网络,理解 MIN AD 和 VAL 路由算法为什么不能在最坏情况或最佳情况获得最优性能。网络的容量为 2B/N = 4b bits/s。对于良性模式考虑均匀随机流量(UR),其中每个节点均匀且随机地将流量发送到每个可能的目的地。良性模式如果要取得最佳性能,需要将每个数据包以最小路由方式发送,沿着连接源节点到目标节点的直接连接通道。因此MIN AD展示出UR上的最佳性能,吞吐量为4b bits/s,或到达100%的容量。

在这里插入图片描述

而对于排列流量(permutaiton),如node0(2)发送所有的流量到node1(3),反之亦然。最小路由会导致网络中通道上的负载分布不均匀。图6.1中的黑色箭头说明MIN AD仅使用的链路,而其他通道处于空闲状态。产生了 b bits/s 的吞吐量,或1/4的容量。

在这里插入图片描述

VAL 路由算法对任意的排列流量提供最佳性能。VAL 路由算法通过随机选择中间节点i路由数据包,如图6.2所示,首先从s-i,其次i-d。中间节点i可以选择为s/d,因此VAL选择一跳的概率为1/2(即选择目标节点或者源节点),选择两条的路径概率也为1/2。因此每个链路有一个 0.5a的负载,吞吐量为 2b bits/s。

为了在这两种情况(worst-case, best-case)下都能获得最佳性能,利用了这样一个事实:对于 UR 上的最小路由,所有通道有均等负载,而在排列流量情况下,沿最短路径通道的队列被填满,而其他队列完全为空。队列占用率的这种不平衡表明这种不均衡的流量模式对于最小路由是不利的,并且数据包应该被非最小路由以平衡负载。为了对任何对抗性流量进行负载平衡,引入路由 VAL 路由方法,通过随机选择的中间节点 q 来进行从 s 到 d 的路由。s-q 和 q-d 的路径都是是最小路径。将此方法称为通用全局自适应负载平衡路由(UGAL)

在数据包的源节点,UGAL 记录从 s-d 的最短路径的输出通道的队列长度qm。选中随机中间目的地 q,并记录沿着从 s-q 开始的最短路径的队列长度 qnm。当q=s或q=d时,qnm=qm。Hm 和 Hnm 分别表示路径 s-d 和 s-q-d 的跳数。为了平衡沿最小路径和非最小路径的负载,如果 q m H m ≤ q n m H n m q_mH_m \leq q_{nm}H_{nm} qmHmqnmHnm,UGAL 按最小路由发送数据包,否则它沿s-q-d进行非最小路径路由。

图 6.3 显示,在 UR 流量上,UGAL 几乎始终以最少的方式进行路由。
在这里插入图片描述

然而,在排列流量上情况有所不同,UGAL 在非常低的负载下采用最小路由,但在中到高负载时部分采用非最小路由(图 6.4)。最后接近饱和时,它会最小化路由一半的数据包,并沿着中间节点按非最小路径路由另一半一半的数据包。由于这种misroute的自适应决策,UGAL 在 UR 和排列流量上都产生了最佳吞吐量。

在这里插入图片描述

图 6.5 显示了这两种流量模式的延迟-负载图。UGAL 在排列流量上达到50%饱和,在 UR 上达到100%饱和。

在这里插入图片描述

2. 任意对称拓扑上的 UGAL

UGAL 可以轻松扩展到任意对称拓扑。一旦在其源节点 s 处从源队列接收到发往目的地 d 的数据包,UGAL 将根据通道队列的拥塞情况决定是否以最小方式路由或以 VAL 的方式以非最小方式路由。 q m qm qm 表示为所有最短路径通道中最短的输出队列长度,即沿最短路径s-d的输出通道。然后 UGAL 选择一个随机中间目标节点 q。 q n m q_nm qnm 表示为来自 s-q 的所有最短路径通道中的最短输出队列长度。令s-d路径的跳数为Hm ,s-q-d 路径的跳数为 Hnm。如果 q m H m ≤ q n m H n m q_mH_m \leq q_{nm}H_{nm} qmHmqnmHnm,UGAL 按最小路由发送数据包,否则它沿s-q-d进行非最小路径路由,其中每个阶段为最小的自适应的

之后文章将 UGAL 应用于三种不同的节点对称拓扑:全连接图、2-D torus 和立方体连接环。我们使用以 C 语言编写的周期精确模拟器来评估每种拓扑上的 UGAL。所有拓扑中的总缓冲区资源保持恒定,即 VC 数量和 VC 通道缓冲区深度的乘积保持恒定。

其中全连接图需要2VC保证无死锁,而torus仍以3VC来保证无死锁,正如CQR GAL 和GOAL所实现的那样。

3. 总结

UGAL 是一种自适应路由算法,可保证最坏情况下的最佳性能,而不会牺牲良性(最佳情况)流量的任何局部性。 UGAL 通过根据通道队列的拥塞情况自适应地决定何时最小化或非最小化路由数据包来实现此属性。UGAL 是通用的,因为它可以应用于任意对称拓扑。我们将 UGAL 应用于三种对称拓扑 - 全连接图、环面网络和立方体连接循环,并通过广泛的模拟证明了其对每种拓扑的有效性。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

学生台灯照度多少为好,五款爆款护眼台灯品牌推荐

学生台灯照度多少为好,当前,我国青少年的近视率已超过半数,位居全球之首,且近视发生年龄呈现下降趋势。长时间用眼和过度使用电子产品是导致近视高发的主要因素。面对这一挑战,降低近视风险需先培养良好的用眼习惯至关…

VS+Open3D_0.18.0版本环境配置

Open3D0.18.0版本较新,在网上参考资料编译,踩了不少雷,这里记录一下,结尾放上编译好的库 环境 VS2022Open3D_0.18.0 准备 cmake >3.20 python >3.6 源码编译 在github官网下载Open3D的源码 Open3D 解压后在目录下创建…

深入理解堆结构:基础、应用及代码实践

文章目录 第一章:堆的定义和特性1. 堆的基本定义2. 完全二叉树3. 堆的类型和特性 第二章:堆的内部结构1. 二叉堆的数组表示法2. 索引关系 第三章:堆的基本操作1. 插入操作2. 删除操作3. 堆化(Heapify)过程 第四章&…

黑客常用的PHP漏洞利用技术

黑客常用的PHP漏洞利用技术 随着互联网的普及和发展,网络安全问题也成为了一个全球性的难题。而黑客作为网络安全的"敌人",其手法也是不断创新和进化的。而在黑客攻击中,基于PHP的网站往往成为主要目标之一。PHP是一种功能强大且广…

鸿蒙内核源码分析(用栈方式篇) | 程序运行场地谁提供的

精读内核源码就绕不过汇编语言,鸿蒙内核有6个汇编文件,读不懂它们就真的很难理解以下问题. 1.系统调用是如何实现的? 2.CPU是如何切换任务和进程上下文的? 3.硬件中断是如何处理的? 4.main函数到底是怎么来的? 5.开机最开始发生了什么? 6.关机…

iOS 17上如何恢复数据?iOS 17 数据恢复软件

“您好,我正在为我的 iPhone 寻找一款iOS 17 数据恢复软件。升级到 iOS 17 后,我丢失了 iPhone 上的所有照片、联系人和消息。有什么建议吗?” ——丹尼 iOS 17数据恢复软件下载 升级到iOS 17后如何恢复丢失的数据?由于在 iPhone…

B端界面:美不胜收,第二弹12张。

上次分享第一期受到了大家欢迎,第二期来了,老规矩12张,欢迎大家来捧场。

JAVA同城服务美容美发到店服务上门服务系统源码微信小程序+微信公众号+H5+APP

随着科技的飞速发展,互联网和移动互联网已经渗透到我们生活的方方面面,同城服务美容美发到店服务上门服务系统应运而生,为整个行业带来了巨大的变革和无限的可能。该系统的重要性和优势不言而喻,对于行业发展和用户需求的影响深远…

C语言----链表

大家好,今天我们来看看C语言中的一个重要知识,链表。当然大家可以先从名字中看出来。就是一些表格用链子连接。那么大家是否想到了我们以前学的数组,因为数组也是相连的呀。是吧。但是链表与数组还是有区别的,那么链表是什么有什么…

Centos7安装K8S集群环境

一、系统设置 1、关闭swap 临时关闭swap swapoff -a 永久关闭 注释掉 /etc/fstab 中的下面配置 #/dev/mapper/centos-swap swap swap defaults 0 0 2、 关闭SELinux kubelet不支持SELinux, 这里需要将SELinux设置为permissive模式 setenforce 0 sed -i s/^SELINUXenfo…

使用 LooperPrinter 监控 Android 应用的卡顿

在 Android 开发中,主线程(UI线程)的卡顿直接影响用户体验。LooperPrinter 是一种有效的工具,可以帮助我们监测和识别这些卡顿。下面是如何实现 LooperPrinter 监控的详细步骤和相应的 Kotlin 代码示例。 步骤 1: 创建自定义的 P…

时序分解 | Matlab实现RLMD鲁棒性局部均值分解

时序分解 | Matlab实现RLMD鲁棒性局部均值分解 目录 时序分解 | Matlab实现RLMD鲁棒性局部均值分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现RLMD鲁棒性局部均值分解,可直接替换 Matlab语言 1.算法新颖小众,用的人很少,包含分解图…

公考学习平台|基于SprinBoot+vue的公考学习平台(源码+数据库+文档)

公考学习平台目录 目录 基于SprinBootvue的公考学习平台 一、前言 二、系统设计 三、系统功能设计 5.1用户信息管理 5.2 视频信息管理 5.3公告信息管理 5.1论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

万万没想到,原来这些维生素对帕金森有好处!

亲爱的读者朋友们,今天我们要聊一个特别的群体——帕金森病患者。在面对这一神经系统退行性疾病时,除了遵循医嘱进行药物治疗和康复锻炼,合理的饮食和营养补充也显得尤为重要。那么,究竟哪些维生素是他们不可或缺的呢?…

小剧场短剧影视小程序源码_后端PHP

项目运行截图 源码贡献 https://githubs.xyz/boot?app42 部署说明 linux/win任选 PHP版本:7.3/7.2(测试时我用的7.2要安装sg扩展 ) 批量替换域名http://video.owoii.com更换为你的 批量替换域名http://120.79.77.163:1更换为你的 这两个…

基于python的舞蹈经验分享交流网站django+vue

1.运行环境:python3.7/python3.8。 2.IDE环境:pycharmmysql5.7/8.0; 3.数据库工具:Navicat11 4.硬件环境:windows11/10 8G内存以上 5.数据库:MySql 5.7/8.0版本; 运行成功后,在浏览器中输入&am…

使用JNI机制加载本地方法的小案例

JNI 最近在学习Android,其中需要使用到c的库,这个时候就要使用到JNI机制了,简单来说,就是可以通过这个机制,让java代码可以调用本地c语言编写的代码,将c语言编写的代码打包成动态库,然后&#…

新华三李玉涛:智算网络是解决AI算力需求的关键

近年来,人工智能领域呈现爆发式增长,尤其在OpenAI、文心一言等大模型的不断推出,参数规模实现了飞跃式增长。同时,Character AI、谷歌Bard等应用已经逐渐渗透至日常生活和工作当中,越来越多的人开始借助AIGC工具来提升…

大气污染扩散模型Calpuff技术应用

目前,大气污染仍为我国亟待解决的环境问题。为了弄清大气污染物排放后对周围环境的影响,需要了解污染物的扩散规律。Calpuff模型是一种三维非稳态拉格朗日扩散模型,可有效地处理非稳态(如,熏烟、环流、地形和海岸等&am…

(06)vite与ts的结合

文章目录 系列全集package.json在根目录创建 tsconfig.json 文件在根目录创建 vite.config.ts 文件index.html额外的类型声明 系列全集 (01)vite 从启动服务器开始 (02)vite环境变量配置 (03)vite 处理 c…