TREESCOPE: 针对Fat-tree网络的通信拥堵交互式研究 (Interactive Investigation of Traffic Congestion on Fat-Tree Networks Using TREESCOPE)

近年来,在超级计算机上进行的高性能计算受到了广泛的关注和应用。超级计算机包含成百上千的计算结点,这些计算结点通过一些遵循某些拓扑结构的网络相连。但是,在高性能计算平台上开展的大规模应用时,一个主要的瓶颈是与结点互连网络相关的性能下降。造成这一瓶颈往往是由于不当的网络路由方案或者任务在结点上的布置策略导致的。因此,找出并诊断网络问题变得非常关键。为了研究网络中的通信拥堵,来自于EuroVis 2018的一篇文章[1]设计了一种基于Web的交互可视化工具,称为TreeScope,使用基于矩阵的图编码方式来探索网络通信流量并研究任务布置和路由方案的影响。

图1 胖树网络拓扑结构示例

该工作针对的是胖树网络拓扑结构,特别是三级胖树网络。这种网络结构主要由三种转换器构成,分别是L1,L2和L3转换器。如图1所示,假设每个转换器有k个接口,那么每个L1转换器结点的一半接口与k/2个L0计算结点相连,另一半接口与k/2个L2转换器结点相连。L1与L2之间形成了一个完全连通的二部图,并组成了一个称为pod的结构。Pod全部连接到L3转换器结点,这些L3转换器结点来自于不同的组(称为bundle)。每个bundle内的L3转换器结点与每个pod里的部分L2转换器结点相连接。对于这样的胖树网络,其一共支持k个pod,k^2/2个L1转换器结点,k^2/2个L2转换器结点,k^2/4个L3转换器结点,以及k^3/4个L0计算结点。

TreeScope的设计遵循了Tamara Munzner提出的包含四个阶段的嵌套模型[2]。这四个阶段分别是领域问题描述,数据/操作抽象设计,编码/交互技术设计,以及算法设计。这个工作忽略了最后的算法设计,主要介绍前三个阶段。

图2 经过讨论后制定的数据和任务分类

在第一个阶段,通过与领域专家长时间的讨论,作者了解到领域专家最关注的是找到可能的性能瓶颈并提高网络吞吐量。因此,他们制定了一系列可视化设计应该支持的数据和任务列表。这些数据和任务对应了三类探索内容,即网络流量,作业执行和流量路由。如图2所示,每类都包含一些可以收集的数据和领域专家感兴趣的可视化任务。第二个阶段将这些需求抽象为可视化元素,以帮助专家以可视分析的方法发现网络拥堵的存在和原因。每个任务都对应着一个可视化视图或者交互操作。这个在接下来的第三个阶段的可视化和交互设计里进行介绍。

图3 TreeScope主界面,包含(a)参数面板,(b)统计视图,(c)基于矩阵图编码的主视图

图3是TreeScope的界面,主要由参数面板,统计视图,以及基于矩阵的图编码视图组成。

图4 使用基于矩阵的图编码形式的主视图

TreeScope的主视图使用了基于矩阵的图编码形式。两种转换器之间的互连通过一个邻接矩阵进行可视化。图4给出了一个pod可视化的例子。在该视图中,由于L0计算结点是通过专有链接连到L1转换器上,TreeScope的设计忽略了这些计算结点。图中长条表示转换器,矩阵单元表示两个转换器之间的链接。由于链接是双向的,L2在水平位置上进行了复制,分别表示向上的和向下的链接。Pod被bundle所划分,图中分别展示了左右两个bundle。在每个bundle中,分别有一个邻接矩阵将L1和L2,以及L2和L3互连。

图5 任务到L1转换器映射的可视化形式

