【Interconnection Networks 互连网络】Flattened Butterfly 扁平蝶形拓扑

本文主要是介绍【Interconnection Networks 互连网络】Flattened Butterfly 扁平蝶形拓扑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • Flattened Butterfly 扁平蝶形拓扑
    • 1. 传统蝶形网络 Butterfly Topology
    • 2. 扁平蝶形拓扑 Flattened Butterfly
    • 3.On-Chip Flattened Butterfly 扁平蝶形拓扑应用于片上网络

Flattened Butterfly 扁平蝶形拓扑

扁平蝶形拓扑是一种经济高效的拓扑,适用于高基数路由器。扁平蝶形是通过组合(或扁平化)传统蝶形拓扑每行中的路由器而得到的一种拓扑,同时保留路由器间的连接。

1. Butterfly Topology 传统蝶形网络

虽然多年来已经提出了许多拓扑,但实际上构建的几乎所有网络都使用源自两个主要家族的拓扑(但当前已经有很多这两个类之外的拓扑结构):蝶形网络(k-ary n-flies)或 tori(k-ary n-cubes)。在本章中将定义蝶形网络家族并探讨其属性。蝶形网络是典型的间接网络。蝶形拓扑对于开关度radix为 δ = 2k、跳数H = logk N + 1 的 N 节点网络具有最小直径。尽管这种最佳直径是一个有吸引力的特性,但蝶形网络有两个主要缺点

首先,基本的蝴蝶网络不存在路径多样性:从每个源节点到每个目的节点只有一条路由。这个问题可以通过向蝶式结构添加额外的阶段来解决。这些额外的阶段提高了网络的路径多样性,同时将网络直径保持在最佳直径的两倍以内。其次,如果没有必须穿过机器直径至少一半的长线,蝶形装置就无法实现。由于电线的速度在超过临界长度时随距离呈二次方降低,因此这些长电线使得蝶形结构对于中等尺寸和较大互连网络的吸引力降低。然而,蝶形网络的对数直径和简单的路由使其及其变体成为许多应用中最流行的互连网络。

在这里插入图片描述

传统蝶形网络可以描述为k-ary n-fly。该网络拥有kn**个终端节点,有**n级**交换节点,每级含**k(n-1)个kxk的交换节点。即k为交换节点的出入度或者度的一半。如上图所示,展示了一个2-ary 3-fly的蝶形网络。

蝶形网络中源节点到目标节点的跳数不会变化,始终是n-1(在系统实现中,终端节点和相邻的交换节点往往集成在一起,故跳数只计算交换网络中的跳数)。在流量均匀分布的情况下蝶形网络的最大通道负载是1,所以网络的最大注入带宽也为1flit/node/cycle。其他不均匀的如从网络一端发送到另一端的流量会增大负载,从而减小最大注入带宽。

蝶形网络的最大缺点就是缺失了路径多样性并缺少对网络局部性的利用。缺失路径多样性使得蝶形网络在非平衡流量模式下性能很差,而缺少局部性的利用在于未利用源节点到目标节点相邻或距离较近的情况下,拓扑进行了绕远。

2. Flattened Butterfly 扁平蝶形拓扑

**扁平蝶形拓扑(Flattened Butterfly)**将同一行中的中间交换节点合并成一个交换节点,从而将非直连拓扑转换为直连拓扑。

在这里插入图片描述

如上图所示,由 4-ary 2-fly 的蝶形网络转换为 4-ary 2-fly 的扁平蝶形网络 以及 由 2-ary 4-fly 的蝶形网络转换为 4-ary 2-fly 的扁平蝶形网络。

图1(a)第一行的路由器R0和R1组合成图1(b)扁平化蝶形拓扑中的单个路由R0’。类似地,图1©的路由器R0、R1、R2和R3被组合成图1(d)的R0’。当一行路由器组合在一起时,完全位于该行本地的通道(例如图 1(a) 中的通道 (R0,R1))将被消除(因为组合而成的路由器的内部可以进行同一行的通信),而其他的所有通道都被保留在扁平蝶形中。例如,图1(a)中的通道(R0,R3)变为图1(b)中的通道(R0’,R1’)。由于扁平蝶形结构中的通道是对称的,因此图 1(b,d) 中的每条线代表一个双向通道(即两个单向通道),而图 1(a,c) 中的每条线代表一个单向通道。

k-ary n-flat是从 k-ary n-fly 蝶形网络衍生而来的扁平蝶形,由N/k(N^(k-1))个(中间路由器的个数),基数为k’=n(k-1)+1(一侧的终端个数再加上中间路由器与其他路由器的连接)的路由器组成,N为网络的大小(一侧的终端节点个数)。

