霍纳法树形流图中处理机p个数_计算机体系结构(金星)第七章 多处理机.ppt

本文介绍了多处理机的特点,区别于并行处理机,并详细探讨了多处理机的硬件结构和程序并行性。通过霍纳法展示了如何在多处理机中实现运算的并行化,通过实例计算了加速比和效率,强调了并行程序设计语言在并行任务派生和汇合中的作用。
摘要由CSDN通过智能技术生成

第七章 多处理机 一、多处理机的特点 1、多处理机的定义 具有两台以上的处理机,在操作系统控制下通过共享的主存或输入输出子系统或高速通讯网络进行通讯。实现指令以上级(任务级、作业级)并行。 按照Flynn分类法,多处理机系统属于MIMD计算机。 多处理机系统由多个独立的处理机组成,每个处理机都能够独立执行自己的程序。 2、多处理机与并行处理机的区别 结构灵活性: MIMD通用,SIMD专用; 程序并行性: MIMD是作业级并行,并行性存在于指令外部, SIMD则是操作级并行,并行性存在于指令内部。 并行任务派生: MIMD需要由专用语句显式指明是否派生并行任务,而SIMD则不需要专门指令 进程同步:MIMD各进程的同步需要采取特殊措施来保证, SIMD则由于受同一控制器控制,自然是同步的。 资源分配和调度: MIMD任务调度要采用软件手段, SIMD只需用屏蔽来控制实际参加并行操作的处理单元数目。 二、多处理机的硬件结构 1、多处理机的两种形式 (1)紧耦合 (2)松耦合 (1)紧耦合 紧耦合是通过共享主存实现处理机间的互相通信,处理机间的相互联系比较紧密。 两种结构:带专用cache,不带专用cache 适用场合:细粒度并行计算,同构形(同类型处理机) (2)松耦合 不同处理机间通过通道互连或消息传递方式相互通信,有较大的局部存储器,减少访主存冲突。 适用场合:粗粒度并行计算,任务间信息流量小 2、多处理机机间互连 多处理机系统中,机间互连主要采用以下几种方式。 三、程序并行性 多处理机并行性存在于指令内部,也存在于指令外部 并行性开发途径: 低层次并行:向量化 高层次并行:算法、编译、语言、操作系统 1并行算法研究 以算术表达式为例,把表达式看成是多个程序段相互作用的结果,而表达式中每一项都可看成是一个程序段的运行结果 研究思路:对描述运算过程的树形结构进行变换 研究目标:减少运算级数,即降低树高 研究手段:用交换率、结合率、分配率进行变换 研究方法: 用交换率把相同的运算结合在一起 用结合率、分配率把操作数配对,尽可能并行 结合各子树 用树形流程图描述运算过程 参数: 处理机的数目:P 运算的级数:Tp 加速比:Sp=T1/ Tp 效率:Ep=Sp/P 串行运算 用霍纳法得:E=a+x(b+x(c+x(d))) 需要3个乘加循环,6级运算 适合于单处理机 并行运算 E=a+bx+cx2+dx3 用3台处理机,需要4级运算 处理机的数目:P=3 运算的级数:Tp=4 加速比:Sp=T1/ Tp=6/4=1.5 效率:Ep=Sp/P=1.5/3=0.5 例2 :E2=a+b(c+def+g)+h 串行运算需要7级 利用交换律和结合律 E2=(a+h)+b((c+g)+def) 需要5级运算 P=2 Tp=5 Sp=7/5 Ep=0.7 利用分配律降低树高 E2= (bc+bg) +(a+h) +bdef 需要4级运算 P=3 Tp=4 Sp=7/4 Ep=7/12 2程序并行性分析 若程序段间有数据相关(写后读),不能并行,只在特殊情况下可以交换串行 Pi A=B+D Pj C=A*E Pi A=2*A Pj A= 3*A 若程序段间有数据反相关(读后写),可以并行执行,但必须保证其写入共享主存时的先读后写次序,不能交换串行 Pi C=A+E Pj A=B+D 若有数据输出相关(写后写),可以并行执行,但同样需要保证写入共享主存的先后次序,不能交换串行 Pi A=B+D Pj A=C+E 若同时有数据相关与数据反相关,以交换数据为目的时,必须并行执行 Pi A=B Pj B=A 若没有任何相关或仅有源数据相关时,可以顺序串行,交换串行和并行执行 Pi A=B+C Pj D=B*E 3并行程序设计语言 并行算法要用并行程序来实现,使用并行程序设计语言加强并行性的识别,并明确表示并发进程。 并行任务的派生:一个任务执行的同时,可派生出并行执行的其它任务 并行任务的汇合:并行执行的程序完成后,汇合在一起,执行后续工作 M.E.Conway形式 FORK m:派生并行任务,m为新进程开始标号 JOIN n:并发任务汇合,n为已派生出的并发进程个数 工作过程: FORK m 语句功能 准备好新进程启动和执行的必需信息 将空闲的处理机分配给派生的新进程,若无空闲处理机,则排队等待 继续在原处理机上执行FORK m语句的原进程 JOIN有一个计数器,初值为0 每执行一次JOIN n,计数器加1,并与进行比较 计数器值=n? 相等,完成汇合,通过JOIN, 计数器清0,执行后续语句 不等,还有进程未结束,已结束进程释放处理机。 例:Z=E+A*B*C/D+F 经并行编译后得到如下程序 S1 G=A*B S2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值