- 1、本文档共109页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行计算5
* K-Ary N-Cubes网络中高性能无死锁多播路由算法 微片结构 ? 数据包(消息)分成多个片,称为微片。微片分为头部微片和数据微片,下面描述微片的结构。将一个包分割成更小的、称为片(流控制位)的单位,并以流水方式跟随包的头息向目的结点移动。当头片由于网络拥堵而被阻塞时,其余的片也将同样被阻塞。 为了使得微片能够携带额外的确定它们归属的标识信息,微片的流动相互独立。通过(源地址,目的地址)对识别头部和数据微片。头部和数据微片定义如下: * K-Ary N-Cubes网络中高性能无死锁多播路由算法 源地址:指定生成微片的源结点,相同消息的所有微片都相同。 消息标识符:每一个处理器有一个消息计数器。在创建头部微片和数据微片时,源处理器给每一个新的消息分配消息标识符,消息标识符的值等于当前处理器中消息计数器的值。处理器对消息计数器加1。 头部微片和数据微片都携带一个(源地址,目的地址)对相同的公共内部头,和一个标识域。 标识域分为两部分,一部分为传输的在头部微片中的消息确认和确认的类型域,用3比特位r1,r2,r3指示微片是否在头部传播消息确认。 数据微片数:给定消息允许携带的数据微片的最大数L。 头部微片的目的地址:微片到达的目的地。 * K-Ary N-Cubes网络中高性能无死锁多播路由算法 标识符 意义 SA 源地址 MI 消息标识符 ID 标识域 SN 数据微片数 DA 目的地址 ACKED-DA 确认信息目的地址 ACKED-SA 确认信息源地址 ACKED-MI 确认信息标识域 ACKED-SN 确认信息序列号 Payload 有效负载 数据微片结构 (在数据微片域中目的地址不使用) * K-Ary N-Cubes网络中高性能无死锁多播路由算法 微片类型 s1,s2 的值 意义 00 头部微片 01 多播数据微片 10 单播数据微片 11 单播确认微片 r1,r2,r3 的值 意义 000 无确认 001 肯定流控制确认 010 否定流控制确认 011 否定确认 100 最终目的肯定确认 101 完成消息肯定确认 头部微片中r1,r2,r3的定义 * K-Ary N-Cubes网络中高性能无死锁多播路由算法 结点结构 结点基本的组成是处理器和路由器。结点的处理器通过内部输入信道向路由器发送CPU执行并行应用程序生成的新消息。处理器从抽取单元接收定位到自身的微片,抽取单元是处理器连接外部输入信道的接口。路由器提供连接所有输入信道(包括内部和外部)和所有外部输出信道的开关。 结点有两个源于其他结点的外部输出信道x-in和y-in,两个外部输出到其他结点的信道x-out和y-out。每个路由器的外部输入信道都与单微片输入缓冲队列x-in-buf 和 y-in-buf相连。 * K-Ary N-Cubes网络中高性能无死锁多播路由算法 对于一个3-Ary 2-Cube立方体网络需要一个3* 2的交叉开关,其中x-in、y-in、内部输入信道三个输入和两个输出。 在x-in-buf 和y-in-buf中的微片可能需要被并发地转换到x-out队列或y-out队列中去。连接开关与这两个队列外部路由器必须能够同时携带两个微片。与HTA算法不同的是结点的输出缓冲的容量一定要比一个微片大。MRIFF算法不在消息被传播之前为之保留资源,这就导致一个结点的输出连接出现多个微片。通过缓冲和由于缓冲拥塞导致的微片传播丢失来解决。 CPU生成新的消息保存在处理器的新消息队列中,被发送到单微片输入缓冲中,在随后的时钟周期周而复始地一个微片接一个微片送到单微片输入缓冲中。 * K-Ary N-Cubes网络中高性能无死锁多播路由算法 算法重传播网络上丢失的消息。重传机制是基于丢掉微片的结点发送的否定确认(NACK)。这样,只要微片被传播到输入缓冲,它们就不会被立即从新消息队列中删除。只要结点接收了之前传播的微片的NACK,那个微片的一个备份就被存放在重传队列中。重传队列比新消息队列拥有更高的服务优先级。当一个微片一定要被插入到输入缓冲时,重传队列首先被检查,然后只要重传队列和数据微片队列都不空,微片就被从那个新消息队列中取出并存放在重传队列中。如果不考虑它在缓冲中的位置,那么就需要未被确认微片缓冲。 * K-Ary N-Cubes网络中高性能无死锁多播路由算法 去往本地CPU的消息也被微片接收,并被存放在CPU中一个叫做接收器信道里。每一个接收器信道一定要能够存放L个数据微片。当所有的数据微片都被接收时,接收器信道中的消息被重新集合,消息被重组。此时,接
文档评论(0)