程序设计方法学七.pptVIP

  • 0
  • 0
  • 约1.31万字
  • 约 56页
  • 2019-03-26 发布于湖北
  • 举报
第七章 并行程序设计(简介) §1. ??? 基本概念 一、并行程序的概念 并行性(Parallelism) 1)同时性(平行性Simultaneity):指两个或多个事件在同一时刻发生。 2)并发性(Concurrency)指两个或多个事件在同一时间间隔内发生 例1.多位并行加法器 低?高位的延迟,是并发性 二、进程 广义上:是事件在时间上的序列,是一种行为、活动 狭义上:程序的并发执行 定义1:进程的定义: 1)????? 任何的语句是进程(可以是一个语句段)。 2)????? 如果u和v是进程,那么u||v也是进程(||是分隔符) 3)????? 只有1)2)是进程。 简单进程只有一个语句,复杂的进程由若干个语句并行地嵌套地组成。 例1. 语句 x:=y+1;和y:=x;分别是进程。它们的组合x:=y+1||y:=x也是进程。 例2.计算n阶单位阵的进程可表示为: ||i:1≤i≤n::u[i,i]:=1 n个进程 ||||i,j:1≤i≤n∧1≤j≤n∧i≠j::u[i,j]:=0 (n-1)2个 三、并行程序的特征与计算特征 特征:程序计算的并行和资源的共享 并行性:多于一个进程在计算时间上的重叠 共享性:多于一个进程共享某种资源或访问共享变元 计算特征:进程计算的无序性和计算结果的不确定性 无序性:由并行性和共享性引起,不能用控制流描述进程的计算序列,不能事先规定计算速度 不确定性:两个静态功能等价的并行程序,动态计算的结果可能不同 例3: P1 init: y:=a;x:=a l: x:=x-3 m: y:=y+1 四、并行程序的设计原则 并行程序是为完成特定任务而设计的,应服从特定的约束而开展工作,同步、互斥是重要的协调机制。 1) 不变性:程序中各类变量的值总满足某个关系式,称为程序的不变式。它表明程序的计算“不会做坏事”,也称安全性。 例4.? 对m,n∈N ,设除法的并行程序为: Init: x,y,z,k:=0,m,n,1 Body:z,k:=2*z,2*k if y≥2*z ||z,k:=n,1 if y≦2*z ||x,y:=x+k,y-z if y≧z 可以验证有不变式:x*n+y=m∧0≤yn 及 y≥0∧k≥0∧z=n*k∧x*n+y=m 2)? 进展性: 并行程序的计算过程中,某事件一定会发生或在某事件出现的前提下,另一事件一定会发生。这种性质称为进展性。它表明程序的计算“总会做好事”。 例5.对例4中程序,当y≥z∧y=m时,程序计算后一定会有y m 3)? 公平性:并行程序中的任何进程在有限的时间内一定会有被执行的机会,即不应该有进程永远被遗忘而得不到计算。这称为“公平性”。 “哲学家就餐问题”要解决的就是不确定的延迟问题。 4)不动点:若并行程序中的所有变量在计算任意语句(进程)后其值保持不变。称这些变量的值为该程序的不动点。并称程序是终止的。程序的计算结果就是不动点。若不存在不动点,则称程序是不终止的。 例6.例4的程序是终止的。 其不动点(x,y,z,k)取值 (DIV(m,n),REM(m,n),n,1) 但程序x:=y+1||y:=x就不存在不动点,是不终止的。 5)死锁:在并行系统中,防止和避免死锁是十分重要的。 6)瓶颈:由于系统中共享资源的有限、各进程计算时间的不等、过多的顺序成分等原因将形成瓶颈,影响执行效率。疏通瓶颈,提高计算速度,是程序精化的工作之一。 §2 并行系统(简述) 并行程序是使用并行程序设计语言编制,用并行编译程序编译后在并行系统上运行的。因此有必要了解并行系统。 什么是并行系统 并行系统中讨论哪些问题 软件的难题: a)?缺少一个并行系统的描述方法,并行系统中每个组成部分的活动行为,联系关系,固有的基本现象等 b)?? 并行的算法 c) 顺序程序并行化 一、多计算机并行系统(分布式系统) 分布存储器大规模并行计算机 提出了一系列与分布式相关的概念如:分布式计算(处理)、分布式数据库、分布式进程、分布式OS等。 特点:a) 没有公共的存储器,存储器是分布的 b)各网络点之间的联结是通过通道进行的 c)存储访问的时间不一致,访问本地与远程的存储器的时间相差很多 d)没有统一的时钟,系统中各计算机异步独立地工作。 因此,分布式系统是由多个结点构成的并行机,每个结点由自己的处理器和存储器,各结点间通过互联网络相连。 体系结构:设P0……Pn-1为处理器,m0……mn-1

文档评论(0)

1亿VIP精品文档

相关文档