- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.1.1 什么是并行计算
并行计算(parallel computing)是指,在并行机上,将一个应用分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加速求解速度,或者求解应用问题
规模的目的。
由此,为了成功开展并行计算,必须具备三个基本条件:
(1) 并行机。并行机至少包含两台或两台以上处理机,这些处理机通过互连网络相互连接,互通信。
(2) 应用问题必须具有并行度。也就是说,应用可以分解为多个子任务,这些子任务可以并行地执行。将一个应用分解为多个子任务的过程,称为并行算法的设计。
(3) 并行编程。在并行机提供的并行编程环境上,具体实现并行算法,编制并行程序,并运行该程序,从而达到并行求解应用问题的目的。
1.1.2 并行计算的主要研究目标和内容
对于具体的应用问题,采用并行计算技术的主要目的在于两个
方面:
(1) 加速求解问题的速度。
(2) 提高求解问题的规模。
当前,如图1.2 和图1.3 所示,组成并行机的三个要素为:
? 结点(node)。每个结点由多个处理器构成,可以直接输入输出
(I/O)。
? 互联网络(interconnect network)。所有结点通过互联网络相互
连接相互通信。
? 内存(memory)。内存由多个存储模块组成,这些模块可以如图
1.2 所示,与结点对称地分布在互联网络的两侧,或者,如图1.3
所示,位于各个结点的内部。
并行编程模型5.2 共享内存模型
a)在共享编程模型中,任务间共享统一的可以异步读写的地址空间。
b)共享内存的访问控制机制可能使用锁或信号量。
c)这个模型的优点是对于程序员来说数据没有身份的区分,不需要特别清楚任务简单数据通信。程序开发也相应的得以简化。
d)在性能上有个很突出的缺点是很难理解和管理数据的本地性问题。5.3 线程模型
在并行编程的线程模型中,单个处理器可以有多个并行的执行路径。
5.4 消息传递模型
消息传递模型有以下三个特征:
1) 计算时任务集可以用他们自己的内存。多任务可以在相同的物理处理器上,同时可以访问任意数量的处理器。
2) 任务之间通过接收和发送消息来进行数据通信。
3) 数据传输通常需要每个处理器协调操作来完成。例如,发送操作有一个接受操作来配合。
5.5 数据并行模型
l 数据并行模型有以下特性:
并行工作主要是操纵数据集。数据集一般都是像数组一样典型的通用的数据结构。
任务集都使用相同的数据结构,但是,每个任务都有自己的数据。
每个任务的工作都是相同的,例如,给每个数组元素加4。
l 在共享内存体系结构上,所有的任务都是在全局存储空间中访问数据。在分布式存储体系结构上数据都是从任务的本地存储空间中分离出来的。
(1) 共享存储并行编程基于线程级细粒度并行,仅被SMP 和DSM并行机所支持,可移植性不如消息传递并行编程。但是,由于它们支持数据的共享存储,所以并行编程的难度较小,但一般情形下,当处理机个数较多时,其并行性能明显不如消息传递编程。
(2) 消息传递并行编程基于大粒度的进程级并行,具有最好的可移植性,几乎被当前流行的各类并行机所支持,且具有很好的可扩展性。但是,消息传递并行编程只能支持进程间的分布存储模式,即各个进程只能直接访问其局部内存空间,而对其他进程的局部内存空间的访问只能通过消息传递来实现。因此,学习和使用消息传递并行编程的难度均大于共享存储和数据并行两种编程模式。
表4.5 三种并行编程环境主要特征一览表
特征 消息传递 共享存储 数据并行 典型代表 MPI、PVM OpenMP HPF 可移植性 所有流行并行机 SMP﹑DSM SMP﹑DSM﹑MPP 并行粒度 进程级大粒度 线程级细粒度 进程级细粒度 并行操作方式 异步 异步 松散同步 数据存储模式 分布式存储 共享存储 共享存储 数据分配方式 显式 隐式 半隐式 学习入门难度 较难 容易 偏易 可扩展性 好 较差 一般 本书的主要目的是全面介绍消息传递并行编程环境MPI,因此,在以后的篇幅中,将不再讨论共享存储和数据并行编程环境。
4.5.1消息传递并行机模型
由于当前流行的各类SMP、DSM、MPP 和微机机群等并行机均支持消息传递并行程序设计,因此,有必要对这些具体并行机的体系结构进行抽象,设计一个理想的消息传递并行机模型。基于该模型,用户可以在不考虑具体并行机体系结构的条件下,组织消息传递并行程序设计,从而简化并行程序设计,增强程序的可移植性。
文档评论(0)