分布式算法-基本算法.ppt
《分布式算法-基本算法.ppt》由会员分享,可在线阅读,更多相关《分布式算法-基本算法.ppt(60页珍藏版)》请在三一办公上搜索。
1、课程网站,分布协同计算基础,第二章:分布式算法(1)张锡哲 副教授计算机应用技术研究所东北大学信息科学与工程学院,1.分布式算法概述 2.形式化模型3.消息传递系统基本算法生成树上广播和敛播生成树的构造4.因果关系和时间5.选举算法6.容错一致性,主要内容,1.分布式算法概述,异步不能精确的知道事件发生的绝对时间,甚至相对时间有限的局部知识每个计算实体只知道它自己所获得的信息,只是全局情况的一个局部视图。非确定性由于系统各组件执行速度的差异,执行通常具有不确定性故障各计算实体可能独立发生故障分布式算法具有更高的不确定性和行为独立性!,5,分布式计算的困难,处理器数目未知网络拓扑结构未知不同位置
2、上的独立输入几个程序立即运行,在不同的时间开始,以不同的速度运行处理器的不确定性不确定的消息传递次数不确定的消息顺序处理器和通信故障幸运的是,并不是每个算法都要面对所有这些不确定性!,6,不确定性和行为独立性,行为很难理解:多处理器并行执行,算法存在多种不同表现。准确预测算法的行为是不可能的。否定结论、下界和不可能性结论增加复杂度分析:通信开销(消息数),故障单元和非故障单元的数量,7,分布式计算的特点,从各种分布式情况中提取基本问题,给出形式化的数学模型设计解决问题的分布式算法。算法正确性证明证明不可能性结果和下限,给出问题如何才能可解的限制以及其求解代价。算法复杂度分析。,8,研究分布式算
3、法的方法,2.形式化模型,消息传递系统模型,消息传递系统模型由一组位于有向网络图节点位置的计算元素组成。表示为G(V,E),其中节点集V=p0,p1,pn-1 代表进程的集合,边集E代表间的信道的集合。每个进程pi用整数1r标记与之相连的信道,其中r是pi的度。算法由各进程上的局部程序所组成。,消息传递模型,1,1,2,2,1,1,3,2,p3,p2,p0,p1,进程和信道建模,12,粉色区域(局部变量+inbuf)是进程的可访问状态,配置,配置(Configuration)是一个向量C=(q0,qn-1),其中qi是pi的一种状态。配置中outbuf向量的状态,表示在通信信道上传送的消息。配
4、置是系统当前的快照:进程状态(局部变量+到来消息队列)+通信信道.,13,事件,系统中发生的事情用事件模拟,考虑两种事件:计算事件(Computational event),表示为comp(i)表示进程pi的处理步骤,将pi的转移函数应用到它当前的可存取状态提交事件(delivery event),表示为del(i,j,m)代表将消息m从进程pi提交到进程pj,进程和信道建模,进程pi用状态机描述,包括:进程标识i状态集合Qi消息转移函数信道变量outbufil和inbufil,l=1,2,r从进程p1 到进程p2 的每个信道包括以下两部分:p1的outbuf变量,p2的inbuf 变量Out
5、buf 对应物理信道,inbuf 对应接收消息队列,15,提交事件,将消息m从进程pi提交到pj将消息从发送者的outbufs移到接受者的 inbufs中;消息将在下一次处理时可用,p1,p2,m3 m2 m1,计算事件,以进程旧的可存取状态开始(局部变量+到来消息)将转移函数应用到进程的当前可存取状态,处理所有的到来消息以新的可存取状态结束,将inbufs清空,将新消息放入outbufs中,计算事件,c,d e,旧局部状态,ab,新局部状态,执行,执行是随事件而改变的配置序列,其形式是:配置,事件,配置,事件,配置,初始配置中:每个进程都处于初始状态,所有的inbufs都为空对于每个连续配置
6、(config,event,config),新旧配置不变,除非发生以下事件:提交事件:将指定消息从发送者的outbuf 传送到接收者的inbuf 中 计算事件:将转移函数应用到指定进程的可存取状态上,安全性,分布式算法需要满足两类性质:安全性条件(safety condition)在算法每次执行的每次配置中,断言P为真活跃性条件(liveness condition)在算法每次执行的某些配置中,断言P为真满足全部所要求的安全性条件的序列,称为一个执行。如果某次执性满足全部所要求的活跃性条件,则称该执行是合法的(admissible)。,异步执行,异步模型中,如果某次执行满足以下条件,称该执行是
7、合法的:每条发送的消息都被提交每个进程都有无限的计算事件数执行段是如下格式的序列:其中每个Ck是一个配置,每个 是一个事件执行是一个执行段,其中C0是初始配置。调度是执行中的事件序列,即.如果局部程序是确定的,执行由初始配置C0和调度唯一确定,表示为exec(C0,),异步执行,执行必须满足以下两个条件:如果=del(i,j,m),那么m必定是ck-1中outbufil 的一个元素,其中l是信道pi,pj中pi的标号。从ck-1到ck 的唯一改变是:在ck 中,m已从outbufil中移走并加入到inbufjh 中,其中h是信道pi,pj 中pj的标号。如果=comp(i),那么从ck-1到c
8、k的的唯一改变是:pi依照其转移函数来改变状态,转移函数对ck-1 中pi 的可存取状态进行操作,并将所确定的消息集合加入到ck 的outbufi变量中,这些消息在这一事件上称为被发送的。,例子:洪泛算法,将洪泛算法描述为状态机交互的集合.进程的局部状态包括变量color=red,green初始:p0:color=green,所有outbufs包含Mothers:color=red,所有的outbufs 为空转移函数:If M 在inbuf中并且 color=red,那么 令color=green,将M 发送至所有的outbufs,例子:洪泛算法(续),例子:洪泛算法(续),不确定性,以上的执
9、行不是洪泛算法在网络拓扑上的唯一合法执行合法执行有很多,依赖于消息提交的顺序例如,p0 的消息可能在p1 消息前到达p2,终止性,为了模拟进程不发生故障,定义合法的执行的计算事件是无限的这样算法终止性如何表示?每个进程的状态集包括一个终止状态子集,并且每个进程的转移函数将终止状态仅映射成终止状态。当所有进程处于终止状态并且没有消息在传送,称算法已终止。,复杂性度量,集中考虑最坏情况消息复杂度:算法所有合法的执行中最大的发送消息总数。时间复杂度:任意合法执行中终止所需的最大时间。异步系统的时间复杂度如何衡量?,异步系统的时间复杂度,计时(timed)执行是指执行中每个事件关联一个非负的实数,即事
10、件发生的时间。消息的延迟(delay),是指在发送消息的计算事件和处理消息的计算事件之间流逝的时间。时间复杂度:所有计时的、合法的执行中,当各消息延迟最多为1 时,在终止前的最大时间这一度量仍然允许事件的任意交替,可以看做是考虑了算法的任意执行,且进行了标准化,使最长的消息延迟变成一个单位的时间。,洪泛算法的复杂度,定义终止状态为color=green的状态.消息复杂度:消息在每条边双向传递,故共需2m个消息,其中m 为 边的个数时间复杂度:网络直径个时间单位,同步消息传递系统,在同步系统中,如果一个执行有无限“轮(round)”,则称它是合法的执行什么是“轮”?执行按论划分,每一轮中:各处理
11、器可以发送消息给每个邻居,消息被提交;每个处理器基于刚刚接收到的消息进行计算。时间复杂度是在算法所有合法的执行中最大的终止前轮数。,同步模型的例子,洪泛算法在同步系统中的执行第一轮:将M从p0提交到 p1将M从p0提交到 p2p0 does nothingp1 color=green,将M发送到 p0 and p2p2 color=green,将M发送到 p0 and p1,同步模型的例子,第2轮:将M从p1提交到 p0将M从p2提交到 p0将M从p2提交到 p1将M从p1提交到 p2p0 does nothingp1 does nothingp2 does nothing,同步模型的例子,C
12、PSC 668,Set 1:Introduction,34,同步洪泛算法的复杂度,时间复杂度为diameter 消息复杂度为2m与异步算法相同.只是特例,并不是所有算法都相同,36,伪代码约定,在形式模型中,一个算法将根据状态转换来描述。但实际上很少这样做,因为这样做难于理解。实际描述算法有两种方法:叙述性:对于简单问题 伪码形式:对于复杂问题,37,伪代码约定,异步算法:对每个处理器,用中断驱动来描述异步算法。在形式模型中,每个计算事件1次处理所有输入缓冲区中的msgs。而在算法中,一般须描述每个msg是如何逐个处理的一个计算事件中的局部计算的描述类似于顺序算法的伪代码描述同步算法:逐轮描述
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 算法 基本
链接地址:https://www.31ppt.com/p-6554253.html