第5章并行程序设计概述.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文档。上传文档
查看更多
第五章 并行程序设计概况 §4.1 概述 并行程序设计与算法、系统结构有密切的关系。 并行性的关键在算法。研究并行算法及程序设计,是多机系统的一个重要研究课题。 其中相关问题是十分重要和难以解决的问题之一。 并行性级 作业级、程序级 进程级、任务级 线程级 进程是并行程序的基本单位 用户在程序中划分 并行程序划分 由专用程序或编译划分 程序在运行中动态划分 用户在程序中划分 进程通信 由操作系统实现 用户在程序中描述 进程同步 由系统程序实现 用户在程序中描述 进程调度 操作系统调度 用户在程序中描述,称为显式 由操作系统实现,称为隐式 在源程序中描述,目标程序也存在 源程序中无描述,由编译系统在目标程序加相应代码 操作系统根据系统状态处理 并行程序设计模型 共享变量模型 利用共享变量进行通信 只划分程序,不划分数据。不必关心数据交换 消息传递模型 通过发送消息进行通信 划分程序和数据 数据并行模型 只划分数据,不划分程序。所有处理机对不同数据执行同样的操作。 由于执行相同的操作,易同步,适用于矩阵操作 面向对象模型 并行处理对象为对象 §4.2 并行性条件 要并行执行几个程序段,必须几个程序段不相关。各段之间的相关性表现为: 数据相关 流相关——如果从S1到S2存在通道,而且S1至少有一个输出可使S2用作输入,则S2与S1 流相关,记做S1 S2 反相关——如果S2紧跟S1,且S2的输出与S1的输入重叠,则S2与S1反相关。记做S1 S2 输出相关——两条语句产生同一输出变量,则S1 S2 例: S1: Load R1, A S2: Add R2, R1 S3: Move R1, R3 S4: Store B, R1 控制相关 S2的执行与否取决于S1的执行结果 并行性检测 Bernstein准则(伯恩斯坦1966) 设Qi是进程Pi所有输出变量的集合 Ii是进程Pi所有输入变量的集合 即进程P1和进程P2的输入集合分别是I1和I2,输出集合分别是O1和O2, 则有: I1∩O2=Φ I2∩O1=Φ O1∩O2=Φ 即两进程流不相关,反不相关,输出不相关,可并行执行 例: P1: C=D×E P2: M=G+C P3: A=B+C P4: C=L+M P5: F=G/E 程序中的相关性处理 基本块——以控制相关性划分程序基本块。 一个源程序,可划分为若干个子块,称为源程序的基本块。提取并行性是以基本块为单位,在基本块内部进行。 基本块的入口语句 源程序的第一条语句 条件转移或无条件转移语句所转移到的语句 紧跟在条件转移语句后的语句 对于每一个基本块入口语句,构造相应的基本块 从该入口语句到下一条入口语句的前一条语句 从该入口语句到一条转移语句(包括此转移语句) 从该入口语句到停止语句(含此停止语句) 一个源程序划分为基本块后,可由一个有向图表示基本块之间的关系。基本块为有向图中的结点。并行性在结点内部和有向图中进行。 例: Read x; Write x; W=x+z; If w0 goto⑧; X=2; X=x*3; goto③; Write x; halt §4.3 并行语言与编译器 并行语言特征 优化特性:把顺序程序转换为并行形式时,利用程序重构和编译命令,使软件并行性和硬件并行性相匹配。 自动并行化程序 半自动化并行程序 交互式并行化程序 可用性 使语言可移植到各种类型的并行机上 可扩展性——与处理机数目和硬件拓扑无关 兼容性——与目前的顺序语言兼容 可移植性——可移植到共享存储型和消息传递型多机系统 并行性控制——粒度控制 通信与同步——支持通信和同步的语句 数据并行性——用于说明数据的分布方法 运行时分解:数据自动分布,无须用户干预 映射规格说明:通过规格说明书,指出通信模式或数据映射到硬件上的方法 虚拟处理机:编译器将虚拟处理机静态或动态地映射到物理处理机上 并行语言结构 向量化——用向量指令取代串行程序中的一段代码 并行化——用并行指令描述串行程序中可并行执行的程序段 向量化: 下面以Fortran 90 数组表示为例 一个向量可由一个带下标地三元组序列表示。每维一个三元组,不同维的三元组用逗号隔开 e1:e2:e3 每个ei为一个标量整数算术表达式 e1:e2 e1是初值或上界 e1:*:e3 e2是终值或下界 e1:*

文档评论(0)

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

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

1亿VIP精品文档

相关文档