并行处理及体系结构实验报告
Parallel Computing and architecture Experiment Report
班级:
学号:
姓名:
指导教师:
信息学院
20##年 11 月
实验一 MPI安装与程序编译、运行和调试
1. 实验目的
搭建MPI并行编程环境,开发并行程序;学习并行程序的编写、编译、运行步骤,了解系统结构对编程模式和环境工具的影响。
2. 实验内容
在计算机局域网上安装MPICH2虚拟机,用一个简单的计算实例进行测试。运行\实验代码\MPI运行程序\ 文件夹下面的hello.c、who.c、message.c、isend.c和mtpi.c程序实例,体会MPI中获取进程标识、消息传递及非阻塞通信等工作模式。
3.实验结果分析:
图1-1计算Pi值运行结果界面(测试安装成功)
图1-2 hello.c运行结果界面
图1-3 isend.c运行结果界面
图1-4 message.c运行结果
图1-5 who.c 运行结果
非阻塞消息传递机制与阻塞消息传递机制的区别:阻塞和非阻塞通信的主要区别在于返回后的资源可用性。阻塞通信返回的条件:
通信操作已经完成,即消息已经发送或接收;调用的缓冲区可用。若是发送操作,则该缓冲区可以被其它的操作更新;若是接收操作,该缓冲区的数据已经完整,可以被正确引用。非阻塞通信返回后并不意味着通信操作的完成,MPI还提供了对非阻塞通信完成的检测,主要的有两种:MPI_Wait函数和MPI_Test函数。
实验二 共享存储模型与消息传递模型的比较
一、实验目的
比较共享存储模型与消息传递模型之间的区别。了解多线程并行和消息传递并行的工作机制。
二、实验内容
统计10000个随机数中3出现的次数。OPENMP线程数可为1、2、4等。MPI程序进程数可为1、2、4等。
三、实验结果分析
图2-1共享存储模型:线程数为1时统计随机数中3出现的次数
图2-2共享存储模型:线程数为2时统计随机数中3出现的次数
图2-3共享存储模型:线程数为4时统计随机数中3出现的次数
图2-4消息传递模型:线程数为1时统计随机数中3出现的次数
图2-5消息传递模型:线程数为2时统计随机数中3出现的次数
图2-6消息传递模型:线程数为4时统计随机数中3出现的次数
共享存储编程模型和消息传递编程模型的区别:共享存储编程模型中,所有结点共享存储空间,消息传递模型中各个进程只能直接访问其局部内存空间,而对其他进程的局部内存空间的访问只能通过消息传递来实现。共享存储模型(适于PVP, SMP, DSM),消息传递模型(适于MPP, Cluster, COW)。消息传递编程模型:编程级别相对较低,但可以有更广泛的应用范围。消息传递即各个并行执行的部分之间通过传递消息来交换信息、协调步伐、控制执行。消息传递一般 是面向分布式内存的,但是它也可适用于共享内存的并行机。消息传递为编程者提供了更灵活的控制手段和表达并行的方法,一些用数据并行方法很难表达的并行算 法都可以用消息传递模型来实现。灵活性和控制手段的多样化是消息传递并行程序能提供高的执行效率的重要原因。
消息传递模型一方面为编程者提供了灵活性,另一方面,它也将各个并行执行部分之间复杂的信息交换和协调 控制的任务交给了编程者,这在一定程度上增加了编程者的负担。这也是消息传递编程模型编程级别低的主要原因。虽然如此,消息传递的基本通信模式是简单和清楚的,学习和掌握这些部分并不困难,因此目前大量的并行程序设计仍然是消息传递并行编程模式。共享存储程序设计比消息传递程序设计更加容易,因为进程间的数据交换可利用共享存储器来实现。但共享存储程序设计需要设计都使用特殊的机制(如临界段等)来协调各个进程对数据的访问。
实验三 快速排序
一、实验目的
快速排序是计算机中常用的、典型非数值算法。熟悉并掌握在MPI虚拟机上进行快速排序的算法及其程序设计、运行。
二、实验内容
在单机或多机上完成快速排序,并比较运行时间,计算加速比,并与枚举排序对比分析结果。
三、实验结果分析
图3-1线程数为1(串行程序)时对4444个数进行排序后的结果及其所用时间
图3-2线程数为2时对4444个数进行排序后的结果及其所用时间
图33线程数为4时对4444个数进行排序后的结果及其所用时间
1)由图1及图2排序所用时间对比知:在一定条件下,增加进程(或处理器)的数目能加快问题的求解速度。由图2及图4所用时间对比知,用消息传递模型所设计的并行程序,由于各通信带来的开销,问题的解决速度随着进程(或处理器)数目的增多反而下降,故并行程序在解决较大规模的问题时会有更显著的效果。
2)加速比:R1=T1/T2=1.04922,R2=T1/T3=0.869506
四、快速排序的并行算法
快速排序算法并行化的一个简单思想是,对每次划分过后所得到的两个序列分别使用两个处理器完成递归排序。例如对一个长为n的序列,首先划分得到两个长为n/2的序列,将其交给两个处理器分别处理;而后进一步划分得到四个长为n/4的序列,再分别交给四个处理器处理;如此递归下去最终得到排序好的序列。当然这里举的是理想的划分情况,如果划分步骤不能达到平均分配的目的,那么排序的效率会相对较差。算法13.4中描述了使用2m个处理器完成对n个输入数据排序的并行算法。
算法5.2 快速排序并行算法
输入:无序数组data[1,n],使用的处理器个数2m
输出:有序数组data[1,n]
Begin
para_quicksort(data,1,n,m,0)
End
procedure para_quicksort(data,i,j,m,id)
Begin
(1) if (j-i)≤k or m=0 then
(1.1) Pidcall quicksort(data,i,j)
else
(1.2) Pid: r=patrition(data,i,j)
(1.3) P idsend data[r+1,m-1] to Pid+2m-1
(1.4) para_quicksort(data,i,r-1,m-1,id)
(1.5) para_quicksort(data,r+1,j,m-1,id+2m-1)
(1.6) Pid+2m-1send data[r+1,m-1] back to Pid
end if
End
在最优的情况下该并行算法形成一个高度为logn的排序树,其计算复杂度为O(n),通信复杂度也为O(n)。同串行算法一样,在最坏情况下其计算复杂度降为O(n2)。正常情况下该算法的计算复杂度也为O(n),只不过具有更高的常数因子。
第二篇:实验报告 (2)
重庆大学
学生实验报告
实验课程名称
开课实验室
学 院 年级 专业 班
学生姓名 学 号
开课时间 至 学年第 学期
材料科学与工程学院
实验目的:
实验材料(品种、等级、生产厂家):
实验用主要仪器设备及其量程、精度或规格:
实验步骤:
实验结果:
问题:减水剂的主要作用是什么?
实验目的:
实验材料(品种、等级、生产厂家):
实验用主要仪器设备及其量程、精度或规格:
实验步骤:
实验结果:
问题:简述减水剂的作用机理。
实验目的:
实验材料(品种、等级、生产厂家):
实验用主要仪器设备及其量程、精度或规格:
实验步骤:
实验结果:
问题:简述影响混凝土坍落度损失的原因。
实验目的:
实验材料(品种、等级、生产厂家):
实验用主要仪器设备及其量程、精度或规格:
实验步骤:
实验结果:
问题:轻集料用于泵送混凝土中应该注意哪些事项?