【Interconnection Networks 互连网络】Dragonfly Topology 蜻蜓网络拓扑

news2024/9/21 1:27:07
  • 蜻蜓拓扑 Dragonfly Topology
    • 1. 拓扑参数
    • 2. Topology Description 拓扑描述
    • 3. Topology Variations 拓扑变体

蜻蜓拓扑 Dragonfly Topology

1. 拓扑参数

Dragonfly拓扑参数:

  • N N N: 网络中终端(terminal)的总数量
  • p p p: 连接到每个路由器的终端数量
  • a a a: 每组(group)中的路由器数量
  • k k k: 路由器的基数(端口数量)
  • k ′ k' k: 组(或虚拟路由器(组内所有路由器组成))的有效基数
  • h h h: 每个路由器用于连接到其他组的通道数
  • g g g: 网络系统中的组数
  • q q q: 输出端口的队列深度
  • q v c q_{vc} qvc: 单个输出 VC 的队列深度
  • H H H: 跳数
  • O u t i Out_{i} Outi: 路由器输出端口 i i i

2. Topology Description 拓扑描述

Dragonfly 蜻蜓拓扑具有三层的分层网络,从小到大分别是路由器(router),组(group)和网络系统。

在这里插入图片描述

如图3所示。从底层的每个路由器出发,每个路由器连接到 p 个终端(terminal),连接到a − 1 个本地通道(local channel)(和组中每一个路由器相连),也拥有h个全局通道(global channel)去连接到其他组中的路由器。因此,每个路由器的基数radix(或度数degree)为 k = p + a + h − 1。

而对于中间层次组(group),每个组都通过组内路由器通过本地通道形成的组内互连网络组成(图 3(a))。每个组的路由器数量为 a ,都有到终端的 ap 个连接和到全局通道的 ah 个连接,并且组中的所有路由器共同充当基数为 k′ = a(p + h) 的虚拟路由器(virtual router)。

虚拟路由器的高基数 k′ >> k 使系统级网络(图 3(b))以非常低的全局直径实现。整个网络最多可以连接 g = ah + 1 个组(则整体网络的终端总数量为 N = ap(ah +1)),全局直径为 1。相比之下,直接使用基数 k 路由器构建的系统级网络将需要更大的全局直径。在最大尺寸 (N = ap(ah +1)) 蜻蜓中,每对组之间只有一个连接,在较小的蜻蜓中,每个群体的全局联系比其他群体更多。这些额外的全局连接分布在每对组上,每对组通过至少(\left\lfloor \frac{ah+1}{g}\right\rfloor )个通道连接。

蜻蜓参数 a、p 和 h 可以具有任意值。然而,为了平衡负载平衡流量上的信道负载,网络应该具有a=2p=2h。因为每个数据包沿其路由经过两个本地通道(全局通道的每一端各一个),一个全局通道和一个终端通道,因此这一比率保持平衡。由于全局通道价格昂贵,因此应配置更多的本地和终端通道的方式,以便使昂贵的全局通道保持充分利用。也就是说,网络平衡应使a≥2h,2p≥2h。

在确定了 p,a,h,g 四个参数之后我们就可以确定一个dragonfly的拓扑,因此一个Dragonfly的拓扑可以用 dfly(p,a,h,g) 来表示。g为网络中组的个数。

在这里插入图片描述

平衡蜻蜓的可扩展性如图 4 所示。通过增加有效基数(virtual router radix),蜻蜓拓扑具有高度可扩展性 - 使用 radix-64 路由器,拓扑可扩展到超过 256k 个节点,网络直径仅为三跳。任意网络可用于图 3 中的组内和组间网络。这两个网络一般都使用一维扁平蝶形或完全连接的拓扑。图 5 显示了一个简单的蜻蜓示例,其中 p = h = 2,a = 4,可扩展至 N = 72(最多网络中有9组,即N = 9x8 = 72),其中 k = 7 个路由器。通过使用虚拟路由器,有效基数从k=7增加到k′=16。

在这里插入图片描述

