- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行计算
—— 结构•算法•编程
主讲教师:谢磊
第十四章分布存储系统并行编
程
分布存储系统并行编程
14.1 基于消息传递的编程
14.2 MPI并行编程
14.3 PVM并行编程
14.4 基于数据并行的并行编程
14.5 HPF并行编程
分布存储系统并行编程
分布存储系统的主要特点
系统通过互联网络将多个处理器连接起来
每个处理器均有自己的局部存储器,所有的局部处理
器就构成了整个地址空间
整个地址空间有局部和全局两种编址方式
全局编址方式
系统中所有局部存储器统一编址,用户程序空间是一
个统一的全局地址空间。
远程存储器的访问与局部存储器的访问一样用指令来
完成,其指令地址是由处理器号和局部存储器地址所
组成。
分布存储系统并行编程
局部编址方式
系统中个局部存储器单独编址,用户程序空间是多地
址空间。
远程存储器的访问要通过调用消息传递库来实现。
上述特点导致了分布存储系统的两种并行编程模型
消息传递模型
SPMD,MPMD
数据并行模型
SIMD,SPMD
基于消息传递的并行编程
根据问题分解的两种形式,消息传递并行性的开发
有两种形式
域分解形式:SPMD编程
将一个大的问题区域分解成若干个较小的问题
区域,然后对其并行求解。
函数分解形式:MPMD编程
将一个大的问题分解成若干个子问题,然后对
其并行求解。
SPMD 并行程序
SPMD就是同一程序复制到各个处理器上,而不同的
数据分布在不同的处理器上。这样在系统中各处理
器均运行相同的程序,但对不同的数据执行操作。
设计SPMD形式的消息传递程序的主要步骤是:
数据划分:尽量考虑负载平衡、存储空间的均衡使用
以及减少处理器之间的通信
优化通信:尽量提高计算/通信比,数据就地使用,合
并短消息成一个长消息进行传输
全局操作:将各处理器的局部结果组合起来形成整个
问题的解,这样的操作包括:全局同步、播送、归约、
前缀运算、收集/散播等。
SPMD 并行程序
编写SPMD形式的程序有两种方式
主机/ 节点式(Host/Node)
主机程序:运行在控制节点上。
节点程序:运行在所有的计算节点上。
一个主机程序控制一组以SPMD 方式执行的节点
程序。
无主机式(Hostless)
一个应用程序整个运行在计算节点上,而控制
节点不起上节所说的主机节点的作用。
在这种结构中,程序控制也是在计算节点上完
成的。
MPMD 并行程序
MPMD就是每个处理器执行不同的代码副本、各自
对数据完成不同的运算。
设计MPMD形式的消息传递程序的主要步骤是:
子问题划分:尽量考虑各处理器负载均衡和充分
利用各处理器的独特能力,在全系统范围内合理
分配各子问题于不同处理器上。
确定子问题之间的相互作用方式。
MPMD 并行程序
实现子问题之间相互作用的方式有两种:数据流方
式和客户/服务器方式。
数据流方式:用户将问题分解为各不相同的子问题;
根据子问题的相关性来组织并行,按数据驱动的方式
决定并行执行的先后次序。
客户/服务器方式:用户将一些典型的不同的子问题求
解作为相应的服务进程分布在各个计算节点上。整个
问题的求解就归结为客户对各个服务器的一系列服务
请求。
基于消息传递的并行编程
1 消息传递库
2 消息传递方式
1 消息传
文档评论(0)