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 \#include
MPI_Status status; char
string[]=\ int myid;
MPI_Init(NULL,NULL);
MPI_Comm_rank(MPI_COMM_WORLD,&myid); if(myid==2)
MPI_Send(\ if(myid==7){
MPI_Recv(string,5,MPI_CHAR,2,MPI_ANY_TAG,MPI_COMM_WORLD,&status); printf(\ %s from P%d,tag
%d\\n\ }
MPI_Finalize(); }
运行环境配置过程:(这个是在根据网上的环境配置教程做的)
1、安装软件MPICH2,本次操作安装在C:\\Program Files\\MPICH2文件夹中。
2、打开安装好的MPICH2目录,打开bin文件夹中的wmpiregister.exe文件,进行注册。 填入本机的用户名和密码。
3、建立一个控制台应用程序空文档,MY MPI, 输入程序
4、添加库和包含文件 打开Tool->Options对话框
选择项目和解决方案下的VC++目录一栏,如下图所示:
分别添加包含文件C:\\Program Files\\MPICH2\\include
和库文件C:\\Program Files\\MPICH2\\lib
5、取消预编译头
打开Project->Property,设置框如下图所示
展开C/C++项,选择与编译头,在创建/使用预编译头中选择:不使用预编译头