3. Topology Variations 拓扑变体

全局基数k’可以通过使用更高维的拓扑结构来进一步增加。还可以利用组内封装局部性(packaging locality)

封装局部性(packaging locality)指的是在网络拓扑结构中,相邻节点之间具有更高的通信带宽或更低的延迟。这种局部性在通信模式中是很常见的,因为许多应用程序倾向于在节点之间进行频繁的通信,并且通常是在相邻的节点之间进行。通过利用封装局部性,网络设计可以优化通信性能,从而提高整体的网络效率和吞吐量。在高性能计算系统和数据中心网络中,封装局部性的利用对于减少通信延迟和提高通信效率至关重要。

例如,图6(a)中显示了一个二维扁平蝴蝶结构,它与图5中显示的组具有相同的 k’,但通过利用封装局部性为本地路由器提供更多带宽。图6(b)中使用了一个三维扁平蝴蝶结构,增加了组内的路由器数量 a,将有效基数从 k’=16 增加到 k’=32——允许使用与图3中相同的 k=7 路由器扩展到 N=272(17x16)。

为了增加高基数网络(如Dragonfly结构)的终端带宽,可以采用通道切片(channel slicing)。与其使通道变宽(这会减少路由器基数),不如将多个网络并联连接以增加容量。类似地,Dragonfly结构也可以利用并联网络来增加网络容量。此外,到目前为止描述的Dragonfly网络假设网络中所有节点具有统一带宽。然而,如果不需要这种统一带宽,可以通过移除某些组之间的组间通道来实现带宽递减。

在这里插入图片描述

References:
[1] W. J. Dally, “Performance analysis of k-ary n-cube interconnection networks,” IEEE Trans. Comput., vol. 39, no. 6, pp. 775–785, Jun. 1990, doi: 10.1109/12.53599.
[2] http://blog.sysu.tech/%E7%BD%91%E7%BB%9C/Dragonfly%E6%8B%93%E6%89%91%E7%AE%80%E4%BB%8B/

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

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

相关文章

【网站项目】“最多跑一次”小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

微调Llama3实践并基于Llama3构建心理咨询EmoLLM

Llama3 Xtuner微调Llama3 EmoLLM 心理咨询师

开启智慧之旅,AI与机器学习驱动的微服务设计模式探索

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自热榜文章🔥:探索设计模式的魅力:开启智慧…

vlan的学习笔记1

vlan: 1.一般情况下:以下概念意思等同: 一个vlan一个广播域 一个网段 一个子网 2.一般情况下: (1)相同vlan之间可以直接通信,不同vlan之间不能直接通信! (2)vlan技术属于二层技术&…

C++异步回调示例:多线程执行任务,主线程通过回调监测任务状态

1、回调函数 回调函数定义:把函数的指针或者地址作为参数传递给另一个参数,当这个指针被用来调用其所指向的函数时,那么这就是一个回调的过程,这个被回调的函数就是回调函数。回调函数不是由该函数的实现方直接调用,而…

如何应对MySQL单表数据量过大:垂直分表与水平分表策略解析二

http://t.csdnimg.cn/AtW6Q 第三种办法: 同时结合ID取模分表和ID范围分表的方案,我们可以先用ID范围去分表,然后在某个ID范围内引入取模的功能。比如以前0到500万是user_0表,现在可以在这个范围里再分成多个表,比如引…

前端常用的数据加密方式

前端开发中,数据安全是至关重要的一个方面。数据加密是保护用户隐私和信息安全的关键方法之一。 前端常用的数据加密方式涵盖了对传输数据的加密、存储数据的加密以及客户端与服务器端之间通信的加密。 1. 对称加密算法 对称加密算法使用相同的密钥进行加密和解密…

存储过程的查询

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在实际使用中,经常会需要查询数据库中已有的存储过程或者某一个存储过程的内容, 下面就介绍-下如何查询存储过程。 这需要使用到数据字典 user_sou…

Jupyter Notebook更改默认打开的浏览器和工作目录

