- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行处理与体系结构实验报告
并行处理及体系结构实验报告
Parallel Computing and architecture Experiment Report
班级:计算机科学与技术
学号:
姓名:
指导教师:
信息学院
2013年 11 月
实验一
1.实验题目: MPI安装与程序编译、运行和调试
2.实验目的:
搭建MPI并行编程环境,开发并行程序;学习并行程序的编写、编译、运行步骤,了解系统结构对编程模式和环境工具的影响。
3.实验内容:
通过查找资料,在Ubuntu下安装MPI平台。
1)MPI安装
进入终端,选择一个自己的目录,安装MPICH2运行命令:sudo apt-get install mpich2
2)安装配置文件并且进行运行命令1:touch mpd.conf运行命令2:chmod 600 mpd.conf在mpd.conf文件中输入以下文本内容并保存:MPD_SECRETWORD=mr.chen
3)程序编译与运行
编译:mpicc [filename.c] –o [newname]
运行:mpirun –np [number] ./[filename]
运行\实验代码\MPI运行程序\ 文件夹下面的hello.c、who.c、message.c、isend.c和mtpi.c程序实例,体会MPI中获取进程标识、消息传递及非阻塞通信等工作模式。
4.实验结果与分析:
通过MPI平台编译“实验代码\MPI运行程序\”文件夹下面的hello.c、who.c、message.c、isend.c和mtpi.c程序实例。并利用MPI选择线程数量并运行相应可执行程序。相应MPI运行结果如图1.1,图1.2,图1.3,图1.4,图1.5。
图1.1 hello.c 编译与运行结果
分析:hello.c是非常简单的MPI程序,只用到了MPI中的两个函数,MPI_INIT:启动MPI环境;MPI_FINALIZE:结束MPI环境。编译时确定进程数后,即可显示每个进程的结果。
图1.2 who.c 编译与运行结果
分析:who.c中除了用到了MPI_INIT和MPI_FINALIZE之外,还用到了MPI_Comm_rank:确定自己的进程标识符;MPI_Comm_size:确定进程数。在编译运行时就可以另每个进程标识自己了。
图1.3 mpti.c 编译与运行结果
分析:mpti.c同样用到了MPI_Init、MPI_Finalize()、MPI_Comm_rank、MPI_Comm_size。并在who.c的基础上添加了计算圆周率的功能,
图1.4 message.c 编译与运行结果
分析:message.c在前面几个程序的基础上使用了函数MPI_Recv:接收其它进程消息;MPI_Send:发送一条消息。因此,这个程序实现了进程间的消息传递。
图1.5 isend.c 编译与运行结果
分析:isend.c较为复杂,同样实现的进程间消息的传递。
消息传递模型中各个进程只能直接访问其局部内存空间,而对其他进程的局部内存空间的访问只能通过消息传递来实现。
阻塞和非阻塞通信的主要区别在于返回后的资源可用性。阻塞通信返回的条件:1通信操作已经完成,及消息已经发送或接收。2调用的缓冲区可用。若是发送操作,则该缓冲区可以被其它的操作更新;若是接收操作,该缓冲区的数据已经完整,可以被正确引用。非阻塞通信返回后并不意味着通信操作的完成。
实验二
1.实验题目:共享存储模型与消息传递模型的比较比较共享存储模型与消息传递模型之间的区别。了解多线程并行和消息传递并行的工作机制。sudo apt-get install build-essential
2)GCC编译与运行OMP程序
编译:gcc –fopenmp [sousefile] –o [destinationfile]
运行:./[destinationfile]
MPI平台的安装与程序的编译运行见实验一。
统计10000个随机数中3出现的次数。OPENMP线程数可为1、2、4等。MPI程序进程数可为1、2、4等。openMP 可以拆分循环MPI_Recv、MPI_Send函数进行消息的传递与接收,并通过MPI_Reduce函数进行归约,从而达到计算随机数个数的目的。消息传递模型程序见附录。
共享存储模型利用共享变量实现并行进程间的通信。消息传递模型中,驻留在不同节点上的进程可以通过传递消息互相通信。两者各有利弊,一个适合用单线程操作于密集的数据结构,一个在异步多线程条件下更有优势。
实验三
实验题目:八皇后问题
实验目的
(1)
文档评论(0)