Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法

目录

  • 前言
  • 一、下载并安装MPI
  • 二、配置Visual Studio 2019
  • 三、编写代码并运行
    • (1)代码
    • (2)使用VS直接运行MPI程序


前言

大三上的时候学校里开了一门并行计算的基础课,学到了挺多东西,当时写了挺多文档,但都是word版本的。最近时间充裕,打算修改一下发到博客上帮助更多的人。欢迎留言讨论,有瑕疵还望见谅!


一、下载并安装MPI

最新的MPI已经由微软进行托管,网址如下:

http://www.mpich.org/downloads/

进入后选择自己对应的操作系统,本文以Windows10为例。点击http进入。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第1张图片
找到Downloads部分,选择最新的下载即可。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第2张图片
将两个都勾选上,进行下载。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第3张图片
下载后得到两个文件,分别进行安装即可,我将其装在了D盘。安装完成后,得到两个文件夹,如下。

在这里插入图片描述
MSMPI已经帮助我们配置好了Path变量,我们无需手动进行配置。接下来,可以验证一下安装是否成功。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第4张图片
Win+R调出cmd,输入指令set MSMPI,如果出现类似如上图的地址,就表示安装已经成功。


二、配置Visual Studio 2019

接下来,我们需要配置Visual Studio 2019。首先,打开VS,选择创建新项目-控制台应用,创建在方便找到的位置即可。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第5张图片

创建成功后,会显示一个带有简易的C++程序的完整项目,在右侧的解决方案资源管理器中的对应项目名处右键,选择属性。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第6张图片

之后要进行以下操作:

  • 在跳出来的页面中选择配置管理器,选择平台为x64

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第7张图片

  • 选择C/C++→预处理器→“编辑”,添加:MPICH_SKIP_MPICXX。当然,你也可以直接添加,但别忘了分号。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第8张图片

  • C/C++ →代码生成→运行库,选择:多线程调试(/MTd)

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第9张图片

  • 链接器→输入→附加依赖项,添加:msmpi.lib

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第10张图片

  • VC++目录→包含目录,添加:$(MPI安装位置)\Microsoft SDKs\MPI\Include;

  • VC++目录→库目录添加:$(MPI安装位置)\Microsoft SDKs\MPI\Lib\x64;
    其中,$(MPI安装位置)为你安装MPI的位置,如:D:\Software

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第11张图片

等配置好之后,程序就可以编译成功了。

如果程序中出现红线,可能原因有以下几个:

  • 你的平台选择错误,请选择你按照上述步骤更改后的平台;
  • 上述步骤有误,重新配置;
  • MPI安装错误,重新安装。

那么,是不是我们每次配置好一个新程序都需要重新配置呢?并不是这样。打开你的工程目录,找到两个.vcxproj文件,这两个文件决定了你的配置,所以,只需要在你创建新项目之后,将这两个文件替换了(记得改名成对应工程名),即可免去繁复的手工配置过程。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第12张图片


三、编写代码并运行

(1)代码

接下来,编写一个Hello World程序,并按F5进行编译运行。程序如下。

#include 
#include 

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;

}

(2)使用VS直接运行MPI程序

当你的代码可以编译运行的时候,你有两种选择:控制台执行或者VS直接执行。网上大多数都介绍了如何用控制台进行执行,即:调出cmd,cd到程序所在目录下(往往是你项目所在的文件夹中的Debug文件夹中),执行mpiexec指令,如上图所示。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第13张图片
但这样有点儿麻烦。我在此介绍一种用VS即可运行的方式。如果你直接按F5,往往只能默认单进程运行,如下所示:

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第14张图片

这时,需要为它的执行添加一些参数即可解决问题。打开项目的属性页-调试,更改命令和命令参数如下。

  • 命令是需要执行的进程,为你安装MPI的位置中mpiexec.exe文件的位置
  • 命令参数为执行这个程序所需要的参数
  • -n 8是我选择的进程数
  • $(TargetPath) 即为编写的cpp程序的位置。

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第15张图片

这样,再按F5执行,即可在VS中直接按照多进程程序运行。执行结果如下:

Windows10+VisualStudio2019配置MPI 附在VS中直接运行MPI程序的方法_第16张图片

你可能感兴趣的:(并行计算,c++,并行计算)