简单介绍下MPI和OpenMP在vs2019下的配置与使用
MPI和OpenMPI都可以进行代码并行,MPI适合 多机/多核 计算机并行,较为复杂,OpenMP适合单机多核并行,较为简单
一、 MS-MPI安装, 官方网站: https://www.mpich.org/downloads/
两个文件直接安装
在vs工程的项目属性页配置MPI,选择x64平台
(1) “VC++目录”---包含目录 添加(MPI头文件所在的路径) C:\Program Files (x86)\Microsoft SDKs\MPI\Include\x64 和 C:\Program Files (x86)\Microsoft SDKs\MPI\Include;
(2) “VC++目录”---库目录 添加(MPI链接库所在的目录) C:\Program Files (x86)\Microsoft SDKs\MPI\Lib\x64;
(3) C/C++--- 预处理器--- 预处理器定义添加 MPICH_SKIP_MPICXX ;
(4) C/C++--- 代码生成--- 运行库添加:debug模式下添加多线程调试 (/MTd) , release模式下添加多线程 (/MT)
(5) 链接器---输入---附加依赖项添加 msmpi.lib ;
测试一下:
#include<stdio.h>
#include<mpi.h>
#include<stdlib.h>
#include<time.h>
int main(int argc, char* argv[])
{
int myid, numprocs, namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv); // starts MPI
MPI_Comm_rank(MPI_COMM_WORLD, &myid); // get current process id
MPI_Comm_size(MPI_COMM_WORLD, &numprocs); // get number of processes
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;
}
MPICH2 安装
MPICH2可以看作 MS-MPI的子集 ,单独安装MPICH2也可以用
下载MPICH2 https://www.mpich.org/
一路安装-- everyone
注册wrapper, 用户名--密码
验证是否已经安装成功
建立VS工程---添加
VC++目录”---包含目录: C:\Program Files\MPICH2\include
VC++目录”---库目录: C:\Program Files\MPICH2\lib
C/C++ --- 预处理器=>预处理器定义添加 MPICH_SKIP_MPICXX;
C/C++ --- 代码生成=>运行库添加:debug模式下 (/MTd), release模式下 (/MT)
链接器---输入---附加依赖项添加 mpi.lib
运行时,使用MPICH2\bin下的 wmpiexec
选择运行目录---输入处理器数目--点击窗口运行--执行
其它具体详细使用教程:
http://fcode.cn/download/fcode/Win7_Vs2010_MPICH2.pdf
https://blog.csdn.net/cjsh_123456/article/details/80285887
二、OpenMP安装, 官方网站: https://www.open-mpi.org/software/ompi/v4.1/
下载,直接安装
在Vs2019中配置:
(1) 属性--VC++目录--可执行文件目录--添加: C:\Program Files (x86)\OpenMPI_v1.6-x64\bin
属性--VC++目录--包含目录--添加: C:\Program Files (x86)\OpenMPI_v1.6-x64\include
属性--VC++目录--库目录--添加: C:\Program Files (x86)\OpenMPI_v1.6-x64\lib
属性--VC++目录--源目录--添加: C:\Program Files (x86)\OpenMPI_v1.6-x64\include
(2) 属性--C/C++--OpenMP支持 点是
(3) C/C++--- 代码生成--- 运行库添加:debug模式下(/MTd), release模式下 (/MT)
(4) 属性--链接器--输入--附加依赖项--添加:libmpi.lib
其它具体详细使用教程:
https://wenku.baidu.com/view/3d0b56f21711cc7931b716ad.html