Dragonfly 拓扑的路由算法

  • Dragonfly 拓扑的路由算法
    • 1. Dragonfly 上的路由
      • (1)最小路由
      • (2)非最小路由
    • 2. 评估
    • 3. 存在问题
      • (1)吞吐量限制
      • (2)较高的中间延迟
  • references

Dragonfly 拓扑的路由算法

John Kim, William J. Dally 等人在 2008 年的 ISCA 中提出技术驱动、高度可扩展的 Dragonfly 拓扑。而文章中也提到了 针对 Dragonfly 拓扑的路由算法。本文对其中提到的路由算法进行汇总归纳。主要是讨论蜻蜓拓扑的最小和非最小路由算法。

1. Dragonfly 上的路由

图 7 显示了如何使用虚拟通道 (VC) 来避免路由死锁。为了防止路由死锁,最小路由需要两个VC,非最小路由需要三个VC。此分配消除了由于路由而产生的所有通道依赖性。对于某些应用程序,可能需要额外的虚拟通道来避免协议死锁 - 例如,对于共享内存系统,请求和回复消息需要单独的虚拟通道集。

在这里插入图片描述

(1)最小路由

Dragonfly 中位于组Gs中的路由器Rs,连接着源节点s,到组Gd中的路由器Rd的目标节点d的最小路由经过单个全局通道,由三步组成

  • 步骤 1:如果 Gs != Gd,并且 Rs 没有到 Gd 的连接,在 Gs 内从 Rs 路由到 Ra,Ra 路由器具有到 Gd 的全局通道。
  • 步骤 2:如果 Gs != Gd,则从 Ra 经过全局信道到达 Gd 中的路由器 Rb。
  • 步骤 3:如果 Rb != Rd,则在 Gd 内从 Rb 到 Rd 路由。

这种最小路由非常适合负载平衡流量(load-balanced traffic),但会导致对抗性流量模式的性能非常差

(2)非最小路由

为了对对抗性流量模式进行负载平衡,Valiant 的算法可以应用于系统级别 - 首先将每个数据包路由到随机选择的中间组 Gi,然后路由到其最终目的地 d。将 Valiant 的算法应用于组足以平衡全局和本地通道上的负载。这种随机非最小路由最多遍历两个全局通道,需要五个步骤:

  • 步骤 1:如果 Gs != Gi 并且 Rs 没有到 Gi 的连接,则在 Gs 内从 Rs 路由到 Ra,一个具有到 Gi 的全局通道的路由器。
  • 步骤 2:如果 Gs != Gi 从 Ra 经过全局信道到达 Gi 中的路由器 Rx。
  • 步骤 3:如果 Gi != Gd 并且 Rx 没有到 Gd 的连接,则在 Gi 内从 Rx 路由到 Ry(具有到Gd 的全局通道的路由器)。
  • 步骤 4:如果 Gi != Gd,则遍历从 Ry 到 Gd 中的路由器 Rb 的全局通道。
  • 步骤 5:如果 Rb != Rd,则在 Gd 内从 Rb 到 Rd 路由。

2. 评估

实验评估最小路由算法 (MIN),Valiant (VAL)路由,UGAL 通用全局自适应负载平衡(UGAL-G,UGAL-L)。UGAL逐个数据包在 MIN 和 VAL 之间进行选择以平衡网络负载。通过使用队列长度和跳数来估计网络延迟并选择延迟最小的路径来做出选择。实验实现了两个版本的 UGAL:

  • UGAL-L —— 使用当前路由器节点的本地队列信息。
  • UGAL-G —— 使用 Gs 中所有全局通道的队列信息(原文中是使用 Gs 中所有全局通道的队列信息,但应该是具有全局信息)。假设了解其他路由器上的队列长度。虽然难以实现,但这代表了 UGAL 的理想实现,因为负载平衡需要全局通道,而不是本地通道。

理想的 UGAL 路由称为 UGAL-G(具有全局信息的 UGAL),假设精确的全局网络状态信息可用,并使用路径上所有链路上的总队列长度来估计路径上最小的数据包延迟。令 T Q M I N TQ_{MIN} TQMIN M I N MIN MIN 路径的总队列长度, T Q V L B TQ_{VLB} TQVLB V L B VLB VLB 路径的总队列长度。若

T Q M I N ≤ T Q V L B + T TQ_{MIN} \leq TQ_{VLB} + T TQMINTQVLB+T

