并行处理与体系结构实验报告.docx

上传人:b****8 文档编号:10033933 上传时间:2023-02-08 格式:DOCX 页数:10 大小:389.64KB
下载 相关 举报
并行处理与体系结构实验报告.docx_第1页
第1页 / 共10页
并行处理与体系结构实验报告.docx_第2页
第2页 / 共10页
并行处理与体系结构实验报告.docx_第3页
第3页 / 共10页
并行处理与体系结构实验报告.docx_第4页
第4页 / 共10页
并行处理与体系结构实验报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

并行处理与体系结构实验报告.docx

《并行处理与体系结构实验报告.docx》由会员分享,可在线阅读,更多相关《并行处理与体系结构实验报告.docx(10页珍藏版)》请在冰豆网上搜索。

并行处理与体系结构实验报告.docx

并行处理与体系结构实验报告

并行处理及体系结构实验报告

ParallelComputingandarchitectureExperimentReport

 

班级:

计算机科学与技术

学号:

姓名:

指导教师:

 

信息学院

2013年11月

 

实验一

1.实验题目:

MPI安装与程序编译、运行和调试

2.实验目的:

搭建MPI并行编程环境,开发并行程序;学习并行程序的编写、编译、运行步骤,了解系统结构对编程模式和环境工具的影响。

3.实验内容:

通过查找资料,在Ubuntu下安装MPI平台。

1)MPI安装

进入终端,选择一个自己的目录,安装MPICH2,运行命令:

sudoapt-getinstallmpich2

2)安装配置文件并且进行设置:

运行命令1:

touchmpd.conf

运行命令2:

chmod600mpd.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.1hello.c编译与运行结果

分析:

hello.c是非常简单的MPI程序,只用到了MPI中的两个函数,MPI_INIT:

启动MPI环境;MPI_FINALIZE:

结束MPI环境。

编译时确定进程数后,即可显示每个进程的结果。

图1.2who.c编译与运行结果

分析:

who.c中除了用到了MPI_INIT和MPI_FINALIZE之外,还用到了MPI_Comm_rank:

确定自己的进程标识符;MPI_Comm_size:

确定进程数。

在编译运行时就可以另每个进程标识自己了。

图1.3mpti.c编译与运行结果

分析:

mpti.c同样用到了MPI_Init、MPI_Finalize()、MPI_Comm_rank、MPI_Comm_size。

并在who.c的基础上添加了计算圆周率的功能,

图1.4message.c编译与运行结果

分析:

message.c在前面几个程序的基础上使用了函数MPI_Recv:

接收其它进程消息;MPI_Send:

发送一条消息。

因此,这个程序实现了进程间的消息传递。

图1.5isend.c编译与运行结果

分析:

isend.c较为复杂,同样实现的进程间消息的传递。

消息传递模型中各个进程只能直接访问其局部内存空间,而对其他进程的局部内存空间的访问只能通过消息传递来实现。

阻塞和非阻塞通信的主要区别在于返回后的资源可用性。

阻塞通信返回的条件:

1通信操作已经完成,及消息已经发送或接收。

2调用的缓冲区可用。

若是发送操作,则该缓冲区可以被其它的操作更新;若是接收操作,该缓冲区的数据已经完整,可以被正确引用。

非阻塞通信返回后并不意味着通信操作的完成。

 

实验二

1.实验题目:

共享存储模型与消息传递模型的比较

2.实验目的:

比较共享存储模型与消息传递模型之间的区别。

了解多线程并行和消息传递并行的工作机制。

3.实验内容:

首先进行Linux下编译器GCC的安装与程序的编译运行。

1)编译器GCC安装

sudoapt-getinstallbuild-essential

2)GCC编译与运行OMP程序

编译:

gcc–fopenmp[sousefile]–o[destinationfile]

运行:

./[destinationfile]

MPI平台的安装与程序的编译运行见实验一。

统计10000个随机数中3出现的次数。

OPENMP线程数可为1、2、4等。

MPI程序进程数可为1、2、4等。

分别利用Ubuntu系统下的GCC,MPI编译运行。

4.实验结果与分析:

利用GCC编译运行共享存储模型程序代码,运行结果如图2.1。

图2.1共享存储模型程序运行结果

从图2.1中可能看出,共享存储模型程序1线程下运行时间为0.000488秒,2线程下运行时间为0.004853秒,4线程下运行时间为0.005289秒。

三类不同线程状态下统计出的随机数的数量均为959个。

openMP可以实现拆分循环,每个线程平均负责一部分随机数出现次数的计算,从而加快了计算速度。

利用MPI编译运行消息传递模型程序代码,结果如图2.2所示。

图2.2消息传递模型程序运行结果

从图2.2看出消息传递模型统计出的随机数个数并不相同,1线程下随机数个数为959,2线程下随机数个数为968,4线程下随机数个数为1028。

此MPI程序利用到MPI_Recv、MPI_Send函数进行消息的传递与接收,并通过MPI_Reduce函数进行归约,从而达到计算随机数个数的目的。

消息传递模型程序见附录。

共享存储模型利用共享变量实现并行进程间的通信。

消息传递模型中,驻留在不同节点上的进程可以通过传递消息互相通信。

两者各有利弊,一个适合用单线程操作于密集的数据结构,一个在异步多线程条件下更有优势。

实验三

实验题目:

八皇后问题

实验目的:

(1)八皇后问题是计算机中经典智能搜索问题。

掌握在MPI虚拟机上进行八皇后问题求解算法及其程序设计、运行。

(2)在分析八皇后的并行算法和MPI源程序基础上。

查找相关参考资料,对于一般的n皇后问题,设计其并行算法及其程序,并运行结果。

实验内容:

在单机或多机上完成8、12、16、32等n皇后问题求解,并比较运行时间,计算加速比。

本实验以11皇后为例,利用MPI编译与运行,通过比较不同线程下的运行时间,计算加速比。

实验结果与分析:

在各个不同线程下求得11皇后的分布结果与用时如图3.1,图3.2,图3.3,图3.4所示。

图3.1单线程下11皇后的分布结果与用时

单线程下11皇后运行时间为0.64秒,结果为2680个。

图3.2双线程下11皇后的分布结果与用时

双线程下11皇后的运行时间为0.36,结果不变,可得加速比为:

0.64/0.36=1.778。

图3.3四线程下11皇后的分布结果与用时

双线程下11皇后的运行时间为0.37,结果不变。

可得加速比为:

0.64/0.37=1.740。

图3.4八线程下11皇后的分布结果与用时

八线程下11皇后的运行时间为0.37,结果不变。

可得加速比为:

0.64/0.37=1.740。

从运行时间与加速比可以看出,多线程下确实加快的求解的速度,但一味的增加线程数量并不是总能提高求解速度,反而会增加并行开销,使求解时间变长。

此实验条件下双线程下求解效果最好。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1