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是自动安装的,有的机子win7下smpd.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>配置为Debug和Release的时候,“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.lib是debug版本),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/