分布式算法1基本算法课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《分布式算法1基本算法课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 算法 基本 课件
- 资源描述:
-
1、分布协同计算基础第二章: 分布式算法(1)张锡哲 副教授计算机应用技术研究所东北大学信息科学与工程学院 1.分布式算法概述 2. 形式化模型3.消息传递系统基本算法生成树上广播和敛播生成树的构造4.因果关系和时间5.选举算法6.容错一致性主要内容1. 分布式算法概述异步不能精确的知道事件发生的绝对时间,甚至相对时间有限的局部知识每个计算实体只知道它自己所获得的信息,只是全局情况的一个局部视图。 非确定性由于系统各组件执行速度的差异,执行通常具有不确定性故障各计算实体可能独立发生故障分布式算法具有更高的不确定性和行为独立性!分布式算法具有更高的不确定性和行为独立性!4分布式计算的困难处理器数目未
2、知网络拓扑结构未知不同位置上的独立输入几个程序立即运行,在不同的时间开始,以不同的速度运行处理器的不确定性不确定的消息传递次数不确定的消息顺序处理器和通信故障幸运的是,并不是每个算法都要面对所有这些不确定性!5不确定性和行为独立性行为很难理解:多处理器并行执行,算法存在多种不同表现。准确预测算法的行为是不可能的。否定结论、下界和不可能性结论增加复杂度分析:通信开销(消息数),故障单元和非故障单元的数量6分布式计算的特点从各种分布式情况中提取基本问题,给出形式化的数学模型设计解决问题的分布式算法。算法正确性证明证明不可能性结果和下限,给出问题如何才能可解的限制以及其求解代价。算法复杂度分析。7研
3、究分布式算法的方法2. 形式化模型消息传递系统模型消息传递系统模型消息传递系统模型由一组位于有向网络图节点位置的计算元素组成。表示为G(V,E),其中节点集V=p0, p1, , pn-1 代表进程的集合,边集E代表间的信道的集合。每个进程pi用整数1r标记与之相连的信道,其中r是pi的度。算法由各进程上的局部程序所组成。消息传递模型11221132p3p2p0p1进程和信道建模11inbuf2p1的局部变量outbuf1inbuf1outbuf2p2的局部变量粉色区域粉色区域(局部变量局部变量+ inbuf) 是进程的可访问状态是进程的可访问状态配置配置(Configuration)是一个向
4、量C=(q0,qn-1),其中qi是pi的一种状态。配置中outbuf向量的状态,表示在通信信道上传送的消息。配置是系统当前的快照: 进程状态 (局部变量 + 到来消息队列) +通信信道.12事件系统中发生的事情用事件模拟,考虑两种事件:计算事件(Computational event),表示为comp(i)表示进程pi的处理步骤,将pi的转移函数应用到它当前的可存取状态提交事件(delivery event),表示为del(i, j, m)代表将消息m从进程pi提交到进程pj进程和信道建模进程pi用状态机描述,包括:进程标识i状态集合Qi消息转移函数信道变量outbufil和inbufil
5、,l=1,2,r从进程p1 到进程p2 的每个信道包括以下两部分:p1的outbuf变量,p2的inbuf 变量Outbuf 对应物理信道, inbuf 对应接收消息队列14提交事件将消息m从进程pi提交到pj将消息从发送者的outbufs移到接受者的 inbufs中; 消息将在下一次处理时可用p1p2m3 m2 m1p1p2m3 m2 m1计算事件以进程旧的可存取状态开始 (局部变量+ 到来消息)将转移函数应用到进程的当前可存取状态,处理所有的到来消息以新的可存取状态结束,将inbufs清空,将新消息放入outbufs中计算事件cd e旧局部状态ab新局部状态执行执行是随事件而改变的配置序列
6、,其形式是: 配置, 事件,配置, 事件,配置, 初始配置中: 每个进程都处于初始状态,所有的inbufs都为空对于每个连续配置(config, event, config), 新旧配置不变,除非发生以下事件: 提交事件: 将指定消息从发送者的outbuf 传送到接收者的inbuf 中 计算事件: 将转移函数应用到指定进程的可存取状态上安全性分布式算法需要满足两类性质:安全性条件(safety condition)在算法每次执行的每次配置中,断言P为真活跃性条件(liveness condition)在算法每次执行的某些配置中,断言P为真满足全部所要求的安全性条件的序列,称为一个执行。如果某次
7、执性满足全部所要求的活跃性条件,则称该执行是合法的(admissible)。异步执行异步模型中,如果某次执行满足以下条件,称该执行是合法的:每条发送的消息都被提交每个进程都有无限的计算事件数执行段是如下格式的序列: 其中每个Ck是一个配置,每个 是一个事件执行是一个执行段 ,其中C0是初始配置。调度是执行中的事件序列,即 .如果局部程序是确定的,执行由初始配置C0和调度唯一确定,表示为exec(C0, ),322110CCCk,322110CCC123, 异步执行执行必须满足以下两个条件:如果 = del(i,j,m),那么m必定是ck-1中outbufil 的一个元素,其中l是信道pi, p
8、j中pi的标号。从ck-1到ck 的唯一改变是:在ck 中,m已从outbufil中移走并加入到inbufjh 中,其中h是信道pi,pj 中pj的标号。如果 =comp(i),那么从ck-1到ck的的唯一改变是:pi依照其转移函数来改变状态,转移函数对ck-1 中pi 的可存取状态进行操作,并将所确定的消息集合加入到ck 的outbufi变量中,这些消息在这一事件上称为被发送的。kk例子 : 洪泛算法将洪泛算法描述为状态机交互的集合.进程的局部状态包括变量color=redred,greengreen初始:p0: color = greengreen, 所有outbufs包含Mothers:
9、 color = redred, 所有的outbufs 为空转移函数: If M 在inbuf中并且 color = redred, 那么 令color= greengreen ,将M 发送至所有的outbufs例子: 洪泛算法(续)p1p0p2MMp1p0p2MMdeliver eventat p1 from p0computationevent by p1deliver eventat p2 from p1p1p0p2MMMMp1p0p2MMcomputationevent by p2例子: 洪泛算法(续)deliver eventat p1 from p2computationevent
10、 by p1deliver eventat p0 from p1etc. to deliverrest ofmsgsp1p0p2MMMMp1p0p2MMMMp1p0p2MMMp1p0p2MMM不确定性以上的执行不是洪泛算法在网络拓扑上的唯一合法执行合法执行有很多,依赖于消息提交的顺序例如, p0 的消息可能在p1 消息前到达p2终止性为了模拟进程不发生故障,定义合法的执行的计算事件是无限的这样算法终止性如何表示?每个进程的状态集包括一个终止状态子集,并且每个进程的转移函数将终止状态仅映射成终止状态。当所有进程处于终止状态并且没有消息在传送,称算法已终止。复杂性度量集中考虑最坏情况消息复杂度:
11、:算法所有合法的执行中最大的发送消息总数。时间复杂度: : 任意合法执行中终止所需的最大时间。异步系统的时间复杂度如何衡量?异步系统的时间复杂度 计时(timed)执行是指执行中每个事件关联一个非负的实数,即事件发生的时间。消息的延迟(delay ) ,是指在发送消息的计算事件和处理消息的计算事件之间流逝的时间。时间复杂度: :所有计时的、合法的执行中,当各消息延迟最多为1 时,在终止前的最大时间这一度量仍然允许事件的任意交替,可以看做是考虑了算法的任意执行,且进行了标准化,使最长的消息延迟变成一个单位的时间。洪泛算法的复杂度定义终止状态为color = greengreen的状态.消息复杂度
12、: 消息在每条边双向传递,故共需2m个消息,其中m 为 边的个数时间复杂度: 网络直径个时间单位同步消息传递系统在同步系统中,如果一个执行有无限“轮(round)”,则称它是合法的执行什么是“轮”?执行按论划分,每一轮中:各处理器可以发送消息给每个邻居,消息被提交;每个处理器基于刚刚接收到的消息进行计算。时间复杂度是在算法所有合法的执行中最大的终止前轮数。 同步模型的例子洪泛算法在同步系统中的执行第一轮:将M从p0提交到 p1将M从p0提交到 p2p0 does nothingp1 color=green,将M发送到 p0 and p2p2 color=green,将M发送到 p0 and p
13、1同步模型的例子第2轮:将M从p1提交到 p0将M从p2提交到 p0将M从p2提交到 p1将M从p1提交到 p2p0 does nothingp1 does nothingp2 does nothing同步模型的例子CPSC 668Set 1: Introduction33p1p0p2MMMMp1p0p2MMp1p0p2round 1 eventsround 2events同步洪泛算法的复杂度时间复杂度为diameter 消息复杂度为2m与异步算法相同.只是特例,并不是所有算法都相同35伪代码约定在形式模型中,一个算法将根据状态转换来描述。但实际上很少这样做,因为这样做难于理解。 实际描述算法
展开阅读全文