全文 - 第 03 章 - Principles and Practices of Interconnection Networks

第 3 章 拓扑基础

网络拓扑指互连网络中通道和节点的静态安排------分组行驶其上的道路。选择网络拓扑是设计网络的第一步,因为路由策略和流量控制方法都严重依赖拓扑。必须先有道路地图,才能选择路线并安排其通行。正如第 2 章的例子所示,拓扑不仅规定网络的类型(例如蝶形),还规定细节,如交换机的基数、级数以及每条通道的宽度和比特率。

选择好的拓扑,在很大程度上是让网络的需求适配可用的封装技术。一方面,设计由端口数量以及每端口的带宽和占空因数驱动;另一方面,又由每块芯片和电路板的可用引脚、布线密度、可用的信号速率以及电缆的长度要求驱动。

我们根据成本和性能来选择拓扑。成本由实现网络所需芯片的数量和复杂度,以及这些芯片之间互连(板上走线或电缆)的密度和长度决定。性能有两个成分:带宽和延迟。这两项指标都受拓扑之外的因素------例如流量控制、路由策略和流量模式------影响。为了单独评价拓扑,我们引入对分带宽、通道负载和路径延迟等度量,以反映拓扑对性能的影响。

网络设计者常犯的一个错误,是试图让网络拓扑匹配手头问题的数据通信模式。表面上看这像是个好主意:毕竟,如果一台机器执行具有树形通信模式的分治算法,树形网络不就是处理这种模式的最优选择吗?答案通常是否定的。由于种种原因,专用网络通常不是好主意。由于问题中的动态负载失衡,或问题规模与机器规模不匹配,这类网络上的负载通常很不均衡。如果为了平衡负载而重新安置数据和线程,问题与网络之间的匹配就丧失了。针对特定问题的网络往往不能很好地映射到可用的封装技术上,需要长导线或很高的节点度。最后,这类网络缺乏灵活性:如果算法改用不同的通信模式,网络无法轻易改变。与设计一个拓扑匹配问题的网络相比,使用一个好的通用网络几乎总是更好的选择。

图 3.1 展示了三个示例拓扑。图 3.1(a) 是每维三个节点的二维环面,即 3 元 2 立方体(3-ary 2-cube),立方体网络中的每个节点既是终端又是交换节点。图 3.1(b) 是一个三级、基数 2 的蝶形,即 2 元 3 蝶(2-ary 3-fly)。蝶形网络明确区分终端节点和交换节点:两端是只有终端功能的节点,中间(矩形)是只有交换功能的节点。图 3.1© 是一个不规则网络。

图 3.1 网络拓扑示例:(a) 3 元 2 立方体;(b) 2 元 3 蝶;© 不规则网络。

3.1 术语

3.1.1 通道与节点

互连网络的拓扑由一组经通道集合 CCC 相连的节点集合 N∗N^*N∗ 规定。消息在一组终端节点 NNN(N⊆N∗N \subseteq N^*N⊆N∗)中产生和终结。在所有节点都是终端的网络中,我们直接把节点集合记为 NNN。每条通道 c=(x,y)∈Cc = (x, y) \in Cc=(x,y)∈C 把源节点 xxx 连接到目的节点 yyy,其中 x,y∈N∗x, y \in N^*x,y∈N∗。我们把通道 ccc 的源节点记为 scs_csc,目的节点记为 dcd_cdc。注意,图 3.1 中的每条边表示一对通道(每个方向一条)。拓扑的这一定义等价于一个有向图;毫不奇怪,描述拓扑所用的大部分术语大量借自图论。为记号方便,我们常把网络中的节点数直接写作 N∗N^*N∗ 而不是 ∣N∗∣|N^*|∣N∗∣,通道数也类似处理。

通道 c=(x,y)c = (x, y)c=(x,y) 由以下特征刻画:宽度 wcw_cwc 或 wxyw_{xy}wxy,即它包含的并行信号数;频率 fcf_cfc 或 fxyf_{xy}fxy,即每个信号上传输比特的速率;延迟 tct_ctc 或 txyt_{xy}txy,即一个比特从 xxx 旅行到 yyy 所需的时间。对大多数通道,延迟通过传播速度 vvv 与通道的物理长度直接相关:lc=vtcl_c = vt_clc=vtc。通道 ccc 的带宽为 bc=wcfcb_c = w_c f_cbc=wcfc。在所有通道带宽相同的常见情形下,我们省略下标,把网络通道带宽记为 bbb。

每个交换节点 xxx 有一个通道集合 Cx=CIx∪COxC_x = C_{Ix} \cup C_{Ox}Cx=CIx∪COx,其中 CIx={c∈C∣dc=x}C_{Ix} = \{c \in C \mid d_c = x\}CIx={c∈C∣dc=x} 是输入通道集合,COx={c∈C∣sc=x}C_{Ox} = \{c \in C \mid s_c = x\}COx={c∈C∣sc=x} 是输出通道集合。xxx 的度 为 δx=∣Cx∣\delta_x = |C_x|δx=∣Cx∣,等于入度 δIx=∣CIx∣\delta_{Ix} = |C_{Ix}|δIx=∣CIx∣ 与出度 δOx=∣COx∣\delta_{Ox} = |C_{Ox}|δOx=∣COx∣ 之和。当所有 x∈N∗x \in N^*x∈N∗ 的度相同时,我们省略下标,把度记为 δ\deltaδ。

3.1.2 直接网络与间接网络

网络节点可以是充当分组源和汇的终端节点,也可以是把分组从输入端口转发到输出端口的交换节点,或者两者兼有。在直接网络 (direct network,如图 3.1(a) 的环面)中,网络中的每个节点既是终端又是交换机。而在间接网络(indirect network,如图 3.1(b) 的蝶形)中,节点要么是终端(圆节点),要么是交换机(矩形节点),不能兼有两种功能。在直接网络中,分组在终端节点之间直接转发;在间接网络中,分组借助专用的交换节点间接转发。有些网络,如图 3.1© 的随机网络,既非直接也非间接。任何直接网络都可以重画成间接网络------把每个节点拆成单独的终端节点和交换节点,如图 3.2 所示。对这类网络而言,直接与间接的区分在很大程度上是学究式的。

图 3.2 组合节点由一个终端节点和一个交换节点组成。

直接网络的一个潜在优点是:终端的资源(通常包括一台计算机)可供每个交换机使用。在一些早期网络中,交换功能由运行在终端 CPU 上的软件实现,缓冲则利用终端计算机的存储器完成 163, 192。然而,软件交换既非常慢又大量占用终端资源,因此今天已很少使用。

3.1.3 割与对分

网络的割 (cut)C(N1,N2)C(N_1, N_2)C(N1,N2) 是一组通道,它把全部节点集合 N∗N^*N∗ 划分为两个不相交集合 N1N_1N1 和 N2N_2N2。C(N1,N2)C(N_1, N_2)C(N1,N2) 的每个元素都是一条源在 N1N_1N1、目的在 N2N_2N2,或反之的通道。割中的通道数为 ∣C(N1,N2)∣|C(N_1, N_2)|∣C(N1,N2)∣,割的总带宽为

B(N1,N2)=∑c∈C(N1,N2)bcB(N_1, N_2) = \sum_{c \in C(N_1, N_2)} b_cB(N1,N2)=c∈C(N1,N2)∑bc

网络的对分 (bisection)是把整个网络几乎对半划分的割,即 ∣N2∣≤∣N1∣≤∣N2∣+1|N_2| \le |N_1| \le |N_2| + 1∣N2∣≤∣N1∣≤∣N2∣+1,同时也把终端节点几乎对半划分:∣N2∩N∣≤∣N1∩N∣≤∣N2∩N∣+1|N_2 \cap N| \le |N_1 \cap N| \le |N_2 \cap N| + 1∣N2∩N∣≤∣N1∩N∣≤∣N2∩N∣+1。网络的通道对分 (channel bisection)BCB_CBC 是网络所有对分上通道数的最小值:

BC=min⁡bisections∣C(N1,N2)∣B_C = \min_{\text{bisections}} |C(N_1, N_2)|BC=bisectionsmin∣C(N1,N2)∣

网络的对分带宽 (bisection bandwidth)BBB_BBB 是网络所有对分上带宽的最小值:

BB=min⁡bisectionsB(N1,N2)B_B = \min_{\text{bisections}} B(N_1, N_2)BB=bisectionsminB(N1,N2)

对通道带宽均匀为 bbb 的网络,BB=bBCB_B = bB_CBB=bBC。在本章后面建立的成本模型(3.4 节)中,我们用网络的对分带宽来估计实现它所需的全局布线量。

3.1.4 路径

网络中的路径 是通道的有序集合 P={c1,c2,...,cn}P = \{c_1, c_2, \ldots, c_n\}P={c1,c2,...,cn},其中对 i=1...(n−1)i = 1 \ldots (n-1)i=1...(n−1) 有 dci=sci+1d_{c_i} = s_{c_{i+1}}dci=sci+1。路径也称为路由(route)。路径的源为 sP=sc1s_P = s_{c_1}sP=sc1,目的地为 dP=dcnd_P = d_{c_n}dP=dcn。路径的长度或跳数 为 ∣P∣|P|∣P∣。如果对某个特定网络及其路由函数,所有源---目的对之间都至少存在一条路径,则称该网络是连通的(connected)。

从节点 xxx 到节点 yyy 的最小路径 是连接这两个节点的跳数最小的路径。从节点 xxx 到节点 yyy 的所有最小路径的集合记为 RxyR_{xy}Rxy。H(x,y)H(x, y)H(x,y) 是 xxx 与 yyy 之间最小路径的跳数。网络的直径 (diameter)HmaxH_{max}Hmax 是网络中所有终端节点对上最小跳数的最大值:

Hmax=max⁡x,y∈NH(x,y)H_{max} = \max_{x, y \in N} H(x, y)Hmax=x,y∈NmaxH(x,y)

对由出度为 δO\delta_OδO 的交换机构建的、具有 NNN 个终端的全连通网络,HmaxH_{max}Hmax 有下界

Hmax≥log⁡δON(3.1)H_{max} \ge \log_{\delta_O} N \tag{3.1}Hmax≥logδON(3.1)

对 δI=δO=δ/2\delta_I = \delta_O = \delta/2δI=δO=δ/2 的对称交换机,

Hmax≥log⁡δ/2NH_{max} \ge \log_{\delta/2} NHmax≥logδ/2N

每个终端一跳之后至多能到达 δO\delta_OδO 个其他终端,两跳之后至多到达 δO2\delta_O^2δO2 个,H 跳之后至多到达 δOH\delta_O^HδOH 个。令 δOH=N\delta_O^H = NδOH=N 并解出 H,即得式 (3.1),它给出网络直径的下界。该下界达到紧致的网络(如蝶形网络)没有路径多样性:所有选择都用来选定目的节点,没有剩余的选择可用于在备选路径之间挑选。

网络的平均最小跳数 HminH_{min}Hmin 定义为所有源和目的上跳数的平均值:

Hmin=1N2∑x,y∈NH(x,y)H_{min} = \frac{1}{N^2}\sum_{x,y \in N} H(x, y)Hmin=N21x,y∈N∑H(x,y)

虽然 HminH_{min}Hmin 代表可能的最小平均跳数,但具体实现也可以选择纳入某些非最小路径。此时,实际平均跳数 HavgH_{avg}Havg 定义在网络实际使用的路径(而不仅是最小路径)上,且 Havg≥HminH_{avg} \ge H_{min}Havg≥Hmin。

路径的物理距离为

D(P)=∑c∈PlcD(P) = \sum_{c \in P} l_cD(P)=c∈P∑lc

路径的延迟 为 t(P)=D(P)/vt(P) = D(P)/vt(P)=D(P)/v。节点对之间的距离和延迟,以及网络的平均和最大距离、延迟,定义方式与跳数相同。

3.1.5 对称性

拓扑的对称性在负载均衡和路由中起重要作用,我们将在后面的章节讨论。如果存在一个把任一节点 a 映射到另一节点 b 的自同构(automorphism),则称该网络是顶点对称(vertex-symmetric)的。不严格地说,在顶点对称网络中,从所有节点的视角看,拓扑都是一样的。这可以简化路由,因为所有节点共享同一张网络地图,因此可以用相同的"方向说明"路由到相同的相对位置。

在边对称(edge-symmetric)网络中,存在一个把任一通道 a 映射到另一通道 b 的自同构。边对称性可以改善网络各通道间的负载均衡,因为没有理由偏爱某一条通道胜过另一条。

3.2 流量模式

在介绍拓扑的性能度量之前,先考察互连网络中消息的空间分布是有益的。我们用流量矩阵 Λ\LambdaΛ 表示这些消息分布,矩阵元素 λs,d\lambda_{s,d}λs,d 给出从节点 s 发往节点 d 的流量比例。表 3.1 列出了评估互连网络常用的一些静态流量模式。历史上,其中若干模式源于特定应用中出现的通信模式。例如,矩阵转置或角转(corner-turn)操作产生转置(transpose)模式;快速傅里叶变换(FFT)或排序应用可能引起洗牌(shuffle)置换 175;流体动力学仿真常呈现邻居(neighbor)模式。流量的时间特性对网络性能也有重要影响,将在 24.2 节讨论。

表 3.1 网络流量模式。随机流量用所有元素 λsd=1/N\lambda_{sd} = 1/Nλsd=1/N 的流量矩阵 Λ\LambdaΛ 描述。置换流量------每个源的全部流量都指向一个目的地------可以更紧凑地用把源映射到目的地的置换函数 π 表示。比特置换(如转置和洗牌)中,b 位目的地址的每一位 did_idi 都是源地址某一位 sjs_jsj 的函数(j 是 i 的函数)。数字置换(如龙卷风和邻居)中,目的地址的每个(k 进制)数字 dxd_xdx 是源地址某个数字 sys_ysy 的函数。在表中所示的两个数字置换中 x = y,但并非总是如此。

名称 模式
随机(Random) λsd=1/N\lambda_{sd} = 1/Nλsd=1/N
置换(Permutation) d=π(s)d = \pi(s)d=π(s)
比特置换(Bit permutation) di=sf(i)⊕g(i)d_i = s_{f(i)} \oplus g(i)di=sf(i)⊕g(i)
比特取反(Bit complement) di=¬sid_i = \neg s_idi=¬si
位反转(Bit reverse) di=sb−i−1d_i = s_{b-i-1}di=sb−i−1
比特循环(Bit rotation) di=si+1 mod bd_i = s_{i+1 \bmod b}di=si+1modb
洗牌(Shuffle) di=si−1 mod bd_i = s_{i-1 \bmod b}di=si−1modb
转置(Transpose) di=si+b/2 mod bd_i = s_{i+b/2 \bmod b}di=si+b/2modb
数字置换(Digit permutation) dx=f(sg(x))d_x = f(s_{g(x)})dx=f(sg(x))
龙卷风(Tornado) dx=sx+(⌈k/2⌉−1) mod kd_x = s_x + (\lceil k/2 \rceil - 1) \bmod kdx=sx+(⌈k/2⌉−1)modk
邻居(Neighbor) dx=sx+1 mod kd_x = s_x + 1 \bmod kdx=sx+1modk

随机流量------每个源以相同概率发往每个目的------是网络评估中最常用的流量模式。随机流量非常温和,因为它使流量均匀分布,即使对通常负载均衡很差的拓扑和路由算法也能平衡负载。一些非常糟糕的拓扑和路由算法,只用随机流量评估时看起来非常好。

