【论文阅读】互连网络的负载平衡路由算法 (RLB RLBth)

devtools/2024/9/19 18:36:56/ 标签: 论文阅读, 网络, 算法, 系统架构
  • 前言
  • Oblivious Load Balancing 不经意路由负载平衡
    • 1. oblivious routing 不经意/无关路由的背景知识
      • 1. oblivious routing, adaptive routing & minimal/non-minimal routing algorithms
    • 2. Balancing a 1-Dimensional ring: RLB and RLBth 一维 ring 的 RLB and RLBth
      • 1. Motivation of Balancing load 平衡负载的动机
      • 2. 一维 ring 的 RLB and RLBth
  • References

前言

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

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

Oblivious Load Balancing 不经意路由负载平衡

文章提出了用于 torus 网络的随机、非最小、不经意路由算法——RLB和RLBth

1. oblivious routing 不经意/无关路由的背景知识

不经意算法仅使用源节点和目标节点的身份来选择从源到目标的路径。换句话说,路由决策是“忽略”网络状态的。不经意的算法可能会使用随机化来在可能的路径之间进行选择。根据路线的长度,它们也可以被分类为最小或非最小。

1. oblivious routing, adaptive routing & minimal/non-minimal routing algorithms

  • 不经意路由算法(oblivious routing algorithms)仅根据消息源和目的地的身份在这些路径之间进行选择,而自适应算法(adaptive algorithms)则可以根据网络状态(拥塞信息)做出决策。

  • 不经意的算法和自适应算法都可以使用**随机化(Randomization)**来在替代路径中进行选择。

  • 最小算法(Minimal algorithms)沿着从源到目的地的最短路径路由所有数据包,而非最小算法(non-minimal)可能沿着更长的路径路由数据包,即进行了绕远如 VAL 路由算法

  • 常见的不经意算法 oblivious routing 包括——DOR、VAL 和 ROMM

    • 维序路由(DOR),有时称为 e-cube routing,首先由 Sullivan 和 Bashkow 在A LARGE SCALE, HOMOGENOUS, FULLY DISTRIBUTED PARALLEL MACHINE, II 一文中首次提出[1]。**在 DOR 算法中,每个数据包首先只在一个维度上传递,只有当该维度的坐标一致后,再进入下一个维度进行传输。**由于其简单性,它已被大量用于互连网络中。但 DOR 在对抗性流量(adversarial traffic)模式上的糟糕表现引出了自适应路由方面的大量工作。
    • Valiant 首先提出了如何使用随机化为任意流量模式提供有保证的吞吐量[2]。即将**路由分为两个阶段,第一阶段从源节点路由至全局中随机选择的中间节点(intermediate node),第二阶段从中间节点路由至目标节点。两个阶段的具体路由算法都使用 DOR。**虽然 VAL 路由算法能够进行负载的平衡,在最坏模式下保证一定的性能,但是其破坏了局部性(locality),在本地流量甚至平均流量上性能较差。
    • 为了在获得随机化优势的同时保留局部性,Nesson 和 Johnson 提出了 ROMM 路由算法[3],即随机、不经意、多阶段最小路由(Randomized, Oblivious, Multi-phase Minimal routing)。**与 VAL 一样需要两个阶段,但 ROMM 通过从最小象限(minimal quadrant)(即源节点和目标节点坐标所构成的象限)中随机选择的中间节点路由每个数据包,确保生成的路径严格最小。**虽然[31]报告了一些排列的良好结果,但 ROMM 实际上比 DOR 具有更低的最坏情况吞吐量。问题在于使用最小路由(minimal routing),不可能在对抗模式上实现良好的负载平衡。

2. Balancing a 1-Dimensional ring: RLB and RLBth 一维 ring 的 RLB and RLBth

1. Motivation of Balancing load 平衡负载的动机

下图 1.4 显示了8 node的 ring 的简化版本。对于良性流量模式,如最近邻居 (NN),来自节点的所有流量均等分配到其相邻节点之间(一半到节点 i+1,一半到节点 i-1,模8/模k)。由于每个单向通道具有带宽b,因此如果流量只是沿着最小路径路由,则每个节点都可以以最佳速率2b (吞吐量, 2b) 注入流量。我们称这种流量为良性(benign),因为如果使用最小路由来路由数据包,所有通道自然会实现负载平衡

在这里插入图片描述

而对于对抗流量模式,我们考虑 ring 的 MR 的最坏情况流量(worst-case traffic)、龙卷风(TOR)流量。在 TOR 中,来自节点 i 的所有流量几乎绕环的一半发送到节点 i+3(i + k/2 - 1)。图 1.5 显示了最小路由 TOR 导致顺时针通道上的高负载,保持逆时针通道完全空闲。这会导致相当大的负载不平衡,吞吐量较差(单向通道带宽为b,每个顺时针通道需要维持3条不同数据流,故吞吐量为b/3)。