除了基于矩阵的主视图,TreeScope还将任务到L1的映射进行了可视化。如图5所示,在主视图上表示L1转换器的长条上,作者使用了堆叠直方图形式来表示不同的任务。每个堆叠的部分表示一个任务,其长度是根据该任务占用的与对应L1转换器连接的L0计算结点的数量比例得到的,并使用不同的颜色进行展示。

TreeScope的探索对应了前面设计过程中提到的可视化任务。首先是对网络流量的探索。TreeScope提供了一种时间图来展示网络中所有链接在每个时间步的最大或者平均的流量,以展示其时间统计特征。另外,它还使用直方图展示了每个链接上的所有流量,如图3(b)所示。用户可以在这两个统计视图上通过选择范围来过滤感兴趣的地方。对于胖树网络的可视化,如图3(c)所示,TreeScope使用矩阵主视图来展示每个转换器和链接上的流量。这里面,对于由矩阵单元表示的每条链接,其流量被聚集起来并以热度图的方式进行展示;对于由长条表示的每个转换器,其展示了最大的流量。

图6 一对转换器之间的网络路由

第二种探索是任务执行。通过转换展示模式,用户可以将视图从流量可视化转换到任务映射,L1长条上会显示这些任务的堆叠直方图。当需要对一个任务执行时期的流量进行可视化时,整个界面的视图会根据该任务的执行时间段进行更新。第三种探索是流量路由。如图6所示,TreeScope可以展示选中的任务所经过的转换器和链接,以展示其footprint,还可以根据选择的源/目的地转换器,将其之间的路由进行高亮。

图7 案例一:分别使用ftree(左)和SAR(右)路由方案运行同一个任务的结果

图8 案例一:过滤热点链接后的结果(左为ftree,右为SAR)

作者使用了两个案例来证明TreeScope的实用性。第一个是不同路由方案的比较。这个实验分别使用ftree路由方法和SAR路由方法运行同一个任务。从图7的结果中,我们可以看到ftree方案将网络流量分布得更加均衡。对于SAR方案,其链接上最大的流量明显高于ftree,这也导致了使用SAR路由方案的程序性能比使用ftree的低了17%。为了探索性能出现差异的原因,我们对链接进行过滤,找出流量非常大的热点链接。从图8的结果中可以看到,与ftree相比,使用SAR路由方案明显产生了更多的热点链接,特别是L1->L2的链接,这是造成网络拥堵以及最后性能下降的直接原因。

图9 案例二:运行多个任务的结果。通过查看热点链接可定位到Qbox任务

图10 案例二:改变任务映射策略后的结果。网络拥堵得到了明显改善

第二个案例是通过TreeScope来优化应用程序的性能。这个实验同时运行了多个任务,这些任务共享网络资源。图9展示了胖树网络的可视化结果。通过手动查看由不同工作造成的热点,我们可以发现有一个工作Qbox,制造了大多数负载很重的链接,并且被分配了跨越所有pod的大量的结点。随后,专家们改变了任务映射的策略,新的策略将任务映射到同一个pod里的结点上。如图10所示,结果表明,相比于原来的方案,新的任务映射策略中很少有链接过载,因而网络拥堵问题得到了很大的改善。

总的来说,这个工作充分遵循了一个可视分析方法的设计流程,虽然其可视化部分并没有非常大的亮点,但是对问题的定义非常清楚,数据和任务非常明确,其贡献也非常容易理解,因而是一个非常完整的工作。我们自己在针对一个问题设计一个可视分析方法或系统时,应该从这种模式中得到启发,明确知道自己每一步该干什么。

Reference

[1] H. Bhatia, N. Jain, A. Bhatele, Y. Livnat, J. Domke, V. Pascucci, and P.-T. Bremer. Interactive Investigation of Traffic Congestion on Fat-Tree Networks Using TREESCOPE. Computer Graphics Forum, 37(3):-, 2018.

[2] Tamara Munzner. A nested model for visualization design and validation. IEEE Trans. on Vis. and Comp. Graph., 15(6):921-928, 2009.

评论关闭。