第六章 多 处 理 机.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图 7.20 能保证读—写次序的多处理机结构 (3) 数据输出相关 如果Pi的左部变量也是Pj的左部变量,且Pj存入其算得的 值必须在Pi存入之后,则称Pj“数据输出相关”于Pi。例如 Pi A=B+D Pj A=C+E 按原执行顺序A新应为C+E。可以看出,只要同步能保证Pi 的先写入A之后,Pj的再写入A,这两个程序段才可以并行。 当然,交换串行是不行的,因为最后结果将使A新成了B+D了。 除了上述 3 种相关外,如果两个程序段的输入变量互为输出变量, 同时具有“先写后读”和“先读后写”两种相关, 以交换数据为目的, 则两者必须并行执行, 既不能顺序串行, 也不能交换串行。 例如, 两语句的左、 右变量互相交换, Pi A=B Pj B=A 如果两个程序段之间不存在任何一种数据相关,即无共同变量,或共同变量都只出现在右边的源操作数,则两个程序段可以无条件地并行执行,也可以串行或交换串行。例如 Pi A=B+C Pj D=B*E 总结: (1)两个程序段之间若有“先写后读”的数据相关,不能并行,只在特殊情况下可以交换串行; (2)若有“先读后写”的数据反相关,可以并行执行,但必须保证其写入共享主存时的先读后写次序,不能交换串行; (3)若有“写—写”的数据输出相关,可以并行执行,但同样需保证其写入的先后次序,不能交换串行; (4)若同时有“先写后读”和“先读后写”的两种相关,以交换数据为目的,则必须并行执行,且要求读写完全同步,不许顺序串行和交换串行; (5)若没有任何相关,或仅有源数据相同时,可以并行、顺序串性和交换串行。 2程序并行性检测 判别程序中是否存在前述的各种数据相关。 伯恩斯坦准则 Ii—Pi程序段中操作要读取的存储单元集; Oi—要写入的存储单元集; 则P1、P2两个程序段能并行执行的准则: ①I1∩O2=Ф ,即P1的输入变量集与P2的输 出变量集不相交; ②I2∩O1= Ф ,即P2的输入变量集与P1的输 出变量集不相交; ③O1∩O2=Ф ,即P1、P2的输出变量集不相交。 例如:若有三个程序段P1 ,P2 和P3分别求三个矩阵算术 表达式: P1 :X=(A+B)×(A-B) P2 :Y=(C-1)×(C+D)-1 P3:Z=X+Y 其中,A、B、C、D、X和Y均为N×N的矩阵,它们的输 入、输出变量集分别为: I1={A,B},I2={C,D},I3={X,Y},O1={X},O2={Y}, O3={Z} 由于I1∩O2= φ ,I2∩O1= φ ,O2∩O1= φ ,故P1和P2两 个程序段可以并行执行;由于I3∩O1≠φ和I3∩O2≠φ,故P3程 序段必须在P1和P2程序段执行完毕方可开始执行。 7.3.3 并行语言与并行编译 1.开发方式 语言形成方式:扩充语言功能、重新设计并行语言 对语言的要求:灵活性、效率 2.扩展语言中三种并行结构 FORK-JOIN:不同机器有不同形式,效果相同 FORK A: 派生一个进程,当前进程继续, FORK A,J: FORK A功能外,地址J计数器+1, FORK A,J,N:FORK A功能外,地址J计数器值为N; JOIN J: 地址J处计数器减1,当计数器值为零时,启动J+1处进程,否则,结束该进程,释放PE。 现以M.E.Conway提出的形式为例说明。 (1)派生指令FORK 指令格式:FORK A 功 能 : * 在遇到FORK指令时,执行该指令的原进程,并根 据标记符A派生出该标记符所对应的新进程,即准备 好启动新进程或恢复原来进程继续执行时的现场,若 共享主存,则应该产生存储器指针,映像函数、访问 权等信息。 *将空闲处理机分配给FORK指令派生的新进程,如 果所有处理机均忙,则让新进程进入排队等待。 *执行FORK指令的原程序,继续在分配给它的处理 机上运行。 3.描述程序并行性的指令 (2)汇合指令 JOIN 指令格式:JOIN N 功 能: * JOIN 指令有一个计数器,其初始值置为零,当执行 JOIN指令时,计数器加上1,并与N比较。 * 若比较结果表明计数器值等于N,说明是执行中的 第N个进程经过JOIN 指令,则允许该进程通过JOIN 指令,计数器清0,在其所在处理机上继续执行后继指令。 * 若计数器值小于N,则必须等待N个并行任务中尚 未

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档