在这里插入图片描述

如果要在 TOR 等对抗模式上获得良好的性能,需要非最小路由(绕环的长距离)路由一些流量以平衡负载。先按照 Valiant 的建议,通过完全随机化路由 (VAL) 来平衡 TOR 流量,从节点 i 发送到随机中间节点 j,然后从 j 发送到 i+3。这两个阶段中的每一个阶段都是完全随机的路由,因此每个阶段平均使用 2 个 links,故整个路由使用 4 个 links。而最小路由是 3 个 links。即使 VAL 平均比最小路由多遍历一个链路 link,VAL 的每节点吞吐量在 TOR 上更高,为b/2(其使用了双向的channels,且每条 link 上平均有两条数据流)。纯随机路由的问题在于它破坏了局部性。对于 NN 流量模式,吞吐量仍然为 b/2,而 MR 为 2b。文章提出的路由算法努力在不牺牲良性流量固有的局部性的情况下实现良好的最坏情况性能

2. 一维 ring 的 RLB and RLBth

**在对抗性流量中,最小路由算 MIN 无法均衡负载,使得一个 8 node ring 的吞吐量降低至 b/3。**任何 k-ary n-cube 的网络容量为 2B/N = 8b/k(用 UR 流量的理想吞吐量作为网络容量,将吞吐量和提供的负载归一化为网络容量,Bw 为对分带宽,一般为双向带宽,B/N 为一个单向通道的带宽,故网络容量为 2B/N)。

所以一个 8 node ring 在最小路由和 TOR 流量模式下的吞吐量为 b/3 即 0.33b,33.3%的网络容量。一般而言,最小路由 MIN 的吞吐量会逐渐降低到 25% 的容量,这意味着最坏情况下的性能非常差。即 b/(k/2-1) / (8b/k) = k/8 / (k/2-1),当对于较大的 k 时,吞吐量小于 0.25。

未完待续…

References

[1] L. G. Valiant and G. J. Brebner, “Universal schemes for parallel communication,” in Proceedings of the thirteenth annual ACM symposium on Theory of computing - STOC ’81, Milwaukee, Wisconsin, United States: ACM Press, 1981, pp. 263–277. doi: 10.1145/800076.802479.
[2] H. Sullivan, S. Associates, T. R. Bashkow, and D. Klappholz, “A LARGE SCALE, HOMOGENOUS, FULLY DISTRIBUTED PARALLEL MACHINE, II”.
[3] T. Nesson and S. L. Johnsson, “ROMM routing on mesh and torus networks,” in Proceedings of the seventh annual ACM symposium on Parallel algorithms and architectures - SPAA ’95, Santa Barbara, California, United States: ACM Press, 1995, pp. 275–287. doi: 10.1145/215399.215455.


http://www.ppmy.cn/devtools/13953.html

相关文章

form-serialize插件,快速收集表单元素的值

form-serialize插件可以快速获得表单元素的值,主要用于当表单很多的情况下,将表单的值一起打包发给服务器。 使用方法: 1.引入插件 2.获取表单的dom 3.使用插件的serialize方法 serialize方法有两个参数,第一个是获取到的表单d…

SpringMvc(2)RequestMapping注解

RequestMapping注解 1 、RequestMapping的作用2、RequestMapping的出现位置3、类上与方法上结合使用4、RequestMapping注解的value属性4.1 value属性的使用4.2 Ant风格的value4.3 value中的占位符(重点) 5、RequestMapping注解的method属性5.2衍生Mappin…

九:深入理解 CountDownLatch —— 闭锁/倒计时锁

目录 1、背景2、CountDownLatch 入门2.1、概念2.2、案例 3、CountDownLatch 源码分析3.1、类结构3.2、await() 方法 —— CountDownLatch3.2.1、acquireSharedInterruptibly() 方法 —— AQS3.2.1.1、tryAcquireShared() 方法 —— CountDownLatch.Sync3.2.1.2、doAcquireShare…

Mysql 锁学习笔记

目录 Innodb锁 共享锁与排它锁 锁兼容级别 意向锁 - 表级锁 代码示例 表级锁类型兼容性 行锁 代码示例 间隙锁 代码示例 临键锁 - 行锁加间隙锁 插入意向锁 自增锁 SELECT的加锁规则 (RR) 查看锁状态命令 3.0 前置条件 3.1 主键检索 3.2 唯一索引检索 3.3 普…

233 基于matlab的多通道非负矩阵分解(MNMF)算法

基于matlab的多通道非负矩阵分解(MNMF)算法。其能够寻找到一个非负矩阵W和一个非负矩阵H,满足条件VW*H,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。使用EM准则对混合信号进行分解。程序已调通,可直接运行。 233 多通道非…

ruoyi-nbcio-plus基于vue3的flowable的websocket消息组件的升级修改(一)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

Java之多态

