在VS+IVF下配置mpi并行开发环境
在Fortran中采用mpi并行处理可以开启多个线程,提升程序运行速率,下面以VS+IVF Fortran(2013)这个版本为例说明如何配置mpi并行环境。
1. 下载mpi插件(mpi在Windows下的环境)
- 下载两个文件msmpisdk.msi和msmpisetup.exe下载地址
注意:尽量不要安装10版本的,可能与您较低的VS版本不匹配,选择9版本的就可以了,选择其中一个下载。 - 我这里下载了一个版本,大家可以使用百度网盘,提取码:s9fg
2.安装并配置环境
将两个文件分别双击打开安装,安装过程中不要更改任何选项和路径(也可以更改,但为了和我后期的步骤相符,请勿修改)。
msmpisdk.msi的默认安装路径是C:\Program Files (x86)\Microsoft SDKs\MPI;而 msmpisetup.exe的默认安装路径是C:\Program Files\Microsoft MPI。
该环境的配置在VS这个项目的的属性中更改:
-
在【配置属性】——【Fortran】——【General】——【Additional Inclue Directories】中添加include项目 :C:\Program Files (x86)\Microsoft SDKs\MPI\Include;C:\Program Files (x86)\Microsoft SDKs\MPI\Include\x64;C:\Program Files (x86)\Microsoft SDKs\MPI\Include\x86,其中有三个项目,也可以是两个C:\Program Files (x86)\Microsoft SDKs\MPI\Include\x64;C:\Program Files (x86)\Microsoft SDKs\MPI\Include\x86这两个路径可以根据你编译器的位数,如果自己不知道,建议32位的和64位的都配置,每个路径之间用英文状态下的分号隔开;,不建议用空格。
-
在【配置属性】——【Linker】——【General】——【Additional Library Directories】中添加:C:\Program Files (x86)\Microsoft SDKs\MPI\Lib\x64;C:\Program Files (x86)\Microsoft SDKs\MPI\Lib\x86,同样建议32位的和64位的都配置。
-
在【Linker】——【input】——【Additional Dependencies】中添加msmpi.lib msmpifec.lib两个文件名,文件名之间用空格连接
-
在【Linker】——【input】——【Ignore Specific Library】中添加libcmt.lib文件名(但是这个步骤是可以有选择性的,有的编译器可以不用进行这不操作,视情况而定,我的这个电脑就需要,因为这个文件的功能已经在MSVCRTD.lib中体现了,必须忽略掉。
完整配置为:
-
将C:\Program Files (x86)\Microsoft SDKs\MPI\Include下的mpi.f90文件添加到项目中去。
-
在【配置属性】——【Debugging】中添加并行程序,这样就可以直接在项目中调用mpiexec.exe程序了,具体配置如下:
-n 4 的4代表4个并行进程,可人为修改(中间都用空格隔开)。后面的$(TargetPath) 在VS2017版需要加双引号 “ ”,在2013版中不需要引号。
至此,整个的配置都完成了,使用时,只需要:
module mpi_use
use mpi
...
...
end module mpi_use
特别参考:
7. https://blog.csdn.net/weixin_41020597/article/details/89363575
8. https://www.jianshu.com/p/1679ca5a37cd