基于MS VS2017的Intel Fortran 使用MPI

在安装好VS2017和IVF2019的情况下,

下载安装下列两文件(MPI的环境)

http://www.microsoft.com/en-us/download/confirmation.aspx?id=36044

http://www.microsoft.com/en-us/download/confirmation.aspx?id=36045

然后打开VS2017改环境参数:

1、将C:\Program Files\Microsoft SDKs\MPI\Include,C:\Program Files\Microsoft SDKs\MPI\Include\x86 两个路径添加到additional Include Directories基于MS VS2017的Intel Fortran 使用MPI_第1张图片

2、将F:\Program Files\Microsoft SDKs\MPI\Lib\x86, F:\Program Files\Microsoft SDKs\MPI\Lib 两个目录添加到Additional Library Directories上基于MS VS2017的Intel Fortran 使用MPI_第2张图片

 3、将msmpi.lib msmpifec.lib 两个文件添加到目录下
基于MS VS2017的Intel Fortran 使用MPI_第3张图片

4、将 C:\Program Files\Microsoft MPI\Bin 目录下的文件mpiexec.exe放到VS2017项目的目录下

再改动:基于MS VS2017的Intel Fortran 使用MPI_第4张图片

其中-n 4 的4代表4个并行进程,可人为修改。注意 $(TargetPath) 在VS2017版需要加双引号 “ ”,在2013版不需要引号,笔者在此被坑了好久。其他版本待读者验证。

之后,运行代码验证:

include "mpi.f90"

program main 
    use mpi 
    implicit none 
    character(len=mpi_max_processor_name) :: p_name 
    integer :: myid, numProcs, nameLen, ierr 

    call mpi_init( ierr ) ! 完成 MPI程序 的初始化工作
    !                | 
    !                + ---- 返回代码,与 mpi_success 相等时表示成功(out) 
    call mpi_comm_rank( mpi_comm_world, myid, ierr ) ! 获取当前进程标识号 
    !                        |            |     | 
    !                        |            |     + ---- 返回代码(out) 
    !                        |            + ---------- 返回当前进程标识号(out) 
    !                        + ----------------------- 通信域(in) 
    call mpi_comm_size( mpi_comm_world, numProcs, ierr ) ! 获取通信域包含的进程数 
    !                        |            |         | 
    !                        |            |         + ---- 返回代码(out) 
    !                        |            + -------------- 返回通信域内进程数(out) 
    !                        + --------------------------- 通信域(in) 
    call mpi_get_processor_name( p_name, nameLen, ierr ) ! 获取运行当前进程的机器名 
    !                               |       |       | 
    !                               |       |       + ---- 返回代码(out) 
    !                               |       + ------------ 返回机器名长度(out) 
    !                               + -------------------- 返回机器名(out) 
    write(*,*) "Hello World! Processor ",myid," of ",numProcs," on ",p_name(1:nameLen) 
    call mpi_finalize( ierr ) ! 完成 MPI程序 的结束工作 
end program 

输出:

基于MS VS2017的Intel Fortran 使用MPI_第5张图片

证明多核运行成功!可以进行自己的MPI程序编写啦! 

你可能感兴趣的:(学习心得)