1.首先,下载32位的MPICH2,(注意哦,是32位,不是64位)

http://202.117.4.228/files/B117000000042632/www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.4.1p1/mpich2-1.4.1p1-win-ia32.msi

2.安装msi文件,为了省事,一切都按照默认的配置,直至安装完成

3.WIN7下,有的机子装得时候smpd是自动安装的,有的机子win7smpd.exe这个组件不会自动运行安装,需要你在管理员的账户下运行,进行安装注册。

4. smpd没有自动安装,在运行MPI( 即点击execute )的时候会提示smpd文件没有注册phrase

安装smpd的方法就是:

 以管理员身份运行cmd,方法为:点击开始菜单; 

                                 在搜索框中输入“cmd”,将会在返回的搜索结果中看到cmd的快捷方式; 

                                 右键单击该快捷方式; 

在弹出菜单中选择打开文件位置,这样,在接下来弹出的文件夹中把cmd.exe文件复制到MPICH2的路径下的bin文件夹下,MPICH2的安装位置默认为  C:\Program Files (x86)\MPICH2\bin

右击C:\Program Files (x86)\MPICH2\bin\cmd.exe 文件,选择“以管理员身份运行”;

进入之后,smpd.exe -install -phrase behappy;

出现下图,即表示安装smpd.exe成功。

 

5.接下来就是配置过程了。以下是配置标准c++工程的过程,供参考。

5.1.将Win32改为x64,如下图

 

5.2. 展开左边Configuration Properties,选中其中的C/C++,在右边Additional Include Directories加入MPICH2安装文件下的include文件夹,如“C:\Program Files\MPICH2\include;”

 

5.3. 展开左边Linker,选中其中的General,在右边Additional Library Directories加入MPICH2安装文件夹下的lib文件夹,如“C:\Program Files\MPICH2\lib;”

 

 

5.4. 展开左边Linker,选中其中的Input,在右边Additional Dependencies加入“mpi.lib;”

 

至此,配置完成。

6.在开始菜单下运行mpiexec.exe

 

7.选择需要运行的exe文件,选择需要的进程数,最后点击Execute按钮即可。

8.下面是其他形式的配置说明。

后面具体的配置过程在网上可以找到,记录一下:

1)然后用VS创建一个C++Win32控制台空项目,加入你的资源文件。
2)打开项目属性对话框。
3)进入配置属性
1>配置为DebugRelease的时候,“C/C++”选项卡里面的代码生成选项卡,选择运行时库多线程(/MT)”
2>配置为所有配置的时候,“C/C++”选项卡里面的常规选项卡,为附加包含目录加入目录“C:\Program Files\MPICH2\Include”
3>配置为所有配置的时候,链接器选项卡里面的常规选项卡,为附加库目录加入目录“C:\Program Files\MPICH2\Lib”
4>配置为所有配置的时候,链接器选项卡里面的命令行选项卡,为附加选项加入“mpi.lib,fmpich2.lib”
5>配置为Debug的时候,链接器选项卡里面的命令行选项卡,为附加选项加入“cxxd.lib”
6>配置为Release的时候,链接器选项卡里面的命令行选项卡,为附加选项加入“cxx.lib”
7>上面库文件中mpi.lib是用于C语言库,cxx.lib是用于C++语言库(cxxd.libdebug版本)fmpich2.lib是用于Fortran语言库,可根据使用情况相应增减。
8>进入常规->(项目默认值)MFC的使用,右边选择->在静态库中使用 MFC,可使生成的.exe文件拷贝到其它电脑也能单独运行。
4)配置完成,可以编译并运行你的并行程序了。

这个过程在官网上也有说明:

http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.3.2-windevguide.pdf

不过需要注意的事,这些IDE都是比较早得版本,和我们用vs2010不太一样,但是设置的东西都一样,位置变了而已。

最后,由于mpiexec执行是通过port进行线程间交换数据的,所以如果遇到问题,还要注意配置防火墙配置。除了一些第三方防火墙,比如360防火墙要设置外,也不要设置windows自身带的防火墙。如果不会设置,最简单的方法就是将防火墙统统关闭。在不使用mpiexec的时候再打开防火墙。


转载地址:http://gengyanhui111.blog.163.com/blog/static/1401502102012521100365/