前提
已安装vscode
安装msmpi
下载地址
https://www.microsoft.com/en-us/download/details.aspx?id=100593
两种安装包二选一即可。
安装提示
- 打开cmd,输入
set MSMPI
- 显示如下图,则说明安装成功。后面所有相关目录均为安装后set MSMPI显示的相关目录,会根据安装时选择的文件夹而不同。
配置vscode
在.vscode文件夹中添加includePath
"D:/Microsoft SDKs/MPI/Include"
测试C++代码
C++代码:
#include <stdint.h>
#include <mpi.h>
#include <iostream>
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);
std)cout << "Hello World! Process "<< myid <<" of "<< numprocs <<" on "<< processor_name << std)endl;
MPI_Finalize();
return 0;
}
在终端中编译运行,结果如下图:
附录
在终端中编译运行的命令:
- 编译
C语言:
gcc 源文件文件名 -o 可执行文件文件名 -fopenmp -l msmpi -L "D:\Microsoft SDKs\MPI\Lib\x64" -I "D:\Microsoft SDKs\MPI\Include"
C++:
g++ 源文件文件名 -o 可执行文件文件名 -fopenmp -l msmpi -L "D:\Microsoft SDKs\MPI\Lib\x64" -I \"D:\Microsoft SDKs\MPI\Include"
- 再执行:
mpiexec -n 进程数 可执行文件文件名
可配置Code Runner扩展(对于C/C++):
- 打开扩展设置:
- 找到Executor Map,在settings.json中编辑:
- 在“code-runner.executorMap”中添加:
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt -fopenmp -l msmpi -L \"D:\\Microsoft SDKs\\MPI\\Lib\\x64\" -I \"D:\\Microsoft SDKs\\MPI\\Include\" && mpiexec -n 4 $fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -fopenmp -l msmpi -L \"D:\\Microsoft SDKs\\MPI\\Lib\\x64\" -I \"D:\\Microsoft SDKs\\MPI\\Include\" && mpiexec -n 4 $fileNameWithoutExt",
上面最后的mpiexec -n 4 $fileNameWithoutExt
中4是进程数,可自行设置。