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

本文主要是介绍互连网络的负载平衡路由算法 (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 应用于三种对称拓扑 - 全连接图、环面网络和立方体连接循环,并通过广泛的模拟证明了其对每种拓扑的有效性。

这篇关于互连网络的负载平衡路由算法 (UGAL, Universal Globally Adaptive Load-Balancing 通用全局自适应负载平衡)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig