2024年2月19日发(作者:)
VS2012下配置MPI开发环境
MPI简介
多线程是一种便捷的模型,其中每个线程都可以访问其它线程的存储空间。因此,这种模型只能在共享存储系统之间移植。一般来讲,并行机不一定在各处理器之间共享存储,当面向非共享存储系统开发并行程序时,程序的各部分之间通过来回传递消息的方式通信。要使得消息传递方式可移植,就需要采用标准的消息传递库。这就促成的消息传递接口(Message
Passing Interface, MPI)的面世,MPI是一种被广泛采用的消息传递标准[1]。
与OpenMP并行程序不同,MPI是一种基于消息传递的并行编程技术。消息传递接口是一种编程接口标准,而不是一种具体的编程语言。简而言之,MPI标准定义了一组具有可移植性的编程接口。各个厂商或组织遵循这些标准实现自己的MPI软件包,典型的实现包括开放源代码的MPICH、LAM MPI以及不开放源代码的Intel MPI。由于MPI提供了统一的编程接口,程序员只需要设计好并行算法,使用相应的MPI库就可以实现基于消息传递的并行计算。MPI支持多种操作系统,包括大多数的类UNIX和Windows系统。
如何实现MPI
MPI是一个标准。它不属于任何一个厂商,不依赖于某个操作系统,也不是一种并行编程语言。不同的厂商和组织遵循着这个标准推出各自的实现,而不同的实现也会有其不同的特点。MPICH是影响最大、用户最多的MPI实现。目前可下载的最新的MPICH软件包为MPICH1.2.7pl和2008年2月15日发布的MPICH 2-1.0.7测试版(我使用的是MPICH
2-1.0.6pl),在/research/projects/mpich2/可以下载到,分别有支持UNIX和Windows的32位和64位版本。
MPI程序的特点
MPI程序是基于消息传递的并行程序。消息传递指的是并行执行的各个进程具有自己独立的堆栈和代码段,作为互不相关的多个程序独立执行,进程之间的信息交互完全通过显示地调用通信函数来完成。
1.下载安装
首先从/downloads/下载并安装对应自己电脑系统的版本的MPICH2。。我的电脑是win7 64位的系统,下载的是x86-64。
2.配置
1) 安装完成后,打开“开始-所有程序-MPICH-” ,在Account中输入本机用户名,在password中输入本机密码,点击Register按钮注册并按OK按钮退出。
2) 在VS2012中建立一个项目(我用的是Win32项目),在项目名称上右键选择Properties(属性),即进入Property Pages(属性页)窗口。
3) 展开左边Configuration Properties(配置属性),选中其中的VC++ Directories(VC++目录),在右边Include Directories(包含目录)加入“D:Program FilesMPICH2include;”(自己的安装路径)
4) 展开左边Configuration Properties,选中其中的VC++ Directories,在右边Library
Directories(库目录)加入“D:Program FilesMPICH2lib;”
5) 展开左边Configuration Properties中的C/C++,选中其中的Preprocessor,在右边的Preprocessor Definitions(预处理器)中加入“MPICH_SKIP_MPICXX;”。
6) 同样展开C/C++,选中Code Generation,把右边的Runtime Library更改为“Multi-threaded Debug (/MTd)”(此外有下拉菜单可选到它)。
7) 展开左边的Linker,选中Input,在右边Additional Dependencies中加入“;”。
至此,配置完成。
然后编译如下实例代码:
#include "stdafx.h"
#include "mpi.h"
#include
int main(int argc, char* argv[])
{
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&size);
printf("hello world! from thread %d of %dn",rank,size);
MPI_Finalize();
//system("pause");
return 0;
}
int rank,size;
此时使用win32编译可能会出现如下错误。
原因是因为我的系统是64位的,而且下载的mpi也是64位的,所以在编译的时候需要把环境改为x64
有的电脑可能默认没有x64,需要自己配置。
新建后在“新建平台”选项卡中选x64,在“从此处复制设置”中选win32.。
然后就可以编译运行你的实例程序了。运行情况如下
3.如何调整MPI程序的参数传递?
打开“开始-所有程序-MPICH-”,在Applicationd右边浏览找到你在VS2012中生成的exe文件,设置Number of processes(即进程数目,用来模拟并行计算的CPU数目)。再按Execute按钮运行。
设置进程数为4,运行结果如下:
至此,我们已经在vs2012下配置好了mpi的开发环境了!


发布评论