为了给拓扑或路由算法施加压力,我们通常使用置换流量 :每个源 s 把全部流量发往单一目的地 d=π(s)d = \pi(s)d=π(s)。置换的流量矩阵 Λ\LambdaΛ 是一个置换矩阵,每行每列只有一个非零元素,其余元素全为零。由于置换把负载集中在个别源---目的对上,它们能考验拓扑和路由算法的负载均衡能力。

比特置换 是置换的一个子集,其中目的地址通过对源地址的各位进行置换并选择性取反来计算。例如,若四位源地址为 {s3,s2,s1,s0}\{s_3, s_2, s_1, s_0\}{s3,s2,s1,s0},位反转流量模式的目的地是 {s0,s1,s2,s3}\{s_0, s_1, s_2, s_3\}{s0,s1,s2,s3},比特取反流量模式的目的地是 {¬s3,¬s2,¬s1,¬s0}\{\neg s_3, \neg s_2, \neg s_1, \neg s_0\}{¬s3,¬s2,¬s1,¬s0},洗牌的目的地是 {s2,s1,s0,s3}\{s_2, s_1, s_0, s_3\}{s2,s1,s0,s3}。

数字置换是类似的置换子集,其中目的地址的各位数字由源地址的各位数字算出。这类置换只适用于终端地址可表示为 n 位 k 进制数的网络,如 k 元 n 立方体(环面)网络(第 5 章)和 k 元 n 蝶(蝶形)网络(第 4 章)。龙卷风模式被设计为环面拓扑的"对手",而邻居流量衡量拓扑利用局部性的能力。

3.3 性能

我们基于成本和性能为网络选择拓扑。本节讨论性能的三个关键指标:吞吐率、延迟和路径多样性。3.4 节将重新审视这些度量,并把它们与网络的实现成本联系起来。

3.3.1 吞吐率与最大通道负载

网络的吞吐率 是网络每个输入端口接受的数据速率(比特每秒)。吞吐率是整个网络的属性,对拓扑的依赖程度不亚于对路由和流量控制的依赖(如第 2 章所见)。不过,我们可以通过测量拓扑在完美流量控制和路由下能承载的吞吐率,来确定拓扑的理想吞吐率。这就是路由能在网络备选路径上完美平衡负载、流量控制不在瓶颈通道上留下任何空闲周期时所能达到的吞吐率。为简单起见,本节只给出所有通道带宽均为 b 的网络的吞吐率和负载公式;习题 3.5 将去掉这一限制。

最大吞吐率出现在网络中某条通道饱和之时。如果没有通道饱和,网络还能承载更多流量,因此并非运行在最大吞吐率。所以,计算吞吐率必须考虑通道负载。我们定义通道 c 上的负载 γc\gamma_cγc 为对通道 c 需求的带宽与输入端口带宽之比。等价地说,这个比值是:当每个输入按给定流量模式注入一个单位流量时,必须穿越通道 c 的流量。由于是一个比值,通道负载是无量纲量。除非另有说明,我们考虑均匀流量下的通道负载。

在特定流量模式下,承载最大流量份额的通道决定了拓扑的最大通道负载 γmax=max⁡c∈Cγc\gamma_{max} = \max_{c \in C} \gamma_cγmax=maxc∈Cγc。当提供流量达到网络吞吐率时,这条瓶颈通道上的负载将等于通道带宽 b。任何具有该模式的额外流量都会使这条通道过载。因此,我们把拓扑的理想吞吐率 Θideal\Theta_{ideal}Θideal 定义为使瓶颈通道饱和的输入带宽:

Θideal=bγmax(3.2)\Theta_{ideal} = \frac{b}{\gamma_{max}} \tag{3.2}Θideal=γmaxb(3.2)

其中 b 以比特每秒计,γmax\gamma_{max}γmax 无量纲。

对任意拓扑和任意流量模式的一般情形,计算 γmax\gamma_{max}γmax 需要求解如下文所述的多商品流(multicommodity flow)问题。不过对均匀流量,我们可以省力得多地算出 γmax\gamma_{max}γmax 的一些上下界。

网络对分通道上的负载给出 γmax\gamma_{max}γmax 的一个下界,进而给出吞吐率的上界。对均匀流量,平均而言一半流量(N/2 个分组)必须穿越 BCB_CBC 条对分通道。最好吞吐率出现在这些分组均匀分布到各对分通道时。因此,每条对分通道上的负载 γB\gamma_BγB 至少为

γmax≥γB=N2BC(3.3)\gamma_{max} \ge \gamma_B = \frac{N}{2B_C} \tag{3.3}γmax≥γB=2BCN(3.3)

联立式 (3.2) 与式 (3.3),得到理想吞吐率的上界:

Θideal≤2bBCN=2BBN(3.4)\Theta_{ideal} \le \frac{2bB_C}{N} = \frac{2B_B}{N} \tag{3.4}Θideal≤N2bBC=N2BB(3.4)

例如,考虑均匀流量下的 k 节点环。BC=4B_C = 4BC=4 条通道穿越网络对分线(每个方向两条;图 3.3 是一个 8 节点环)。于是由式 (3.4) 知 Θideal≤8b/k\Theta_{ideal} \le 8b/kΘideal≤8b/k。对环而言,这个界恰好是精确的。

图 3.3 一个 8 节点环。

另一个有用的通道负载下界可以用类似方法计算。乘积 HminNH_{min}NHminN 给出通道需求------为给定流量模式递送一轮分组所需的通道穿越次数。假设最好的情形(所有通道负载相等),用这个需求除以通道数,就给出网络中每条通道负载的下界:

γc,LB=γmax,LB=HminNC(3.5)\gamma_{c,LB} = \gamma_{max,LB} = \frac{H_{min}N}{C} \tag{3.5}γc,LB=γmax,LB=CHminN(3.5)

这些下界可以用最大通道负载的一个简单上界来补充:考虑一个在所有最小路径上均匀平衡负载的路由函数。也就是说,如果有 ∣Rxy∣|R_{xy}|∣Rxy∣ 条路径,则每条路径的每条通道记入 1/∣Rxy∣1/|R_{xy}|1/∣Rxy∣。最大负载 γmax,UB\gamma_{max,UB}γmax,UB 是所有通道上最大的 γc,UB\gamma_{c,UB}γc,UB。数学上,这些负载定义为

