授课人董国荣方小平指导老师秦刚.ppt
《授课人董国荣方小平指导老师秦刚.ppt》由会员分享,可在线阅读,更多相关《授课人董国荣方小平指导老师秦刚.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、授课人董国荣方小平指导老师秦刚 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望一一.并行算法的提出并行算法的提出把有唯一输入向量和唯一输出向量的一个程序段在某一环境下的一次执行称为一个进程。设有一组程序段A1An,若Ai在n个处理机上同时执行的结果等同于Ai以任意顺序执行的结果,则称Ai为可并行执行的。设两个程序段A、B,且A先于B,若A与B数据相关或控制相关,则称A是B的父进程。由此 图示可以明确看出并行处理关系!A1:x=1A2:y=2A3:s=2*x+yA4
2、:t=x*x*yA5:u=3*s-tA6:v=cos(t)A7:z=u*v+1如下例所示:u,vzA7tvA6s,tuA5x,ytA4x,ysA3yA2xA1输入输入输出输出进程进程输入输出表如下:输入输出表如下:BeginA1A2A3A4A5A6A7End进程流程图如下:一一.并行算法的提出并行算法的提出下面简单例子让我们能更深刻理解并行算法:倍增法求和倍增法是并行分治的一种简化形式。其基本思想是将原问题反复分解为等规模的两个子问题,在逐步分解的过程中,子问题个数成倍增加。将各个子问题恰当地映射到各台处理机上,即可实现计算过程的并行化。例如:倍增法求和 计算序列L0.n-1的和,记为S(0,
3、n-1)。int BSum(int L,int s,int t)if(s=t)return Ls;int k=(s+t)/2;return BSum(L,s,k)+BSum(L,k+1,t);并行求和一一.并行算法的提出并行算法的提出 从以上一个简单的例子我们可以看到并行算法的真谛!所以这么说基于普通的算法大家开始加,串行从1到100加很累,而这个高斯思想的并行处理结果又快又准确!体现出了这个思想,由此引申到计算机并行处理可以看出它潜力巨大,对解决现实问题有很大的指导作用,希望大家认真听讲。那么什么叫并行算法?科学家已经定义为:利用并行计算机系统进行数据与信息的并行处理称为并行计算。二二.并行
4、算法的提出并行算法的提出 并行计算研究的内容包括并行计算方法、并行计算模型、并行算法、并行程序设计、并行测试程序设计、测试结果分析等。由于各种并行计算机的系统结构不同,系统内各处理器和各功能部件之间在体现算法时的相互作用不同,使得并行算法不能通用。因此,当前并行处理的研究重点,除了并行计算机体系结构之外,就是研究基于各种并行与分布式计算机系统上的并行算法或分布式算法。二二.并行算法基本方法并行算法基本方法 并行计算方法的研究,不仅对提高并行计算机的使用效率是必需的,而且往往能找到改进现有串行算法的新途径。并行计算方法的研究是研制高效并行数值计算软件的基础。并行计算中可供选择的技术路线有两条:一
5、条是在现有的串行算法基础上作并行化;另一条是直接从数学物理问题出发,面向并行系统研制高效率的计算方法和设计算法。在并行算法设计中广泛采用的是“Divide and Conquer”(分而治之)和重新排序两种基本方法。从以上基本方法引申具体以下几种算法:三、并行编程的基本方法三、并行编程的基本方法 这里主要介绍网络并行编程的基本模式和负载平衡的基本方法。(1)网络并行编程的基本模式 应用标准化环境进行网络并行编程与MPP并行机(如IBM SPZ,Intel Paragon等)在算法设计和编程逻辑的基本方法上是相同的,它们存在的不同点是:任务管理方式不同,网络并行标准化环境编程要涉及到进程的动态创
6、建与命名。标准环境不同,网络并行编程要求在正式计算前完成语句的初始化。粒度选取不同,分布式网络并行计算的并行粒度较大。计算环境不同,分布式网络并行计算要考虑到异构环境。从不同计算任务组织的角度看,分布式编程主要有星形计算模式和树形计算模式两种:三、并行编程的基本方法三、并行编程的基本方法 星形计算模式。由一组相互紧密关联的进程组成,它们可以是执行相同的程序,只是数据不同,共同执行同一计算问题的不同部位。这种计算模式又可以分为两类:一种是主从式(master slave),这种计算模式有一个控制程序作为主进程,负责进程的生成、初始化、收集并显示结果,其余的进程(slave)执行实际计算,从进程的
7、负载或由主进程分配,或由自身分配;另外一种是纯结点模式,这时所有进程都在执行单个程序,只是少数进程(初始时由人工指定)同时负责非计算的功能(如I/O等)。三、并行编程的基本方法三、并行编程的基本方法 树形(树形(tree)计算模式)计算模式。在这种计算模式中,进程通常是在计算过程中以树形方式动态生成。在求解组合优化问题时常用的一种算法是构造性的探索算法,主要思想是对解集合反复进行分支,对每个分支计算最优解的界。如果该解符合要求,则继续分支以探索更好的解,直到所有的子集合中仅有一个最优的解为止。这种方法在人工智能的搜索策略中以及递归的“分而治之”算法中也常使用。三、并行编程的基本方法三、并行编程
8、的基本方法 (2)负载平衡的基本方法 各处理器之间的负载是否能做到基本平衡,是并行计算效率能否提高的一个关键。对于网络分布式并行计算而言,负载平衡的基本方法有两个:数据分解与功能分解。数据分解方法,有时也称数据分割法,这种方法适应于各处理器执行相同的任务、只是数据不同的情况。数据的分解有静态方式和动态方式的区别。静态方式中每个进程的负载是固定的,而在动态方式中各进程的负载分配是随计算过程而改变的。三、并行编程的基本方法三、并行编程的基本方法 功能分解方法。网络计算的并行化也可通过把总负载按功能进行分解,分配给各个处理器承担。最简单的是把整个计算过程分为输入数据、计算进程和输出结果三个部分。当然
9、根据实际情况这三个部分又可以再进行细分。三三.并行计算基本概念并行计算基本概念(1)并行算法的目标 并行算法的目标就是以增加空间的复杂性来减少时间的复杂性,即增加空间的维数,增加处理器的台数,来减少算法实现所需的时间。从算法的结构观察,通常的串行算法树“深而窄”,而并行算法树结构截然不同。为达到把时间的复杂性转化为空间复杂性的目的,并行算法树采用了“浅而宽”的结构。(2)并行加速比 并行加速比表示采用多个处理器计算速度所能达到的加速的倍数。(3)粒度(granularity)三三.并行计算基本概念并行计算基本概念 粒度是各个多处理机可独立并行执行的任务大小的度量。大粒度反映可并行执行的运算量与
10、程序量大,有时称粗粒度。任务级并行的粒度大于语句级的并行。向量机主要是对内层Do循环语句作向量化,所以向量化是一种小粒度(细粒度)并行;在网络并行计算中,由于通信开销比较大,应尽量采用粗粒度方式。(4)可扩展性(Scalability)可扩展性是指并行机和并行算法有效利用多处理机台数增加的能力的一个度量。随着处理机的增加,如果效率曲线基本保持不变,或略有下降,则认为该算法在所用的并行机上扩展性好;否则,其可扩展性差。影响一个并行算法的扩展性因素较多,评判的准则也不尽相同。四四.并行算法分类并行算法分类 依据处理对象划分,并行算法可分为两类:数值并行算法 主要为数值计算而设计的并行算法;非数值并
11、行算法 如神经网络算法、演化算法、遗传算法、格子气算法、格子 依据算法中进程的控制方式划分,可分为以下两种:ltzmann算法以及为符号计算而设计的并行算法。同步并行算法(synchronized algorithm)。是指某些进程必须等待其他进程的一种并行算法,要求所有进程必须在一个给定时刻同步。SIMD以及共享存储型MIMD并行机上通常运行同步并行算法。四四.并行算法分类并行算法分类 异步并行算法(asynchronized algorithm),是指诸进程执行相对独立、不要互相等待的一类算法。其主要特征是在计算的整个过程中都不需要等待,而是根据当前的最新信息决定进程的继续或终止。这种算法
12、通常是针对分布式存储的MIMD并行机设计的。另外,还有分布式算法(distributed algorithm),是指由包括网络在内的通信链路连接的多结点机或计算机群协同完成某个计算任务的算法。五五.并行计算模型并行计算模型 所谓计算模型,是算法设计者进行理论分析时所依据的计算机模型。冯诺依曼机是理想的串行计算模型。由于并行机在飞速发展之中,尚未定型,故目前尚没有所谓的通用并行计算模型。当前,人们将并行计算机的某一些特征抽象出来,形成了各种特定的并行计算理论模型,以便于并行算法的设计与理论分析。并行机的特征有:消息包的长度或延迟时间、消息包传递的开销、处理器连续传递消息的最小间隔(或通信的带宽)
13、、处理器个数等。由诸如此类的参数构成各种特定的并行计算模型。常用的并行计算模型有PRAM、VLSI、BSP、LogP和C3模型。下面我讲述几点经典算法。5.1 平衡树法 平衡树法的评估:以平衡树法求解最大值是一个EREW算法,计算时间tp(n)=O(logn),运用处理器最多为p(n)=n/2,工作量为O(nlogn),不是工作量有效的算法。平衡树方法的优点是在树中能快速存取信息,对数据的传递、压缩、抽取和前缀计算均十分有用。5.2 向量法 向量法的基本思想 以向量方式描述计算过程;以并行方式执行向量计算。以矩阵计算为例 对n阶矩阵,串行加法的计算量为n2,若动用n个(或n2个)处理器,分别处
14、理每行(或列)的相加运算,则可以得到计算量亦为n2,工作量有效。5.2 向量法以矩阵计算为例矩阵相乘:C=A*B5.2 向量法串行算法:for i=1 to n do for j=1 to n do ci,j=0 for k=1 to n do ci,j+=ai,k*bj,k 并行算法:for i=1 to n dofor all Pj j=1 to n do ci,j=0/Ci.=0for k=1 to n d/Ci.=ai,k*Bk.for all Pj j=1 to n do ci,j+=ai,k*bk,j5.3 线性代数方程组法高斯消去法高斯消去法 串行求解算法:for(k=1;iN;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 授课 人董国荣方小平 指导老师
限制150内