分布式系统几种典型一致性算法概述.docxVIP

分布式系统几种典型一致性算法概述.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分布式系统几种典型一致性算法概述

对三种典型分布式任务分配算法的分析在分布式系统中非同居模块间的数据传递产生处理机间的通信, 这种机间通信可能使得增加处理机数目反而会引起系统吞吐量的降低, 即产生“饱和效应”。为降低饱和效应, 人们倾向于把模块分配到尽可能少的处理机上, 但这又导致系统负载不平衡, 从而降低了系统的吞吐量。显然, 这是任务分配中相互冲突的两个方面, 不同的任务分配算法试图用不同的策略来平衡这两个方面。传统的分布式任务分配算法大致可分为三类: 基于图论的分配算法, 整数规划方法和试探法。这三类算法并非互斥的, 一类算法中往往可以借鉴其它方法中的某些技术。下面, 我们先对这三类典型算法进行分析和比较, 然后给出一种试探法的改进算法。在讨论中, 我们假定提交的任务已分解成一组模块并使模块间的通信量尽可能小。还假定分配模式为: 一任务被分解成m个模块T= { t1 , t2 , …, tm } , 系统中有n个可利用的处理机P= { p1 , p2 , …, pn}。任务分配的目的就是将这m个模块分配到n个处理机上, 使预期的性能目标函数值最小。1 对三种典型算法的分析1. 1 基于图论的分配算法基本思想是给定矩阵Cmxm表示模块间的通信开销:C= { ci, j|1≤i≤m 1≤j≤m ci, j为ti与tj间的通信量}给定矩阵Qmx n表示模块的执行开销:Q= { qi, j|1≤i≤m 1≤j≤n qi, j为ti在pj上的执行开销}将模块t1 , t2 ,…, tm作为图中结点,若两模块间有数据传递,则相应结点间有一条无向边,1996-04-26收稿 * 软件工程国家重点实验室开放基金部分资助。何炎祥, 教授, 研究方向: 分布式OS与分布信息处理, 并行程序设计与编译系统。罗先林、吴思,研究生, 研究方向: 分布式OS与分布信息处理。边上的权wi, j= ci, j; 处理机p1 , p2 , …, pn也作为图中结点, 若qi, k≠∞, 则在ti与pk间有一条边, 定义该边上的权为wi, k=1n- 1Σj≠kqi, jn-2n- 1ci, k。于是, 可将该图视为一个网络, 并定义n度割集为将网络中各个结点分割成n个不相交的子集, 使得每个子集中有且仅有一个处理机结点。可以证明, 每个切口的开销正好是执行开销和通信开销之和, 因此, 在图上执行MaxFlow /MinCut算法, 就可得到任务的最优分配方案[1 ]。在现阶段, 仅有多项式复杂度n=2的MaxFlow /MinCut算法, 因此, 基于图论的分配算法仅限于在处理机数目小于3的环境中使用, 因而局限性较大。Lo 在[1 ]中提出了一种改进算法。该算法分为迭代、汇总和贪心三个阶段。在第一阶段的每一轮迭代中, 依次考虑每个结点p1 , p2 , …, pn, 把pj和pj=P- { pj}作为两个独立的结点,并将所有到P- { pj}的边用一个到pj的边代替, 该边上的权为所有到P- { pj}的边上的权之和。利用Max Flow /MinCut算法, 可得到分配给pj的模块的一个子集。删去在此轮迭代中已分配给pj的那些模块结点, 并定义未删除的模块tj与处理机pk间的权为qi, k = qi, j+ Σtj为已分配给p-k的某个处理机的模块ci, j若所有的模块结点已分配完, 或在最后一轮迭代中没有模块分配给某个处理机, 则迭代阶段结束。Lo证明了迭代的终止性及若此时模块分配完则将获得最优解。在汇总阶段, 首先计算一个优化的n度割集的下界L = Σtj∈T′mink( qi, k ) + minj≠rc(pj, pr)其中, c( pj, pr)为任意选择的处理机间最小切口的开销, T′为所有第一阶段中没有分配的模块的集合。然后, 检查将剩余模块指派到某个处理机上是否更合适, 若是,则算法结束, 也得到一个最优解。否则进入贪心阶段。将相互通信开销大的模块汇集成簇, 同一簇中的模块分配到同一个处理机上, 这样得到的结果是次最优的。这个改进算法解决了基本算法在处理机数目上的限制。为使此算法更能反映真实情况,Lo 还考虑了每个处理机上可利用资源的限制和同居模块间的通信开销, 并引入了冲突开销的因素。此外, Lo 提出了一种限制各处理机上模块数的方法, 其基本思想是: 若m 2n, 则先进行合一, 并保证合一后的簇中模块数目不超过[B /2 ] ( B为一处理机上最大允许的模块数)。重复这种合一过程, 直至模块簇数目m′≤2n, 然后再用适当算法将m′个模块簇按最小执行开销分配到n个处理机上。这个改进算法利用了试探法中对模块进行合一的思想, 并直接利用了现有的网络算法,因此实现较简单, 但算法开销大, 因为Max Flow /MinCut算法的时间复杂度为O( a2 log2+ a

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档