Interconnection Networks。当一个数据包到达交换机时,交换机根据 最短路径路由MIN 和 非最短路径的路由VAL 的 路径上所有交换机队列的排队长度的和,来选择路由。
因为要获取到全局网络状态信息太难了,所以提出了一系列变种,在Dragonfly中有如下若干种实现方式:
UGAL-G:只根据发送节点所在的Group的所有交换机的队列排队长度来进行判断。但是要实现这个依然很难,也是一个非常理想的情况。 UGAL-L:只根据本地交换机的队列排队长度来进行判断,这种方式会产生一个问题:当在源Group中进行路由时,如果最短路径和非最短路径都要经过源Group中另一个交换机时,此时这两条路径的出口队列一致,因此总是会选择最短路径。 UGAL-LVC:针对UGAL-L的问题进行了一点改进:将最短路径和非最短路径分为两个VC,分别排队来计算长度。但是这样又会导致数据包更偏向选择非最短路由,导致在均匀流量模式下性能不好。 UGAL-LVC_H:针对UGAL-LVC的问题又进行了一点改进:只有在MIN和VAL的输出端口不一样的时候,才用VC的队列长度来进行判断,否则还是直接使用队列长度来判断。 UGAL-LCR:由于只用本地信息来判断拥塞,在buffer越大时反而造成的延迟越大,因为buffer被填满了之后,上游的交换机才能通过没有credit了感知到。为了克服这个问题,可以通过当前拥塞情况主动增加credit的返回延迟,上游交换机认为返回credit越快的交换机拥塞程度越小。
死锁避免
在Dragonfly中,形成环路的概率要高很多。因此,如果使用最短路由,需要2个VC来避免死锁;如果使用非最短路由,需要3个VC来避免死锁。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




