文档详情

MPI综合实验答题.docx

发布:2017-04-16约4.99千字共12页下载文档
文本预览下载声明
MPI综合实验报告 目前三次MPI实验已经结束,结合之前所写的实验报告,对总体的实验内容做一个总结。 参考资料: MPI简介 多线程是一种便捷的模型,其中每个线程都可以访问其它线程的存储空间。因此,这种模型只能在共享存储系统之间移植。一般来讲,并行机不一定在各处理器之间共享存储,当面向非共享存储系统开发并行程序时,程序的各部分之间通过来回传递消息的方式通信。要使得消息传递方式可移植,就需要采用标准的消息传递库。这就促成的消息传递接口(Message Passing Interface, MPI)的面世,MPI是一种被广泛采用的消息传递标准[1]。 与OpenMP并行程序不同,MPI是一种基于消息传递的并行编程技术。消息传递接口是一种编程接口标准,而不是一种具体的编程语言。简而言之,MPI标准定义了一组具有可移植性的编程接口。各个厂商或组织遵循这些标准实现自己的MPI软件包,典型的实现包括开放源代码的MPICH、LAM MPI以及不开放源代码的Intel MPI。由于MPI提供了统一的编程接口,程序员只需要设计好并行算法,使用相应的MPI库就可以实现基于消息传递的并行计算。MPI支持多种操作系统,包括大多数的类UNIX和Windows系统。 三次实验总结 第一次实验: 实验要求:配置好MPI运行的基本环境,测试MPI的基本通信程序。 程序: #include stdafx.h #include mpi.h void main( void ) { MPI_Status status; char string[]=xxxxx; int myid; MPI_Init(NULL,NULL); MPI_Comm_rank(MPI_COMM_WORLD,myid); if(myid==2) MPI_Send(HELLO,5,MPI_CHAR,7,1234,MPI_COMM_WORLD); if(myid==7){ MPI_Recv(string,5,MPI_CHAR,2,MPI_ANY_TAG,MPI_COMM_WORLD,status); printf(Got %s from P%d,tag %d\n,string,status,status.MPI_SOURCE,status.MPI_TAG); } MPI_Finalize(); } 运行环境配置过程:(这个是在根据网上的环境配置教程做的) 安装软件MPICH2,本次操作安装在C:\Program Files\MPICH2文件夹中。 打开安装好的MPICH2目录,打开bin文件夹中的wmpiregister.exe文件,进行注册。 填入本机的用户名和密码。 建立一个控制台应用程序空文档,MY MPI, 输入程序 4、添加库和包含文件 打开Tool-Options对话框 选择项目和解决方案下的VC++目录一栏,如下图所示: 分别添加包含文件C:\Program Files\MPICH2\include 和库文件C:\Program Files\MPICH2\lib 取消预编译头 打开Project-Property,设置框如下图所示 展开C/C++项,选择与编译头,在创建/使用预编译头中选择 :不使用预编译头 6、打开Project-Property,设置框如下图所示 将配置属性中的常规项中的字符集设置成未设置 展开连接器中输入项,在附件依赖项中添加mpi.lib 自定义多线程运行 打开MPICH2安装目录显得mpiexec.exe 装入运行产生的.exe文件并选择线程数,运行结果如下图所示 第二次实验 实验要求:MPI实验第二部分 1. 了解计算粒度、问题规模(计算负载)、并行程度概念; 2. 测试基于MPI的Pi并行计算程序; 3. 完成实验报告(MPI程序代码、运行结果截屏、实验分析总结) 在这次的实验过程中,我们的程序是通过数值方法计算 的值来观察运行时间。 程序: #include stdafx.h #include stdio.h #include mpi.h static long num_steps = 100000; void main(int argc, char* argv[]) { int i_start, i_end, i, myid, numprocs; double pi, mypi, x, step, sum = 0.0; double start, end; MPI_Init(argc, argv); MPI_Comm_size(MPI_COMM_WORLD, numprocs); MPI_Comm_rank(MPI_COMM_WORLD, m
显示全部
相似文档