Jupyter Notebook更改工作目录 打开cmd,输入:jupyter notebook --generate-config,可以得到Jupyter Notebook配置文件的路径,找到路径下的jupyter_notebook_config.py文件,用记事本或者Sublime打开文件 找到&#xff…

[阅读笔记25][WebArena]A Realistic Web Environment for Building Autonomous Agents

这篇论文提出了WebArena这个环境与测试基准,在24年1月发表。 之前的agent都是在一些简化过的合成环境中测试的,这会导致与现实场景脱节。这篇论文构建了一个高度逼真、可复现的环境。该环境涉及四个领域:电子商务、论坛讨论、软件开发和内容管…

SpringBoot 集成Nacos注册中心和配置中心-支持自动刷新配置

SpringBoot 集成Nacos注册中心和配置中心-支持自动刷新配置 本文介绍SpringBoot项目集成Nacos注册中心和配置中心的步骤&#xff0c;供各位参考使用 1、配置pom.xml 文件 在pom.xml文件中定义如下配置和引用依赖&#xff0c;如下所示&#xff1a; <properties><pr…

YOLOv9改进策略 | SPPF篇 | 利用RT-DETR的AIFI模块替换SPPFELAN助力小目标检测涨点

一、本文介绍 本文给大家带来是用最新的RT-DETR模型中的AIFI模块来替换YOLOv9中的SPPFELAN。RT-DETR号称是打败YOLO的检测模型&#xff0c;其作为一种基于Transformer的检测方法&#xff0c;相较于传统的基于卷积的检测方法&#xff0c;提供了更为全面和深入的特征理解&#x…

FairAdaBN论文速读

FairAdaBN: Mitigating Unfairness with Adaptive Batch Normalization and Its Application to Dermatological Disease Classification 摘要 深度学习在医疗研究和应用中变得越来越普遍&#xff0c;同时涉及敏感信息和关键诊断决策。研究人员观察到不同人口统计属性子组之间…

scratch图章画图 2024年3月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch图章画图 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、p…

STM32应用开发——BH1750光照传感器详解

STM32应用开发——BH1750光照传感器详解 目录 STM32应用开发——BH1750光照传感器详解前言1 硬件介绍1.1 BH1750简介1.2 硬件接线 2 软件编程2.1 软件原理2.1.1 IIC设备地址2.1.2 IIC读写2.1.3 BH1750指令集2.1.4 BH1750工作流程2.1.5 BH1750测量模式 2.2 测试代码2.3 运行测试…

2024年腾讯云免费服务器最新申请入口链接

腾讯云免费服务器申请入口 txybk.com/go/free 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云百科txybk.com分享2024年最新腾讯云免费服务器申请入口、限制…

基于SpringBoot + Vue实现的时装购物管理系统设计与实现+毕业论文+开题报告+答辩PPT

介绍 系统包含用户、管理员两个角色 管理员&#xff1a;首页、个人中心、用户管理、商品分类管理、颜色管理、商品信息管理、商品评价管理、系统管理、订单管理 用户:首页、个人中心、商品评价管理、我的收藏管理、订单管理 前台首页:首页、商品信息、商品资讯、个人中心、后台…

Android Studio实现页面跳转

建立文件 temp.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"…

Python | Leetcode Python题解之第31题下一个排列

题目&#xff1a; 题解&#xff1a; class Solution:def nextPermutation(self, nums: List[int]) -> None:i len(nums) - 2while i > 0 and nums[i] > nums[i 1]:i - 1if i > 0:j len(nums) - 1while j > 0 and nums[i] > nums[j]:j - 1nums[i], nums[j…

SPI接口的74HC595驱动数码管实现

摸鱼记录 Day_17 (((^-^))) review 前边已经学习了&#xff1a; 数码管显示原理&#xff1a;数码管动态扫描显示-CSDN博客 且挖了个SPI的坑坑 1. 今日份摸鱼任务 学习循环移位寄存器18 串行移位寄存器原理详解_哔哩哔哩_bilibili 学习SPI接口的74HC595驱动数码管19 SPI…