否则为 VLB 路径。这里的 T 是一个偏移常数,可以调整它来决定路径选择将在多大程度上偏向 MIN 路径(T 的较大值优先考虑 MIN 路径)。

使用良性和对抗性合成流量模式来评估不同的路由算法。对于均匀随机 (UR) 等良性流量,MIN 足以提供低延迟和高吞吐量,如图 8(a)。 VAL 实现了大约一半的网络容量,因为它的负载均衡使全局通道上的负载加倍。UGAL-G 和 UGAL-L 都接近 MIN 的吞吐量,但在接近饱和时延迟稍高。较高的延迟是由使用并行或贪婪分配引起的,其中每个端口的路由决策是并行做出的。使用顺序分配将减少延迟,但代价是分配器更复杂。

为了测试路由算法的负载平衡能力,使用最坏情况 (WC) 流量模式,其中组 Gi 中的每个节点将流量发送到组 Gi+1 中随机选择的节点。通过最小路由,此模式将导致每个组 Gi 中的所有节点通过单个全局通道将其所有流量发送到组 Gi+1,需要非最小路由通过将大部分流量分散到其他全局通道来平衡此流量模式的负载。此 WC 流量的评估如图 8(b) 所示。由于 MIN 通过单个通道转发来自每个组的所有流量,因此其吞吐量限制为 1/ah。VAL 实现略低于 50% 的吞吐量,这是该流量的最大可能吞吐量。UGAL-G 实现了与 VAL 相似的吞吐量,但 UGAL-L 导致吞吐量有限,并且在中间负载时平均数据包延迟较高。
在这里插入图片描述

3. 存在问题

蜻蜓上的自适应路由具有挑战性,因为需要平衡的是全局通道、组输出,而不是路由器输出。这会导致间接路由问题(indirect adaptive routing)。以前的全局自适应路由方法使用本地队列信息、源队列和输出队列来生成网络拥塞的准确估计,本地队列是全局拥塞的准确代表,因为直接指示它们发起的路线上的拥塞。然而在蜻蜓拓扑中,本地队列只能通过本地通道上的反压来感知全局通道上的拥塞,并不准确。之前提到在WC流量模式下 UGAL-L 导致吞吐量有限,并且在中间负载时平均数据包延迟较高就是这个原因。

(1)吞吐量限制

UGAL-L 的吞吐量问题是由于单个本地通道同时处理最小和非最小流量造成的。例如在图 13 中,R1 中的数据包具有使用 gc7 的最小路径和使用 gc6 的非最小路径。这两条路径共享从 R1 到 R2 的相同本地通道。由于两条路径共享相同的本地队列(因此​​具有相同的队列占用率),并且最小路径较短(一跳与两跳),因此即使在饱和时,也始终会选择最小通道。这导致最小全局通道过载,并且与最小通道共享同一路由器的非最小全局通道未得到充分利用。

在这里插入图片描述

如图9所示。第一个全局通道是最小全局通道,接下来的三个全局通道是与最小通道共享同一路由器的非最小通道(h = 4),其余通道是共享同一组的非最小通道。对于 UGAL-G,最小通道是首选,并且负载在所有其他全局通道之间均匀平衡。另一方面,对于 UGAL-L,路由器上包含最小全局信道的非最小信道未得到充分利用,从而导致网络吞吐量下降。为了克服这个限制,我们修改了 UGAL 算法,通过使用单独的 VC (UGAL-LVC) 将队列占用率分成最小和非最小分量

在这里插入图片描述

在这里插入图片描述

这种修改对于大部分流量需要非最小化发送的 WC 流量,UGALLVC 表现良好,因为最小队列负载很重。然而,对于负载平衡流量来说,当大多数流量应以最低限度发送时,各个 VC 无法提供通道拥塞的准确表示,从而导致吞吐量下降。为了克服这个限制,我们进一步修改 UGAL 算法,仅当最小和非最小路径以相同的输出端口开始时,将队列占用分为最小和非最小分量。我们的混合修改 UGAL 路由算法 (UGAL-LVC H ) 是
在这里插入图片描述

与 UGAL-LVC 相比,UGAL-LVC H 在 WC 流量模式上提供相同的吞吐量,在 UR 流量上与 UGAL-G 的吞吐量匹配,但在提供的 0.8 负载(接近饱和)下导致延迟高出近 2 倍。对于 WC 流量,与 UGAL-G 相比,UGAL-LVC H 还会导致更高的中间延迟(图 10(b))。
在这里插入图片描述

(2)较高的中间延迟

