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

  • [蜻蜓拓扑 Dragonfly Topology](#蜻蜓拓扑 Dragonfly Topology)
    • [1. 拓扑参数](#1. 拓扑参数)
    • [2. Topology Description 拓扑描述](#2. Topology Description 拓扑描述)
    • [3. Topology Variations 拓扑变体](#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/网络/Dragonfly拓扑简介/

相关推荐
小堃学编程24 分钟前
计算机网络(十) —— IP协议详解,理解运营商和全球网络
网络·tcp/ip·计算机网络
IPFoxy6663 小时前
探索路由器静态IP的获取方式
网络·智能路由器
menge23333 小时前
VLAN:虚拟局域网
网络·智能路由器
ZachOn1y4 小时前
计算机网络:计算机网络概述 —— 初识计算机网络
网络·计算机网络·知识点汇总·考研必备
三金121384 小时前
SpringIoC容器的初识
网络·网络协议·rpc
狼头长啸李树身5 小时前
眼儿媚·秋雨绵绵窗暗暗
大数据·网络·服务发现·媒体
SizeTheMoment6 小时前
初识HTTP协议
网络·网络协议·http
哲伦贼稳妥6 小时前
一天认识一个硬件之机房地板
运维·网络·经验分享·其他
hgdlip8 小时前
如何快速切换电脑的ip地址
网络·tcp/ip·电脑
程序员-珍9 小时前
虚拟机ip突然看不了了
linux·网络·网络协议·tcp/ip·centos