一、多态前言 1.为什么要使用多态 Java中使用多态的主要目的是提高代码的可重用性和扩展性,使得代码更加灵活和易于维护。通过多态,我们可以将不同的对象看做是同一种类型,从而使得我们可以使用同一种接口来操作这些对象,而不必…

如何使用自定义Promptbooks优化您的安全工作流程

在当今的数字化时代,安全工作流程的优化变得前所未有的重要。安全团队需要快速、有效地响应安全事件,以保护组织的数据和资产。Microsoft Copilot for Security提供了一种强大的工具——自定义Promptbooks,它可以帮助安全专家通过自动化和定制…

springboot项目整合kafka实现消息队列

一、Docker镜像、容器准备: 1.1拉取镜像: 前提是虚拟机安装了docker,可以自行看其他文章进行安装 docker pull ubuntu/kafka docker pull zookeeper1.2运行容器 先启动zookeeper容器,因为kafka依赖于zookeeper docker run -d …

【数据仓库工具箱】DW/BI系统的核心元素和基本要求

核心元素 DW/BI 环境划分为4个不同的,各具特色的组成部分。分别是:操作型源数据,ETL系统,数据展现和商业智能应用。 操作型源数据 记录的是操作型系统,用于获取业务事务。源数据关注的是处理性能和可用性。源系统一般…

七星创客新零售系统:颠覆性商业模式的崛起

大家好,我是微三云周丽,今天给大家分析当下市场比较火爆的商业模式! 小编今天跟大伙们分享什么是七星创客新零售系统? 随着经济的快速发展和科技的不断进步,商业模式的革新成为了企业发展的关键。在这个新旧动能转换、…

【AI开发:音频】二、GPT-SoVITS使用方法和过程中出现的问题(GPU版)

1.FileNotFoundError: [Errno 2] No such file or directory: logs/guanshenxxx/2-name2text-0.txt 这个问题中包含了两个: 第一个:No module named pyopenjtalk 我的电脑出现的就是这个 解决:pip install pyopenjtalk 第二个&#xff1a…

docker 安装geoipupdate

前提是docker已安装 一:执行命令: docker run --env-file /usr/local/etc/GeoIP.conf -v /usr/local/GeoIP2:/usr/share/GeoIP ghcr.io/maxmind/geoipupdate /usr/local/etc/GeoIP.conf :本地配置的账号,秘钥 GEOIPUPDATE_AC…

低视力者出行升级:适配服务助力双手解放与环境感知

作为一名资深记者,我有幸深入了解并记录低视力者在日常出行中所面临的挑战与解决方案。近年来,低视力者辅助设备适配服务提供领域的创新成果,尤其是结合手机应用的辅助设备,正在以人性化、智能化的方式,帮助低视力者实…

[C++][算法基础]求a的b次方模p的值(快速幂)

给定 n 组 ,对于每组数据,求出 的值。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含三个整数 。 输出格式 对于每组数据,输出一个结果,表示 的值。 每个结果占一行。 数据范围 1≤n≤100000, 1≤≤2 …

Leetcode算法训练日记 | day35

专题九 贪心算法 一、柠檬水找零 1.题目 Leetcode:第 860 题 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然…

视频评价工具AVQT介绍

AVQT介绍 AVQT(Advanced Video Quality Tool)是一个用于评估压缩视频感知质量的工具。它通过模拟人类如何评价压缩视频的质量来进行工作。AVQT 是是苹果在 WWDC 21 上推出的一款评估视频感知质量的工具。AVQT可以用于计算视频的帧级和片段级得分,其中片段通常持续几秒钟。这…

RabbitMQ spring boot TTL延时消费

关于延时消费主要分为两种实现&#xff0c;一种是rabbitmq的TTL机制&#xff0c;一种是rabbitmq的插件实现。 实现一&#xff1a;TTL 1、设置队列的过期时间 2、设置消息的过期时间 添加相关maven依赖 <dependency><groupId>org.springframework.boot</grou…

如何让AI生成自己喜欢的歌曲-AI音乐创作的正确方式 - 第507篇

历史文章 AI音乐&#xff0c;8大变现方式——Suno&#xff1a;音乐版的ChatGPT - 第505篇 日赚800&#xff0c;利用淘宝/闲鱼进行AI音乐售卖实操 - 第506篇 导读 在使用AI生成音乐&#xff08;AI写歌&#xff09;的时候&#xff0c;你是不是有这样的困惑&#xff1a; &…

黑客零基础入门教程:从零开始学习黑客技术

黑客技术往往被误解&#xff0c;但实际上&#xff0c;学习黑客技术可以帮助我们更好地理解网络安全&#xff0c;保护个人信息免受攻击。本文为零基础的朋友提供了一个黑客技术的学习入门指南&#xff0c;帮助你从基础到实践逐步深入了解和掌握相关技能。 了解基本概念 在开始…