γc,UB=1N∑x∈N∑y∈N∑P∈Rxy{1/∣Rxy∣若 c∈P0否则\gamma_{c,UB} = \frac{1}{N}\sum_{x \in N}\sum_{y \in N}\sum_{P \in R_{xy}} \begin{cases} 1/|R_{xy}| & \text{若 } c \in P \\ 0 & \text{否则} \end{cases}γc,UB=N1x∈N∑y∈N∑P∈Rxy∑{1/∣Rxy∣0若 c∈P否则

γmax,UB=max⁡c∈Cγc,UB(3.6)\gamma_{max,UB} = \max_{c \in C} \gamma_{c,UB} \tag{3.6}γmax,UB=c∈Cmaxγc,UB(3.6)

对任何拓扑,γmax,LB≤γmax≤γmax,UB\gamma_{max,LB} \le \gamma_{max} \le \gamma_{max,UB}γmax,LB≤γmax≤γmax,UB;而在边对称拓扑(如环面)的情形,两个界都恰好等于 γmax\gamma_{max}γmax。

为了看看如何用通道负载估计理想吞吐率,考虑图 3.3 所示的 8 节点环网(8 元 1 立方体)。该拓扑是边对称的,因此我们的简单界等于最大通道负载;我们还知道所有通道上的负载相同,所以只需计算一条通道的负载。我们对通道 (3,4)------从节点 3 到节点 4 向右的通道------应用上界方法。式 (3.6) 的求和由图 3.3 网络下方的直线示意:每条线表示一条使用该通道的路径,虚线表示按一半计入的路径------对这些长度为 4 的路径,存在另一条沿顺时针方向穿越网络的最小路径。完成求和:有 6 条实线(6 个总是使用 (3,4) 的节点对)和 4 条虚线(4 个一半时间使用 (3,4) 的节点对),求和结果为 8。除以 N = 8,得通道负载 γmax=1\gamma_{max} = 1γmax=1。

我们也可以验证下界给出相同的最大通道负载。此时分组平均走 Hmin=2H_{min} = 2Hmin=2 跳;每个节点贡献两条通道(向左一条、向右一条),因此用这种方法得到的通道负载同样是 γmax=HminN/C=2⋅8/16=1\gamma_{max} = H_{min}N/C = 2 \cdot 8/16 = 1γmax=HminN/C=2⋅8/16=1。

要在一般情形下计算 γmax\gamma_{max}γmax,必须找到使通道负载最小化的分组在网络上的最优分布。这个任务可以表述为一个凸优化问题。求解这类问题超出了本书范围,但我们将给出问题的表述。

对网络中每个目的地 d,我们用长度为 ∣C∣|C|∣C∣ 的向量 xdx_dxd 表示发往 d 的分组在网络各通道上的平均分布。通过在每个节点添加流量平衡方程来维持分布的有效性:流入分布之和减去流出通道之和,必须等于该节点作为源发出(正值)或作为汇接收(负值)的平均分组数。对所有 d∈N∗d \in N^*d∈N∗ 的每个分布 xdx_dxd 都维持这些平衡方程。对均匀流量下的分布 xdx_dxd,所有终端节点(包括目的地 d)发出 1/N 单位流量,目的地 d 接收 1 单位。这用一个 ∣N∗∣|N^*|∣N∗∣ 元的平衡向量 fdf_dfd 表示:

fd,i={1/N−1若 d=i 且 d∈N1/N若 d≠i 且 d∈N0否则(3.7)f_{d,i} = \begin{cases} 1/N - 1 & \text{若 } d = i \text{ 且 } d \in N \\ 1/N & \text{若 } d \ne i \text{ 且 } d \in N \\ 0 & \text{否则} \end{cases} \tag{3.7}fd,i=⎩ ⎨ ⎧1/N−11/N0若 d=i 且 d∈N若 d=i 且 d∈N否则(3.7)

其中 fd,if_{d,i}fd,i 是 fdf_dfd 的第 i 个元素。然后用 N∗×CN^* \times CN∗×C 的节点---弧关联矩阵 A 表示拓扑:

An,c={+1若 sc=n−1若 dc=n0否则(3.8)A_{n,c} = \begin{cases} +1 & \text{若 } s_c = n \\ -1 & \text{若 } d_c = n \\ 0 & \text{否则} \end{cases} \tag{3.8}An,c=⎩ ⎨ ⎧+1−10若 sc=n若 dc=n否则(3.8)

于是,目标是最小化任一通道上的最大负载,整个优化问题写为

minimizemax⁡c∈C∑d∈Nxd,csubject toAxd=fdxd≥0对所有 d∈N∗(3.9)\begin{aligned} \text{minimize} \quad & \max_{c \in C} \sum_{d \in N} x_{d,c} \\ \text{subject to} \quad & Ax_d = f_d \\ & x_d \ge 0 \quad \text{对所有 } d \in N^* \end{aligned} \tag{3.9}minimizesubject toc∈Cmaxd∈N∑xd,cAxd=fdxd≥0对所有 d∈N∗(3.9)

这个凸优化问题的解给出最优的最大通道负载 γmax\gamma_{max}γmax。¹

¹ 这类网络优化问题在优化文献中常称为多商品流问题,参见例如 6。

式 (3.6) 和式 (3.9) 估计的是均匀流量下(每个节点以相等概率发往每个节点)网络的吞吐率。通过调整平衡向量 fdf_dfd,可以把任意流量模式纳入式 (3.9)。类似地,式 (3.6) 可以通过用 λxy\lambda_{xy}λxy(x 发往 y 的概率)对最终求和加权来改造:

γc(Λ)=∑x∈N∑y∈Nλxy∑P∈Rxy{1/∣Rxy∣若 c∈P0否则\gamma_c(\Lambda) = \sum_{x \in N}\sum_{y \in N} \lambda_{xy} \sum_{P \in R_{xy}} \begin{cases} 1/|R_{xy}| & \text{若 } c \in P \\ 0 & \text{否则} \end{cases}γc(Λ)=x∈N∑y∈N∑λxyP∈Rxy∑{1/∣Rxy∣0若 c∈P否则

最后,式 (3.5) 通过代入任意流量模式的平均跳数来修改:

Hmin(Λ)=∑x∈N∑y∈NλxyH(x,y)H_{min}(\Lambda) = \sum_{x \in N}\sum_{y \in N} \lambda_{xy} H(x, y)Hmin(Λ)=x∈N∑y∈N∑λxyH(x,y)

我们常把网络在均匀流量下的理想吞吐率 Θ(U)\Theta(U)Θ(U) 称为网络的容量 (capacity)。把网络在任意非均匀流量模式 Λ 下的吞吐率表示为容量的分数 Θ(Λ)/Θ(U)\Theta(\Lambda)/\Theta(U)Θ(Λ)/Θ(U) 往往很有用。如果网络的所有通道带宽相等,这个容量分数也等价于 γmax(U)/γmax(Λ)\gamma_{max}(U)/\gamma_{max}(\Lambda)γmax(U)/γmax(Λ)。

3.3.2 延迟

网络的延迟是分组穿越网络所需的时间------从分组头部到达输入端口,到分组尾部离开输出端口。我们把延迟 T 分成两个成分:

T=Th+LbT = T_h + \frac{L}{b}T=Th+bL

头部延迟 ThT_hTh 是消息头部穿越网络所需的时间;串行化延迟

Ts=L/b(3.10)T_s = L/b \tag{3.10}Ts=L/b(3.10)

是尾部追上头部所需的时间------即长度为 L 的分组穿过带宽为 b 的通道所需的时间。

与吞吐率一样,延迟不仅取决于拓扑,还取决于路由、流量控制和路由器设计。不过,与上文一样,我们这里关注拓扑对延迟的贡献,其他效应留待以后考虑。

在无竞争的情况下,头部延迟是由拓扑决定的两个因素之和:路由器延迟 TrT_rTr 和飞行时间 TwT_wTw。路由器延迟是花在路由器里的时间,飞行时间是花在导线上的时间。对平均跳数为 HminH_{min}Hmin、单台路由器延迟为 trt_rtr 的网络,平均路由器延迟为 Tr=HmintrT_r = H_{min}t_rTr=Hmintr。对平均距离为 DminD_{min}Dmin、传播速度为 v 的网络,平均飞行时间为 Tw=Dmin/vT_w = D_{min}/vTw=Dmin/v。

把这些成分组合起来,得到无竞争时的平均延迟表达式:

T0=Hmintr+Dminv+Lb(3.11)T_0 = H_{min}t_r + \frac{D_{min}}{v} + \frac{L}{b} \tag{3.11}T0=Hmintr+vDmin+bL(3.11)

三项分别对应总延迟的三个成分:交换延迟、飞行时间和串行化延迟。我们把这个延迟记为 T0T_0T0,因为它代表零负载(无竞争发生)时的延迟。随着负载增加,式中还会加入第四项 TcT_cTc,反映等待资源(即竞争)所花的时间。

网络的拓扑及其到物理封装的映射,在很大程度上决定了这个式子中的三个关键参数。平均跳数 HminH_{min}Hmin 完全是拓扑的性质;平均距离 DminD_{min}Dmin 既受拓扑也受封装影响;带宽 b 则由节点度(拓扑的性质)和封装约束决定。

图 3.4 用甘特图展示一个分组沿两跳路由从节点 x 经中间节点 y 传播到节点 z 的过程,以此说明式 (3.11) 的三项。图中第一行显示分组的每个 phit 到达节点 x。经过一个跳的路由延迟 trt_rtr 后,分组的第一个 phit 离开节点 x;再经过链路延迟 txyt_{xy}txy,该 phit 到达节点 y。在第一个 phit 到达节点 z 之前,又经过一次路由延迟和链路延迟。在消息的第一个 phit 到达 z 之后,再过一个串行化延迟,完整分组接收完毕。图底部的横条汇总了延迟的来源:单斜线区域对应路由延迟,浅灰区域对应链路延迟,双斜线区域对应串行化延迟。

图 3.4 甘特图:无竞争时一个分组穿越两条通道的延迟。

考虑一个 64 节点网络,HavgH_{avg}Havg = 4 跳,通道宽 16 比特。每条通道 c 以 fcf_cfc = 1 GHz 工作,穿越需 tct_ctc = 5 ns。若单台路由器的延迟为 trt_rtr = 8 ns(4 个 2 ns 时钟),则总路由延迟为 8 · 4 = 32 ns(16 个时钟)。本例中 4 段导线延迟各为 5 ns,合计 TwT_wTw = 20 ns(10 个时钟)。若分组长度 L = 64 字节,所有通道带宽均为 2 Gbytes/s,则串行化延迟为 64/2 = 32 ns(16 个时钟)。于是对这个网络,T0T_0T0 = 32 + 20 + 32 = 84 ns。

3.3.3 路径多样性

在大多数节点对之间具有多条最小路径(对大多数 x,y∈Nx, y \in Nx,y∈N 有 ∣Rxy∣>1|R_{xy}| > 1∣Rxy∣>1)的网络,比节点间只有一条路由(∣Rxy∣=1|R_{xy}| = 1∣Rxy∣=1)的网络更健壮。这个性质------我们称之为路径多样性(path diversity)------通过以下方式增强网络的健壮性:

在通道间平衡负载,并使网络能够容忍失效的通道和节点。

到目前为止,我们主要关注随机流量下(每个节点以相等概率向任何其他节点发消息)网络的吞吐率。对许多网络而言,随机流量是最好的负载情形,因为它在节点对之间均匀分散流量,从而也在网络通道间均匀平衡负载。对许多网络更有挑战性的情形是任意置换流量:每个节点 x 把全部流量发往恰好一个其他节点 π(x)(π 为某个置换)。没有路径多样性时,某些置换会把相当大比例的流量集中到单一瓶颈通道上,导致吞吐率显著下降。

作为路径多样性在负载均衡中重要性的例子,考虑在一个单位带宽通道的 2 元 4 蝶和一个半单位带宽通道的 4 元 2 立方体上发送比特循环(bit-rotation)流量。这两个网络在随机流量下都有 γmax=1\gamma_{max} = 1γmax=1。对比特循环(BR)流量,地址为 {b3,b2,b1,b0}\{b_3, b_2, b_1, b_0\}{b3,b2,b1,b0} 的节点只向地址为 {b2,b1,b0,b3}\{b_2, b_1, b_0, b_3\}{b2,b1,b0,b3} 的节点发送分组。换一种写法,该流量对应洗牌置换

{0,2,4,6,8,10,12,14,1,3,5,7,9,11,13,15}\{0, 2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15\}{0,2,4,6,8,10,12,14,1,3,5,7,9,11,13,15}

即节点 0 发给自己,节点 1 发往节点 2,依此类推。图 3.5 展示了这个置换施加到 2 元 4 蝶上时发生的流量集中。如图中粗线所示,来自节点 0、1、8、9 的全部分组都必须穿越通道 (10, 20)。类似地,来自节点 2、3、10、11 的全部流量必须穿越通道 (11, 23);4、5、12、13 集中在 (16, 24);6、7、14、15 集中在 (17, 27)。于是对这种流量模式,γmax,BR=4\gamma_{max,BR} = 4γmax,BR=4,吞吐率因此只有容量的 γmax/γmax,BR\gamma_{max}/\gamma_{max,BR}γmax/γmax,BR = 25%。

图 3.5 在 2 元 4 蝶上路由洗牌置换,会使全部流量集中到网络中心四分之一的通道上,性能下降为原来的 1/4。

图 3.6 展示了这一置换流量如何映射到 4 元 2 立方体上。两条路由不穿越任何通道,四条穿越一条通道,四条穿越两条通道(例如 H(5,10)=2H(5, 10) = 2H(5,10)=2 且 ∣R5,10∣=2|R_{5,10}| = 2∣R5,10∣=2,有两条最小路由可选),四条穿越三条通道(有三条备选路由),四条穿越四条通道(有 24 条备选路由)。采用最小路由时,一跳通道成为瓶颈:一跳路由没有备选的最小路由,因此 γmax,BR=1\gamma_{max,BR} = 1γmax,BR=1。对这个拓扑,均匀流量给出 γmax=0.5\gamma_{max} = 0.5γmax=0.5,因此比特反转模式下的吞吐率为容量的 γmax/γmax,BR\gamma_{max}/\gamma_{max,BR}γmax/γmax,BR = 50%。然而,如果允许四条一跳路由把一半流量沿相反方向非最小地路由,流量就被均匀分散开。例如,从节点 1 到 2 的一半流量走路由 {(1, 2)},另一半走 {(1, 0), (0, 3), (3, 2)}。结果吞吐率提高到容量的 89%,11% 的损失是因为非最小路由多走的跳数。

图 3.6 在 4 元 2 立方体上路由洗牌置换。采用最小路由时,吞吐率下降为一半,因为全部一跳流量必须穿越带宽为 0.5 的单一通道;采用非最小路由时,流量均匀分散,吞吐率为容量的 0.89。

这个例子说明,平衡通道间负载常常需要非最小路由。尽管非最小路由做的总功更多(穿越更多通道),但由于负载均衡更好,整体性能反而提高。然而,非最小路由会增加实现复杂度。例如,使用非最小路由的网络需要特别注意避免死锁,我们将在第 14 章看到。

路径多样性增加的另一个重要优点,是网络处理故障(如节点或链路失效)的能力。例如,对图 3.5 的蝶形网络,如果从交换节点 07 到 17 的链路失效,就不存在从源 14 到目的 15 的任何路径。由于互连网络的平均无故障时间随系统组件数增加而缩短,大型互连网络必须能够容忍一个或多个失效节点或链路。

衡量网络处理故障能力的一个指标,是路由函数在每个源---目的对之间允许的边不相交 (edge-disjoint)或节点不相交(node-disjoint)路径数。一组路径若不共享任何公共链路,则称为边不相交。因此,如果网络中一条链路失效,保证至多影响边不相交路径组中的一条路径。一般地,如果给定路由函数在所有节点间的最小边不相交路径数为 j,那么只要链路失效数少于 j,网络就保证仍然连通。

节点不相交路径是一组除源和目的外不共享任何公共节点的路径。与边不相交路径类似,一个节点失效时,它只能影响节点不相交路径组中的一条路径------当然,除非失效节点正是这些路径的源或目的。节点不相交的路径组也是边不相交的,因此,在每个源---目的对之间至少有 j 条节点不相交路径的网络和路由函数,可以容忍多达 j 个链路加节点的失效。

一群不走运的故障可能全部落在网络中某个特定节点的邻居上。对这个不走运的节点,如果它的所有邻接节点、所有入链路、所有出链路或任何等价组合都失效,就无法路由到该节点或从该节点路由出去。因此,网络在 min⁡xmin⁡{∣CIx∣,∣COx∣}\min_x\\min\\{\|C_{Ix}\|, \|C_{Ox}\|\\}minxmin{∣CIx∣,∣COx∣} 个失效之后就可能不再连通。

3.4 封装成本

构建网络时,拓扑的节点被映射到物理系统中的封装模块------芯片、电路板和机箱。拓扑和封装技术的性质,连同节点的布局,共同决定通道带宽的约束。没有这些约束,就无法评价一个拓扑,也无法在拓扑之间进行公平的比较。本节基于典型的两级封装层次,建立一个简单的封装成本模型,其中通道宽度 w 同时受每个节点的引脚数和全局布线总量的约束。我们还将讨论封装选择如何影响频率 f------通道带宽的另一个因素。

在封装模型层次的第一级,各个路由器由本地布线连接。与全局布线相比,本地布线便宜且充裕,因此拓扑的安排必须利用空间局部性------相邻节点应在物理上彼此靠近。这种安排使本地布线可以代替全局布线。例如,考虑一块印制电路(PC)板上能放下 16 个节点的系统。按图 3.7 把 4×4 的节点阵列封装在一块 PC 板上,全部引脚的四分之三保持为板内本地连接,只有 32 条通道需要穿越模块边界。

图 3.7 一个 4×4 节点阵列封装在一块 PC 板上,使全部节点引脚的 3/4 通过本地布线连接到板上其他引脚。

一旦找到高效的节点本地布局,通道宽度的主要约束就成为每个节点的可用引脚数。对每节点最大引脚数为 WnW_nWn 的节点,通道宽度 w 受约束

w≤Wnδ(3.12)w \le \frac{W_n}{\delta} \tag{3.12}w≤δWn(3.12)

层次的第二级通过全局布线连接各本地节点组。全局布线的典型实现是连接若干节点电路板的背板,如图 3.8 所示。任何全局信号都要从一块电路板出发,穿过一个电连接器,上到背板,再穿过另一个连接器到达另一块电路板。在这一级,可用全局导线的数量 WsW_sWs 限制各条通道的宽度。例如,建在背板上的网络,其导线对分受背板布线密度限制。为通孔过孔留出空间,典型 PC 板每个信号层可支持 1 线/毫米的布线密度(差分信号为 0.5 信号/毫米)。一块中等成本的 PC 板可能共有 8 个布线层(x 方向 4 层、y 方向 4 层),即每个方向总布线密度为 2 信号/毫米。

为了估计特定拓扑所需的全局通道数,我们使用拓扑的最小通道对分 BCB_CBC。最小对分是在尽可能少切导线的前提下,把网络几乎对半划分的割。因此,对分产生的两个节点集合恰好是把节点划分为本地封装组的良好划分。虽然这个模型有局限------许多网络可能要划分成两个以上的本地组才能满足封装技术的约束------但在这些情况下它通常仍是一个不错的估计。

利用最小对分,可用全局布线把通道宽度约束为

w≤WsBC(3.13)w \le \frac{W_s}{B_C} \tag{3.13}w≤BCWs(3.13)

虽然我们的讨论聚焦于两级封装层次,式 (3.13) 也可应用于更大系统中所需的更多封装层级(见习题 5.3)。

图 3.8 用背板连接若干节点电路板。

联立式 (3.12) 和式 (3.13),得到通道宽度的总体约束:

w≤min⁡(Wnδ,WsBC)(3.14)w \le \min\left(\frac{W_n}{\delta}, \frac{W_s}{B_C}\right) \tag{3.14}w≤min(δWn,BCWs)(3.14)

式 (3.14) 的第一项往往在低度网络(如环)中起主导作用------这类网络是节点引脚受限 的。而高度网络(如二进制 n 立方体)往往是对分受限的,由式 (3.14) 的第二项主导。

我们也可以用带宽而非通道宽度来表达封装约束。节点的最大带宽为 Bn=fWnB_n = fW_nBn=fWn,系统对分上的最大带宽为 Bs=fWsB_s = fW_sBs=fWs。用带宽重写式 (3.14),得到每通道的最大带宽:

b≤min⁡(Bnδ,BsBC)b \le \min\left(\frac{B_n}{\delta}, \frac{B_s}{B_C}\right)b≤min(δBn,BCBs)

除了封装层次各级可用的布线宽度,另一个重要考虑是这些导线的长度。网络通道必须保持短,因为超过某个临界长度后,信号频率随线长呈平方下降:²

f=min⁡f0,  f0(lwlc)−2f = \min\leftf_0,\\; f_0\\left(\\frac{l_w}{l_c}\\right)\^{-2}\\rightf=minf0,f0(lclw)−2

导线的临界长度 lcl_clc 是导线标称信号速率³ f0f_0f0、导线物理性质以及系统能容忍的频率相关衰减量的函数。

² 这一带宽限制由导线的趋肤效应电阻引起,详见 55 的 3.3.4 节。

³ 注意,信号速率 f0f_0f0 对应的最大频率为 f0/2f_0/2f0/2。
表 3.2 2 GHz 下常见导线的临界长度(无均衡)。

导线类型 lcl_clc
5 mil 带状线(stripguide) 0.10 m
30 AWG 双绞对 0.56 m
24 AWG 双绞对 1.11 m
RG59U 同轴电缆 10.00 m

表 3.2 给出了 2 GHz 信号速率下几种常见导线的临界长度,假设最多能容忍 1 dB 的衰减。⁴ 密度---成本约束使大多数网络采用 PC 板带状线、细线电缆或两者兼用来构建。这些互连(对应表中前两行)只能走很短的距离------不到一米------就会达到临界线长,数据速率开始随长度平方下降。

⁴ 通过对信号进行均衡 54,可以容忍大得多的频率相关衰减,因而可以驱动长得多的导线。

通过在导线中插入中继器(repeater),可以构建长通道并以高比特率工作。然而,插入一个中继器的成本与插入一个交换机差不多,所以这种做法意义不大。更好的做法是选用让通道保持在临界长度之内的拓扑,在长路由中插入交换机而不是中继器。导线速度与导线长度的关系,使得用需要长通道的拓扑来构建高速电网络是不现实的。

利用光信号也可以构建以高比特率工作的长通道。虽然光纤也会衰减和色散信号、限制距离,但速率远低于电传输线。单模光纤可以传输数十到数百公里才需要再生。光通道的缺点是成本:2003 年时,一条光通道的成本是同等带宽电通道的十倍以上。

图 3.9 比较了两种不同的 6 节点拓扑。第一种是简单的 6 环,δ=4\delta = 4δ=4,BC=4B_C = 4BC=4。第二种属于一大类称为 Cayley 图的图,δ=6\delta = 6δ=6,BC=10B_C = 10BC=10。我们的封装技术允许每节点 Wn=140W_n = 140Wn=140 个引脚、背板宽 Ws=200W_s = 200Ws=200 个信号。因此,为了公平比较,通道宽度 w 的选取要使两种拓扑都满足封装约束。首先,对环:

w≤min⁡(Wnδ,WsBC)=min⁡(1404,2004)=35(3.15)w \le \min\left(\frac{W_n}{\delta}, \frac{W_s}{B_C}\right) = \min\left(\frac{140}{4}, \frac{200}{4}\right) = 35 \tag{3.15}w≤min(δWn,BCWs)=min(4140,4200)=35(3.15)

对 Cayley 图:

w≤min⁡(Wnδ,WsBC)=min⁡(1406,20010)=20(3.16)w \le \min\left(\frac{W_n}{\delta}, \frac{W_s}{B_C}\right) = \min\left(\frac{140}{6}, \frac{200}{10}\right) = 20 \tag{3.16}w≤min(δWn,BCWs)=min(6140,10200)=20(3.16)

图 3.9 (a) 6 环和 (b) Cayley 图的对分与度。每条边代表两条方向相反的单向通道。

采用这些宽度和 f = 1 GHz 的信号频率,环的通道带宽为 35 Gbits/s,Cayley 图为 20 Gbits/s。若消息长度 L = 1024 比特,路由器延迟 trt_rtr = 20 ns,并给定最大通道负载和平均跳数,就可以比较两种网络的理想吞吐率和零负载延迟(见表 3.3)。如表所示,Cayley 图的理想吞吐率更好,而环在给定封装约束下零负载延迟更低。考察式 (3.15) 和式 (3.16) 可知,环的通道宽度受引脚带宽限制,而 Cayley 图能利用全部对分宽度,因此对分利用率更高,理想吞吐率更好。然而,Cayley 图更高的度限制了单条通道的宽度,导致更高的串行化延迟,于是环的零负载延迟更好。只看拓扑,人们可能会觉得这个延迟结果违反直觉,因为 Cayley 图的平均跳数更小。然而,考虑到特定封装对通道宽度的限制,我们看到 Cayley 图的实际延迟事实上高于环------在这个例子里,跳数的减少被串行化延迟的增加所淹没。

表 3.3 封装后的环与 Cayley 图网络的性能示例。

环 Cayley 图
b 35 Gbits/s 20 Gbits/s
HavgH_{avg}Havg 3/2 7/6
γmax\gamma_{max}γmax 3/4 7/18
Θideal\Theta_{ideal}Θideal ≈46.7 Gbits/s ≈51.4 Gbits/s
ThT_hTh 30 ns ≈23.3 ns
TsT_sTs ≈29.3 ns ≈51.2 ns
T0T_0T0 ≈69.3 ns ≈74.5 ns

3.5 案例研究:SGI Origin 2000

为了给你一个拓扑的具体例子,我们来看看 SGI Origin 2000 108 的互连网络。图 3.10 所示的 Origin 2000 系统于 1997 年首次发布。Origin 2000 支持多达 512 个节点,每个节点上有 2 个 MIPS R10000 197 处理器。由于它是共享存储器多处理机,网络必须同时满足低延迟和高吞吐率的要求。

图 3.10 SGI Origin 服务器。图中为单机柜(16 处理器)和桌边型(8 处理器)配置。

通过考察这台机器的网络,我们将看到把互连网络映射到封装层次时涉及的许多问题,还将探索用一组固定组件构建互连网络、同时支持从几个节点到数百个节点的可扩展机器规模的问题。

Origin 2000 网络基于 SGI SPIDER 路由芯片 69。SPIDER 芯片提供 6 条双向网络通道,每条通道宽 20 比特、工作于 400 MHz,通道带宽 6.4 Gbits/s。于是网络的每个节点有六条 6.4 Gbits/s 链路,节点总带宽 38.4 Gbits/s。所有这些通道都可以跨背板驱动,其中三条通道的物理接口能驱动长达五米的电缆。

图 3.11 展示了 Origin 2000 的网络拓扑如何随节点数增加而变化。在所有配置中,网络都把 2 个处理节点(4 个处理器)挂接到每台终端路由器上。⁵ 这些终端连接用掉路由器 6 条通道中的 2 条,剩下 4 条用于连接其他路由器。路由器数不超过 16(32 节点、64 处理器)的系统配置为二进制 n 立方体,每台路由器在至多 4 个维度上连接相邻路由器,如图 3.11(a) 所示。如果 4 个维度没有全部使用(例如在 8 路由器系统中),未用的通道可以跨机器连接以减小网络直径。

⁵ 这是汇聚(concentration)的一个例子,我们将在 7.1.1 节讨论。
图 3.11 对不超过 16 台路由器(R)(32 个节点 N)的情形,Origin 2000 采用二进制 n 立方体拓扑(n ≤ 4)。(a) 8 路由器(16 节点)机器为二进制 3 立方体拓扑;(b) 16 路由器(32 节点)机器为二进制 4 立方体拓扑。

超过 16 台路由器的机器用层次化网络实现,如图 3.12 所示。这些更大的配置由 8 路由器(16 节点、32 处理器)的本地子网络组成,每个本地子网络配置为二进制 3 立方体,每个节点留出一条通道。然后用 8 个仅由路由器构成的全局子网络把各 8 路由器子网络连接起来。对有 2n2^n2n 台路由器的机器,每个全局网络是 m = n − 3 维的二进制立方体。例如,最大的 256 路由器(512 节点、1024 处理器)配置用 8 个 32 节点二进制 5 立方体作为全局子网络。本地子网络 j 中路由器 i 的空余通道,连接到全局子网络 i 的路由器 j。对 32 节点机器(n = 5)这一特例,每个 4 端口全局子网络用单片路由器芯片实现。这种结构实际上就是一个 Clos 网络(见 6.3 节),其中各个交换机由二进制 n 立方体构成。

图 3.12 超过 32 个节点的 Origin 2000 机器采用层次化拓扑:8 路由器(16 节点)的二进制 3 立方体子网络,经每节点 1 条链路连接到 8 个中央二进制 n 立方体(n ≤ 5)网络。图中是一台 128 节点机器,8 个本地子网络连接到 8 个二进制 3 立方体全局子网络。

Origin 2000 按电路板、模块和机柜的层次封装,如图 3.13 所示。每个节点(2 个处理器)封装在一块 16 英寸 × 11 英寸的电路板上,每个路由器芯片也封装在单独的电路板上。4 块节点板(8 个处理器)和 2 块路由器板装在一个机箱内,由一块中板(midplane)连接。每个机箱的剩余空间用于 I/O 子系统。每个机柜放两个机箱(四台路由器),一个系统最多可有 64 个机柜(256 台路由器)。在大型系统中,用额外的纯路由器机柜来实现全局子网络。

图 3.13 4 路由器(16 处理器)Origin 2000 系统的封装。(经许可转载 Laudon/Lenoski ISCA '97 © 1997 ACM, Inc.)

每块路由器板的 6 条通道中,2 条经中板连接 4 块节点板中的 2 块,1 条连接中板上的另一台路由器,其余 3 条引到背板连接器,用于连接其他机箱。每台路由器的这些背板连接中:一条连接同机柜的另一个机箱,第二条连接本地子网中的第二个机柜,第三条连接到全局子网络,或(在 16 路由器、4 机柜系统中)连接到第二对机柜。

表 3.4 展示了在"完全用 6 端口路由器构建网络"的约束下,这种层次化拓扑如何满足共享存储器多处理机的要求。如式 (3.11) 所示,零负载延迟随平均跳数和距离增长(二者都随直径增长),而串行化延迟(式 3.10)由路由器通道的 20 比特宽度固定。为保持低延迟,Origin 2000 采用的拓扑使直径------从而跳数------随机器规模对数增长。采用层次化网络,使设计者在超出 4 度(2 个端口被节点占用)二进制 n 立方体可实现的机器规模之后,仍能延续对数缩放。延迟的精确计算留作习题 3.8。

Origin 2000 拓扑满足共享存储器多处理机的带宽要求:随着机器规模扩大,每节点的对分带宽保持不变。对每种机器配置,机器的一个对分切开 N 条通道,其中 N 是路由器数(每个方向 N/2)。对小型机器,二进制 n 立方体网络有 2n2^n2n 台路由器和 2n2^n2n 条穿越对分的通道(每个方向 2n−12^{n-1}2n−1 条)。对大型机器,每个节点有一条到全局子网络的通道,每个全局子网络的对分带宽等于其输入带宽。

表 3.4 Origin 2000 网络随节点数变化的配置与性能。

规模(节点) 拓扑 机箱数 直径 BCB_CBC
4 二进制 1 立方体 1 3 2
8 二进制 2 立方体 2 4 4
16 二进制 3 立方体 4 5 8
32 二进制 4 立方体 8 6 16
64 4 个 3 立方体 × 8 个 4×4 交换 16 7 32
128 8 个 3 立方体 × 8 个 3 立方体 32 9 64
256 16 个 3 立方体 × 8 个 4 立方体 64 10 128
512 32 个 3 立方体 × 8 个 5 立方体 128 11 256

3.6 文献注记

虽然本书接下来的几章聚焦于两种最常见的互连网络,但还有若干值得注意的拓扑。立方体连接环 (cube-connected cycles)153 保持了超立方体网络的低跳数(直径),但节点度为常数。胖树 (fat tree)113 已被证明是一种通用网络拓扑,因为它能在多对数时间内仿真任何其他拓扑的行为。Connection Machine CM-5 的网络使用了 4 元胖树 114(见 10.6 节)。Cayley 图 7 是一族涵盖立方体连接环的拓扑,路由简单,且度低于同等规模的超立方体网络。

3.7 习题

3.1 环中的龙卷风流量。 考虑一个 8 节点环网,每个节点向环上相距 3 跳的节点发送流量,即节点 i 发往 i + 3 (mod 8)。每条通道带宽 1 Gbit/s,每个输入提供 512 Mbits/s 的流量。若采用最小路由,该网络的通道负载、理想吞吐率和加速比是多少?若允许非最小路由,且选择非最小路由的概率按其距离加权------分组以 5/8 的概率走 3 跳路由、以 3/8 的概率走 5 跳路由------请重新计算这些数值。

3.2 最坏情形通道负载界。 假设对分通道是负载最重的通道,且所有通道带宽相等为 b,推导最坏流量下最大通道负载的下界。

3.3 通道负载界的局限。 找出一个使式 (3.6) 给出的最大通道负载上界不紧致(not tight)的拓扑。你找到的拓扑是否需要非最小路由才能最优地平衡流量?解释你的答案。

3.4 对称拓扑下通道负载界的紧致性。 证明对任何边对称拓扑,式 (3.5) 和式 (3.6) 中的最大通道负载界等于最优负载。

3.5 通道带宽不对称时的吞吐率。 推导通道带宽不相等时网络理想吞吐率的表达式。如有必要,修改 γc\gamma_cγc 和 γmax\gamma_{max}γmax 的定义,使之与新的吞吐率表达式一致。

3.6 串行化延迟对拓扑选择的影响。 系统设计者需要构建一个连接 64 个处理器节点、分组延迟尽可能小的网络。为最小化成本,每台路由器与其对应处理器放在同一块芯片上(直接网络),每个处理器芯片为网络接口留出 128 个引脚。每个引脚带宽 2 Gbits/s,平均分组长度 L = 512 比特。路由器的跳延迟 trt_rtr = 15 ns。忽略线延迟(Tw=0T_w = 0Tw=0)。

(a) 设计者首先考虑全连接拓扑,即每个节点到其他每个节点都有专用通道。该网络的平均路由器延迟 TrminT_{rmin}Trmin 和串行化延迟 TsT_sTs 是多少?平均零负载消息延迟 T0T_0T0 是多少?

(b) 对环形拓扑重新计算各延迟。该环的 HminH_{min}Hmin 为 16(见 5.2.2 节)。

3.7 非随机流量下的延迟。 1.3.1 节描述的环面和环网在计算延迟时假设了随机流量,由此得出环的延迟性能更优的结论。是否存在某种流量模式使环面延迟更低?如果不存在,解释原因。为简单起见,假设环面节点 (i, j) 映射到环的节点 (4i + j)。(例如,环面 00 映射到环 0,环面 13 映射到环 7,依此类推。)

3.8 Origin 2000 的延迟。 Origin 2000(3.5 节)的每个机柜宽 19 英寸、高 72 英寸。假设机柜内所有电缆长 48 英寸,机柜间所有电缆必须走架空地板下布线,电缆中传播速度为 2×10⁸ m/s。再假设所有消息长 512 比特(16 个 32 位字)。分别计算配置为 16 节点和 512 节点的 Origin 2000 在均匀流量下的平均零负载消息延迟(含线延迟 TwT_wTw)。

3.9 部分随机布线对直径的改进。 随机拓扑------节点由通道随机连接------已知具有若干良好的图论性质,如小直径。其代价是封装和路由失去规则性,这使大多数纯随机网络不实用。然而,混合方法仍能在不牺牲封装便利的前提下实现随机化的部分好处 191。考虑图 3.14(a) 的网格网络,网络的左右两半分别封装在两个机柜中,同轴电缆(图中波浪线)连接两个机柜间对应的节点。

(a) 该网格网络的直径是多少?

(b) 如果电缆连接被随机置换(图 3.14(b) 展示了这样一种置换),网络直径会如何变化?在所有置换中,网络的最小和最大直径是多少?给出一个实现最小直径的置换。

图 3.14 16 节点网络跨 2 个机柜的封装:(a) 用同轴电缆构成网格拓扑;(b) 机柜间电缆随机置换。

3.10 胖树网络的性能。 图 3.15 展示了一个 16 节点、基数 2 的胖树拓扑。

(a) 假设所有通道带宽等于终端节点的注入和流出速率,该网络的容量是多少?

(b) 考虑该网络上的一种随机化路由方法:对每个分组,先从源向"上"路由到树顶(图中 8 个居中的小节点),沿途在两个可能的"上行"通道中随机选择,然后沿"下行"通道路由到目的地。对任意流量模式,用这个路由算法能达到的最大通道负载是多少?

图 3.15 16 节点、基数 2 的胖树。所有矩形节点都是交换节点。

3.11 立方体连接环拓扑的性能与封装。 图 3.16 的拓扑称为 3 阶立方体连接环。

(a) 该拓扑的通道对分 BCB_CBC 是多少?

(b) 若采用最小路由,最大跳数 HmaxH_{max}Hmax 是多少?平均跳数 HminH_{min}Hmin 是多少?

© 现在要在每节点 Wn=128W_n = 128Wn=128 个信号、背板 Ws=180W_s = 180Ws=180 的约束下封装该拓扑。假设分组长度 L = 200 比特,信号频率 800 MHz,并忽略线长。这些约束下的最大通道宽度 w 是多少?该网络是引脚受限还是对分带宽受限?要保证 75 ns 的零负载延迟,路由器延迟 trt_rtr 需要是多少?

图 3.16 3 阶立方体连接环。

3.12 性能的物理极限。 用简单的思路可以算出网络直径和封装后节点间物理距离的可实现界。首先,若使用基数 k 的交换机(出度 k),N 节点网络的最小可能直径是多少?然后假设每个节点体积为 V,什么样的三维封装形状给出最小的节点间最大距离?在节点数很大的假设下,这个距离是多少?

3.13 任意网络的容量。 编写程序,用式 (3.9) 的优化问题确定任意网络拓扑在均匀流量下的容量。程序输入就是对应拓扑的节点---弧关联矩阵,输出是网络容量。为简单起见,假设所有通道带宽相等,且所有节点的流出和注入速率也相等。最后,用如下优化问题的替代形式可能更简单:

minimizetsubject toAxd=fd∑d∈Nxd,c≤t对所有 c∈Cxd≥0对所有 d∈N∗\begin{aligned} \text{minimize} \quad & t \\ \text{subject to} \quad & Ax_d = f_d \\ & \sum_{d \in N} x_{d,c} \le t \quad \text{对所有 } c \in C \\ & x_d \ge 0 \quad \text{对所有 } d \in N^* \end{aligned}minimizesubject totAxd=fdd∈N∑xd,c≤t对所有 c∈Cxd≥0对所有 d∈N∗

通过引入额外变量 t,优化被表示为一个线性规划,可以用专门工具或 MATLAB 等软件包中的线性规划例程求解。


相关推荐
Eloudy2 小时前
全文 - 第 01 章 - Principles and Practices of Interconnection Networks
gpu·chiplet
Eloudy8 小时前
全文 - 第 08 章 - Principles and Practices of Interconnection Networks
gpu
Eloudy12 小时前
全文 - 第 02 章 - Principles and Practices of Interconnection Networks
gpu
Eloudy14 小时前
全文 - 第 06 章 - Principles and Practices of Interconnection Networks
gpu
Eloudy17 小时前
BookSim (1.0) 用户手册
gpu
论文复现现场2 天前
AutoDL、算家云与公有云 GPU 怎么选?环境复现、计费与断点恢复对比
pytorch·深度学习·云计算·gpu
Eloudy3 天前
全文 - Dissecting How Die Scaling Breaks GPU Fine-grained Scheduling
gpu·chiplet
Eloudy4 天前
BlackWell 双 计算 die 的 L2 一致性 cases
gpu·chiplet
Eloudy4 天前
全文 - version.A - AMBA CHI Chip-to-Chip(C2C)
java·开发语言·数据库·gpu·chiplet