并行程序设计-基于PVM并行应用程序的设计与实现.docVIP

并行程序设计-基于PVM并行应用程序的设计与实现.doc

  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文档。上传文档
查看更多

PAGE

PAGE1

《并行程序设计》基于PVM并行应用程序的设计与实现

一、请同学们在下列题目中任选一题,写成期末论文。

(一)并行算法研究类

对某一问题,研究其并行算法的设计、实现,分析其性能,进行实验验证,撰写研究论文。例如:

1、对矩阵相乘问题,设计pthread多线程结合SSE/AVX的两层并行算法,实现并行程序。讨论算法层面不同策略对性能的影响,例如多个线程间不同的任务分配方式、不同的线程同步策略等,讨论不同并行编程方法对性能的影响,例如SSE/AVX的对齐和不对齐内存访问等等。对不同的矩阵规模、不同的线程数测试程序性能,撰写研究论文。

2、对高斯消去法问题(其串行算法伪代码示意如下面算法1所示),设计pthread多线程结合SSE/AVX的两层并行算法,实现并行程序。讨论算法层面不同策略对性能的影响,例如多个线程间不同的任务分配方式、不同的线程同步策略等,讨论不同并行编程方法对性能的影响,例如SSE/AVX的对齐和不对齐内存访问等等。对不同的矩阵规模、不同的线程数测试程序性能,撰写研究论文。

3、其他类似难度的问题。

(二)并行编程工具调研类

对某种并行编程工具进行调研,选取某个问题(例如矩阵相乘问题),用这种编程工具编写并行程序求解这个问题,进行实验验证,撰写研究论文介绍这种并行编程工具的特色、基本编程(使用)方法、如何用它解决实际问题(以你选定的问题为例)。例如:

1、C++、Java等语言本身对并行编程提供的支持。

2、HadoopMapReduce编程工具。

3、其它并行编程工具。

二、论文写作要求

(一)并行算法研究类

1、论文应详细描述清楚所研究的问题,并行算法的设计。

2、鼓励大家选择课堂教学之外的问题,通过文献调研,研究其并行求解方法,甚至有自己提出新的方法。

3、最好能有求解一个问题的多种并行算法之间的对比分析。

(二)并行编程工具调研类

1、应调研较新的工具,避免调研太“古老”的工具。

2、不能只是工具相关资料的调研和文字的汇总、整理,重点仍是并行编程——用调研的工具编程解决一个具体问题。

3、鼓励大家进行不同并行编程工具间的对比,例如调研的工具与课堂讲授的工具之间的对比。

基于PVM并行应用程序的设计与实现

摘要:研究了基于PVM系统的、适用于PC机群的网络并行计算的并行编程模式MasterSlave的基本框架。通过实现矩阵乘法并行应用程序,分析了实现时易于出现的问题。根据测试结果得出影响并行计算性能的各种因素。

关键字:并行计算;并行虚拟机;分布式计算环境

通过计算机网络可将计算机连成为一个逻辑上的虚拟并行计算机系统,各计算机之间协作完成计算任务。随着PC机的性能越来越强、互联网越来越普及,使一般只有在工作站机群上进行运行的基于网络的并行计算,也可以移植到PC机群上进行研究。PVM(ParallelVirtualMachine)是一种基于计算机网络的异构编程环境,它提供支持并行计算的并行程序函数库,也是目前应用最广泛的基于消息传递的网络并行计算平台。在基于PVM环境的PC机群上,研究了MasterSlave编程模式的基本框架,总结了调试和运行程序可能出现的问题及解决的方案,并实现了矩阵乘法的并行程序,分析了影响并行计算性能的各种因素。

一、MasterSlave编程模式

PVM环境的实际应用中,典型的2种模型是单程序多数据模型即SPMD(SameProcessorMultipleData)与主从模型即MasterSlave。MasterSlave并行编程模式就是针对主从模式的一种编程模式。MasterSlave并行编程模式中,Master主进程产生n个工作进程,其中第一个工作进程在指定的结点机上运行,其余的由PVM选择合适的结点机上运行,在这些结点机上运行的都是Slave从进程。Master主进程是应用程序的控制进程,负责进程的生成、初始化、收集数据并显示计算结果,其余的Slave从进程执行实际计算工作。在执行Master主进程的结点机处于等待状态时,PVM会自动执行Slave进程使该结点机也参加实际的计算工作。因此,需要编写2个程序,即Master进程和Slave进程。本文研究了此种模式的基本框架。

MasterSlave并行编程模式基本框架:

Master:

pvmmytid();*进入PVM,获得主进程的tidpvmspawn();*生成n个从进程*初始化;

*向各个从进程发送消息*

for所有结点机{

pvminitsend();*创建新的活动发送缓冲区*

pvmpk*(); *数据打包*

pvmsend(); *发送数据包*

}endfor

*等待各个从进程发送消息*

for所有结点机{

pvmrecv(

文档评论(0)

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

高级软件工程师持证人

各美其美,美人之美,美美与共,天下大同

领域认证该用户于2022年12月18日上传了高级软件工程师

1亿VIP精品文档

相关文档