UGAL-L 的较高中间延迟是由于在检测到拥塞之前最小路由数据包必须填充源和拥塞点之间的通道缓冲区。如图13所示在此示例中,q1 反映 q0 的状态,q2 反映 q3 的状态。当 q0 或 q3 已满时,流量控制向 q1 和 q2 提供背压,如图 13 中的箭头所示。因此,在稳定状态下-状态测量,这些本地队列信息可以用来精确测量吞吐量。由于吞吐量被定义为当延迟达到无穷大(或队列占用率达到无穷大)时提供的负载,因此这个本地队列信息就足够了。然而,q0 需要完全满,以便 q1 反映 gc0 的拥塞情况并允许 R1 非最小路由数据包。因此,使用本地信息需要牺牲一些数据包来正确确定拥塞情况,从而导致以最低限度发送的数据包具有更高的延迟。随着负载的增加,尽管最小路由数据包的延迟持续增加,但更多数据包以非最小路由方式发送,导致平均延迟减少直至饱和。**为了使本地队列能够对全局拥塞提供良好的估计,全局队列需要完全满,并向本地队列提供严格的背压。反压的刚度与缓冲区的深度成反比——缓冲区越深,反压传播所需的时间就越长,而缓冲区越浅,提供的反压就越硬。**缓冲区大小变化时的仿真结果如图 14 所示。

为了克服高中间延迟,建议使用信用往返延迟来更快地感知拥塞并减少延迟。 tcrt的值可以用来估计全局信道的拥塞情况。通过使用此信息来延迟上游信用,我们加强了背压并更快地向上游传播拥塞信息。对于每个输出 O,测量 tcrt(O),并将数量 td(O)=tcrt(O) − tcrt0 存储在寄存器中。然后,当一个 flit 被发送到输出 O 时,不是立即将信用值发送回上游,而是将信用值延迟 td(O) − min[td(o)]。通过全球渠道发送的积分不会延迟。这保证了该机制中不存在循环,并允许全局通道得到充分利用。返回积分的延迟提供了较浅缓冲区的出现,从而产生了硬的背压。
在这里插入图片描述

references

[1] J. Kim, W. J. Dally, S. Scott, and D. Abts, “Technology-Driven, Highly-Scalable Dragonfly Topology,” in 2008 International Symposium on Computer Architecture, Beijing, China: IEEE, Jun. 2008, pp. 77–88. doi: 10.1109/ISCA.2008.19.

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

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

相关文章

杰发科技AC7801——ADC之Bandgap和内部温度计算

0. 参考 电流模架构Bandgap设计与仿真 bandgap的理解(内部带隙电压基准) ​ ​ 虽然看不懂这些公式,但是比较重要的一句应该是这个:因为传统带隙基准的输出值为1.2V ​ 1. 使用 参考示例代码。 40002000是falsh控制器寄…

从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践

作者:武基鹏,无锡锡商银行 大数据技术经理 编辑整理:SelectDB 技术团队 导读:为实现数据资产的价值转化以及全面数字化、智能化的风险管理,无锡锡商银行大数据平台经历从 Hive 离线数据仓库到 Apache Doris 实时数据仓…

鸿蒙ArkUI-X跨平台开发电商应用

一、ArkUI-X 简介 ArkUI-X 是由 OpenHarmony TSC - 跨平台应用开发框架 TSG 所孵化的开源项目,使用ArkUI-X可以让开发者基于一套主代码, 就可以构建支持多平台的精美、高性能应用。目前支持OpenHarmony、HarmonyOS、Android、 iOS,后续会逐步增加更多平台支持。 ArKUI跨平台…

经典权限五张表功能实现

文章目录 用户模块(未使用框架)查询功能实现步骤代码 新增功能实现步骤代码 修改功能实现步骤代码实现 删除功能实现步骤代码实现 用户模块会了,其他两个模块与其类似 用户模块(未使用框架) 查询功能 这里将模糊查询和分页查询写在一起 实现步骤 前端&#xff1…

哈希表(unordered_set、unordered_map)

文章目录 一、unordered_set、unordered_map的介绍二、哈希表的建立方法2.1闭散列2.2开散列(哈希桶/拉链法) 三、闭散列代码(除留余数法)四、开散列代码(拉链法/哈希桶) 一、unordered_set、unordered_map的…

[单机]成吉思汗3_GM工具_VM虚拟机

