如何在win10+vs2013上配置MPI并行编程环境
2018-01-13 本文已影响267人
没对象的野指针
笔者初学并行计算这一行,要做并行编程,第一步很定是先配置编程环境了。
1. 准备工作
操作系统:win10
编译器:vs2013
2. 下载并安装MPICH ForWindows
MPI是一个接口规范,我们需要MPICH文件来实现。
首先,我们进入http://www.mpich.org/downloads/站点根据操作系统下载。由于我们使用的是Win10系统,拉到下载网页最底部,最新的MPICH实现已经由微软官网托管,我们直接进去下载。
![](https://img.haomeiwen.com/i9724415/1c4a911297beb1fe.png)
进去后,选择最新的V8.1下载,包含两个文件:msmpisdk.msi和MSMpiSetup.exe。
载完毕直接分别安装这两个程序,都点下一步,下一步即可。
![](https://img.haomeiwen.com/i9724415/6ac19977ac59a217.png)
![](https://img.haomeiwen.com/i9724415/0f0aeaa7a03d9346.png)
![](https://img.haomeiwen.com/i9724415/9147db578f6186af.png)
3. 配置VS2013,编写个HelloWord测试程序
3.1新建一个C++ 的win32项目,起名为HelloWord_MPI
![](https://img.haomeiwen.com/i9724415/6ad4638e3398b4ea.png)
3.2 点击下一步,在“应用程序类型”中选择“控制台应用程序”,“附加项”中选择“空项目”。点击完成。
![](https://img.haomeiwen.com/i9724415/494463125b500e4c.png)
3.3 点击“调试”->“属性”
![](https://img.haomeiwen.com/i9724415/31f3c75fa118b508.png)
3.4 点击“配置管理器”
![](https://img.haomeiwen.com/i9724415/4deaef5623453bfd.png)
在“活动解决方案平台”下选择“新建”
![](https://img.haomeiwen.com/i9724415/1b6de14aae399c72.png)
把“ARM”替换为“X64”
![](https://img.haomeiwen.com/i9724415/c3d3b10abf62f1c1.png)
3.5 选择C/C++ ->预处理器->“编辑”,添加:MPICH_SKIP_MPICXX
![](https://img.haomeiwen.com/i9724415/2b91cee4fac01a7e.png)
![](https://img.haomeiwen.com/i9724415/b6c7a85582820b60.png)
3.6 C/C++ -> 代码生成 -> 运行库,选择:多线程调试(/MTd)
![](https://img.haomeiwen.com/i9724415/c4cbf2308d2eb9a2.png)
3.7 链接器 -> 输入 -> 附加依赖项,添加:msmpi.lib
![](https://img.haomeiwen.com/i9724415/534d6f9da06c787d.png)
![](https://img.haomeiwen.com/i9724415/ae493e715c5ca0ae.png)
3.8 在VC++目录这一项中在包含目录中添加C:\Program Files (x86)\Microsoft SDKs\MPI\Include; 在库目录的里面添加:C:\ProgramFiles (x86)\Microsoft SDKs\MPI\Lib\x64;
![](https://img.haomeiwen.com/i9724415/05a17ce1e4d95df2.png)
最后,点击应用,确定,这样编译器的环境就配置完成了!!!
4. 新建一个WelloWord.cpp。
![](https://img.haomeiwen.com/i9724415/33899ca7c4bc2377.png)
![](https://img.haomeiwen.com/i9724415/f71ab029a6be9b59.png)
编写如下代码
#include<stdio.h>
#include<mpi.h>
int main(int argc, char *argv[])
{
int myid, numprocs, namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &myid);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Get_processor_name(processor_name, &namelen);
if (myid == 0) printf("number of processes: %d\n", numprocs);
printf("%s: Hello world from process %d \n", processor_name,myid);
MPI_Finalize();
return 0;
}
注意:如果代码有红线,请重新进行步骤3.8
编译整个项目,将编译得到的 exe文件(HelloWord_MPI\x64\Debug文件夹下)放在安装的MS-MPI的bin目录(默认为:C:\ProgramFiles\Microsoft MPI\Bin)下,在这个Bin目录下按住shift键于空白处右键单击,打开powershell窗口,输入 mpiexec -n 8 HelloWord_MPI.exe 得到运行结果,如下图:
![](https://img.haomeiwen.com/i9724415/e5db3ca2c13655e8.png)