- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二部分 分布式算法 第三次课 中国科学技术大学计算机系 国家高性能计算中心(合肥) §2.2.2 convergecast(汇集,敛播) 与广播问题相反,汇集是从所有结点收集信息至根。为简单起见,先考虑一个特殊的变种问题: 假定每个pi开始时有一初值xi,我们希望将这些值中最大者发送至根pr。 §2.2.2 convergecast(汇集,敛播) 算法 每个叶子结点pi发送xi至双亲。//启动者 对每个非叶结点pj,设pj有k个孩子pi1,…,pik,pj等待k个孩子的msg vi1,vi2,…,vik,当pj收到所有孩子的msg之后将vj=max{xj,vi1,…,vik}发送到pj的双亲。 换言之:叶子先启动,每个处理器pi计算以自己为根的子树里的最大值vi,将vi发送给pi的双亲。 复杂性 Th2.5 当生成树高为d时,存在一个异步的敛播方法,其msg复杂性为n-1,时间复杂度为d。(与Th2.2相同) 广播和敛播算法用途:初始化某一信息请求(广播发布),然后用敛播响应信息至根。 §2.3 构造生成树 上节算法均假设通信网的生成树已知。本节介绍生成树的构造问题。 1.Flooding算法(淹没) §2.3 构造生成树 msg复杂性 因为每个结点在任一信道上发送M不会多于1次,所以每个信道上M至多被发送两次(使用该信道的每个处理器各1次)。 在最坏情况下:M除第1次接收的那些信道外,所有其他信道上M被传送2次。因此,有可能要发送2m-(n-1)个msgs。这里m是系统中信道总数,它可能多达n(n-1)/2。 时间复杂性:O(D) D—网直径 2.构造生成树 对于flooding稍事修改即可得到求生成树的方法。 §2.3 构造生成树 ①基本思想 首先,pr发送M给所有邻居,pr为根 当pi从某邻居pj收到的M是第1个来自邻居的msg时,pj是pi的双亲;若pi首次收到的M同时来自多个邻居,则用一个comp事件处理自上一comp事件以来的所有已收到的msgs,故此时,pi可在这些邻居中任选一个邻居pj做双亲。 当pi确定双亲是pj时,发送parent给pj,并向此后收到发来M的处理器发送rejectmsg §2.3 构造生成树 ①基本思想 因为pi收到pj的M是第1个M,就不可能已收到其他结点的M,当然可能同时收到(说明pi与这些邻居间不是父子关系,或说它们不是生成树中的边);同时pi将M转发给其余邻居,这些邻居尚未发M给pi,或虽然已发M给pi,但pi尚未收到。 pi向那些尚未发M给pi(或已发M但尚未到达pi)的邻居转发M之后,等待这些邻居发回响应msg:parent或reject。那些回应parent的邻居是pi的孩子。 当pi发出M的所有接收者均已回应(parent或reject),则pi终止。将parent和children边保留即为生成树。 §2.3 构造生成树 ②图示 pi若认为pj是其双亲,则pi向pr发出M,而pr仍会向pi发reject,但因为此前pr向pi发出过M,故pi收到M时仍会向pr发reject。(可以改进?) §2.3 构造生成树 ③算法: Alg2.2 构造生成树(code for pi 0≤i≤n-1) 初值:parent=nil;集合children和other均为φ upon receiving no message: if i=r and parent=nil then { //根尚未发送M send M to all neighbors; parent:=i;} //根的双亲置为自己 upon receiving M from neighbor pj: if parent=nil then {//pi此前未收到过M,M是pi收到的第1个msg parent:=j; send parent to pj; //pj是pi的双亲 send M to all neighbors except pj; }else //pj不可能是pi的双亲,pi收到的M不是第1个msg sendreject to pj; upon receiving parent from neighbor pj: children:=children∪{ j }; //pj是pi的孩子,将j加入孩子集 if children∪other 包含了除parent外的所有邻居 then terminate; upon receiving reject from neighbor pj: other:=other∪
您可能关注的文档
- 10.3建设工程合同的履行.ppt
- 10.建设中国特色社会主义文化-安徽医科大学教学质量与教学改革工程.ppt
- 100年3月份山猪窟环境品质监测工作进度计画表-康城工程顾问股份.doc
- 100年7月国际消费者保护趋势资讯摘要表.doc
- 100年增进全民健康保险医疗资源不足地区之医院点值保障方案壹.PDF
- 100年度健康职场、社区健康营造计画暨第5届金-卫生福利部国民健康署.doc
- 100年度竹塘乡立图书馆暑期艺文活动-竹塘乡公所.doc
- 10170545夏嘉玲自我介绍-育秀实验学校.ppt
- 102年度企业职场利益整合协商辅导计画.doc
- 102年度新故乡社区营造第二期计画-高雄市社区营造中心.doc
文档评论(0)