稀有端游成吉思汗1,2,3单机版虚拟机一键端完整版 本教程仅限学习使用,禁止商用,一切后果与本人无关,此声明具有法律效应!!!! 教程是本人亲自搭建成功的,绝对是完整可运行的&#x…

【基于 PyTorch 的 Python 深度学习】6 视觉处理基础:卷积神经网络(1)

前言 文章性质:学习笔记 📖 学习资料:吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容:根据学习资料撰写的学习笔记,该篇主要介绍了卷积神经网络的卷积层部分。 预&#xff1…

unity ui 同屏

一共有三个摄像机,上屏,下屏 和 类似照相机的ccamera 类似照相机的ccamera的设置: 下屏摄像机设置: 下屏交互的Canvas设置: 新建一个canvas,下面放上rawimage: 如果下屏不想显示的内容&#xf…

2024蓝桥杯RSA-Theorem

方法1:直接使用工具yafu解题 yafu的使用方法 安装:解压后直接使用即可,在文件包内,执行命令终端,输入命令行 1、如果数比较小,进入该文件的目录后可以直接使用: yafu-x64 factor(n) 如果是powershell&…

Maven 的仓库、周期和插件

优质博文:IT-BLOG-CN 一、Maven 仓库 在Maven的世界中,任何一个依赖、插件或者项目构建的输出,都可以称为构建。Maven在某个统一的位置存储所有项目的共享的构建,这个统一的位置,我们就称之为仓库。任何的构建都有唯一…

计算机视觉——基于改进UNet图像增强算法实现

1. 引言 在低光照条件下进行成像非常具有挑战性,因为光子计数低且存在噪声。高ISO可以用来增加亮度,但它也会放大噪声。后处理,如缩放或直方图拉伸可以应用,但这并不能解决由于光子计数低导致的低信噪比(SNR&#xff…

深度学习——前馈全连接神经网络

前馈全连接神经网络 1.导入需要的工具包2.数据导入与数据观察(1)读取csv的文件信息:(2)训练数据前5行(3)打印第一个图(4)观察数据中的信息(5)查看…

stm32——OLED篇

技术笔记! 一、OLED显示屏介绍(了解) 1. OLED显示屏简介 二、OLED驱动原理(熟悉) 1. 驱动OLED驱动芯片的步骤 2. SSD1306工作时序 三、OLED驱动芯片简介(掌握) 1. 常用SSD1306指令 2. …

[Kotlin]创建一个私有包并使用

1.创建Kotlin测试项目 在Android Studio或其他IDE中选择“Create New Project”。选择Kotlin和Gradle作为项目类型和构建系统。指定项目名称和位置,完成设置。 2.创建Android Library模块 官方文档:创建 Android 库 | Android Studio | Android De…

图片转word如何转换?

要将图片转换为Word文档,你可以使用以下方法之一: 以上这些方法都可以帮助你将图片中的文本转换为可编辑的Word文档,你可以根据自己的喜好和需求选择其中一种方法来操作。 使用OCR软件或在线工具:有许多OCR(Optical Ch…

2024年怎样提取小程序里的视频

在未来的2024年,我们亲眼目睹了科技的飞速发展和互联网的无限可能。在这个数字化世界中,小程序已经成为我们日常生活中不可或缺的一部分,无论是购物、学习,还是娱乐,小程序都给我们带来了前所未有的便利。然而&#xf…

【OceanBase诊断调优】—— 租户资源统计项及其查询方法

本文主要介绍 OceanBase 数据库中租户资源统计项及其查询方法。 适用版本 OceanBase 数据库 V4.1.x、V4.2.x 版本。 CPU 资源统计项 逻辑 CPU 使用率(线程处理请求的时间占比)。 通过虚拟表 __all_virtual_sysstat 在 SYS 系统租户下,查看…

棱镜七彩参编《网络安全技术 软件供应链安全要求》国家标准发布

据全国标准信息公共服务平台消息显示,《网络安全技术 软件供应链安全要求》(GB/T 43698-2024)国家标准已于2024年4月25日正式发布,并将于2024年11月1日正式实施。棱镜七彩作为主要编制单位之一参与该国家标准的编制,为…

Linux下安装mysql8.0(以rpm包安装)

前言:原文在我的博客网站中,持续更新数通、系统方面的知识,欢迎来访! Linux下安装mysql8.0(以rpm包安装)https://myweb.myskillstree.cn/125.html 目录 1、查操作系统信息 2、下载mysql 8.0.34的rpm包 …

7.STL_string(详细)

1. 什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架。 2. STL的版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版…