传统蝶形网络中n-1为不同的列,代表不同的dimension,而在扁平蝶形网络中,路由器同样通过n’ = n-1维度的通道连接,对应于蝶形网络中的n-1列路由。每个维度d中,从1到n’,路由器i连接到路由器j:
在这里插入图片描述

例如,在图 1(d) 中,R4’ 在维度 1 中连接到 R5’,在维度 2 中连接到 R6’,在维度 3 中连接到 R0’。图 2 中,扁平蝶形结构中的节点数量 (N ) 被绘制为维数 n’ 和交换机基数 k’ 的函数。该图显示该拓扑仅适用于高基数路由器。可以使用低基数路由器 (k′ < 16) 构建规模非常有限的网络,即使 k′ = 32,也需要许多维度才能扩展到大型网络规模。然而,当 k′ = 61 时,只有三个维度的网络可以扩展到 64K 个节点。
在这里插入图片描述

3. On-Chip Flattened Butterfly 扁平蝶形拓扑应用于片上网络

John Kim, James Balfour, and William J. Dally将扁平蝶形拓扑应用于片上网络。

通过集中在路由器中,扁平蝶形结构显着降低了拓扑的布线复杂性,使其能够更有效地扩展。为了将 64 节点片上网络映射到扁平化蝴蝶拓扑上,折叠了4-ary 3-fly的蝶形网络以生成如图 3(a) 所示的扁平化蝴蝶网络。由此产生的扁平蝴蝶有 2 个维度并使用 radix-10 路由器。每个路由器连接四个处理器节点,因此路由器的集中系数为 4。其余 6 个路由器端口用于路由器间连接:3 个端口用于维度 1 连接,3 个端口用于维度 2 连接连接。路由器的放置如图 3(b) 所示,将拓扑嵌入到平面 VLSI 布局中,每个路由器放置在 4 个处理节点的中间。维度1连接的路由器水平对齐,维度2连接的路由器垂直对齐;因此,行内的路由器是完全连接的,列内的路由器也是完全连接的

在这里插入图片描述

与数据包源和目的地之间的曼哈顿距离相关的线路延迟是了片上网络传输所需的延迟的下限。当使用最小路由时,这个扁平化蝴蝶网络中的处理器仅相隔 2 跳,这比 2-D 网格的跳数有显着改进。扁平蝶形尝试通过减少中间路由器的数量来接近线路延迟界限,这不仅可以降低延迟,还可以降低能耗。然而,扁平化蝶形网络中连接远程路由器的电线必然比网状网络中的电线更长。通过最佳地插入中继器和流水线寄存器来保留通道带宽,同时容忍可能是几个周期的通道遍历时间,可以很容易地减少长导线对性能的不利影响。较长的通道还需要更深的缓冲区大小来覆盖信用往返延迟,以维持完整的吞吐量。

References:
[1] J. Kim, J. Balfour, and W. Dally, “Flattened Butterfly Topology for On-Chip Networks,” in 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007), Chicago, IL, USA: IEEE, 2007, pp. 172–182. doi: 10.1109/MICRO.2007.29.
[2] J. Kim, W. J. Dally, and D. Abts, “Flattened Butterfly : A Cost-Efficient Topology for High-Radix Networks,” 2007.
[3] Dally, William James, and Brian Patrick Towles. Principles and practices of interconnection networks. Elsevier, 2004.

这篇关于【Interconnection Networks 互连网络】Flattened Butterfly 扁平蝶形拓扑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

hdu 1285(拓扑排序)

题意: 给各个队间的胜负关系,让排名次,名词相同按从小到大排。 解析: 拓扑排序是应用于有向无回路图(Direct Acyclic Graph,简称DAG)上的一种排序方式,对一个有向无回路图进行拓扑排序后,所有的顶点形成一个序列,对所有边(u,v),满足u 在v 的前面。该序列说明了顶点表示的事件或状态发生的整体顺序。比较经典的是在工程活动上,某些工程完成后,另一些工程才能继续,此时

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络 服务器端配置 在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。 安装 OFED 首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。 sudo

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

网络学习-eNSP配置NAT

NAT实现内网和外网互通 #给路由器接口设置IP地址模拟实验环境<Huawei>system-viewEnter system view, return user view with Ctrl+Z.[Huawei]undo info-center enableInfo: Information center is disabled.[Huawei]interface gigabit

Golang 网络爬虫框架gocolly/colly(五)

gcocolly+goquery可以非常好地抓取HTML页面中的数据,但碰到页面是由Javascript动态生成时,用goquery就显得捉襟见肘了。解决方法有很多种: 一,最笨拙但有效的方法是字符串处理,go语言string底层对应字节数组,复制任何长度的字符串的开销都很低廉,搜索性能比较高; 二,利用正则表达式,要提取的数据往往有明显的特征,所以正则表达式写起来比较简单,不必非常严谨; 三,使