VS2012下配置MPI

1、下载并安装MPICH2,下载地址为:

http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.2.1p1/mpich2-1.2.1p1-win-ia32.msi

安装成功后,在开始菜单中会出现如下文件夹:


这就说明已成功安装MPICH2注意安装路径不要包含中文文件名。

2、打开VS2012,新建项目及源文件,如下:


3、在项目上点击右键,选择“Properties”,如下:

4、引入mpi头文件和库

1)在左边找到“VC++ Directions”,在右边找到“Include Directories”,在此项的最后面(注意每项以分号间隔)加上MPICH2的安装路径下的include文件的路径,例如:“D:\software\MPICH2\include”

2)左边还是“VC++ Directions”,在右边找到“Library Directories”,在此项的最后添加MPICH2安装路径下的lib文件的路径,如“D:\software\MPICH2\lib”

5、因为VCIO库与MPI头文件中的宏定义有冲突,所以需要预定义一个MPICH_SKIP_MPICXX宏,使得编译时跳过MPICXX定义。在如下位置加上“MPICH_SKIP_MPICXX”即可。

如果不设置此步,也可在程序中预定义此宏,如“#define MPICH_SKIP_MPICXX”。不过还是设置的比较好,因为不用自己每次都定义一个宏了。

6、设置运行库为多线程

在如下位置选择“Multi-threaded Debug (/MTd)”,可以通过下拉单选择。

7、添加连接库

在如下位置添加“mpi.lib”

8、注册MPI,使得系统知道它。

打开“开始”,找到“MPICH2”文件夹,如下:

选择wmpiregister.exe”,如下:

输入用户名和密码(此处的用户名和密码就是你锁屏时的用户名和密码),点击Register”,当下面出现“Password encrypted into the Register”后点击“OK”即可。

9、运行程序

1)先在VS中编译源程序,得到.exe文件;

2)打开“开始”,找到“MPICH2”文件夹下的“wmpiexec.exe”,如下:

选择刚才编译得到的.exe文件,如“D:\program\vs_code\MPI_01\Release\MPI_01.exe

设置线程数Number of processes”,例如:4

点击执行Execute”,在下面的编辑框中会出现运行的结果,如下:

测试代码如下:

#include "mpi.h"   
#include<stdio.h>
int main(int argc, char* argv[])  
{  
	int myid, numprocs;  
	int 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);  
  
	printf("Hello World! Process %d of %d on %s\n", myid, numprocs, processor_name);  
  
	MPI_Finalize();  
	return 0;  
}

猜你喜欢

转载自blog.csdn.net/weixin_40679412/article/details/80543331