本文的目的是介绍在Win10上用MPI并行Fortran程序的环境搭建。
软件下载
Visual Studio 2015 和 Intel parallel studio xe 2016
由下图可知VS和IVF的兼容性情况。这两个软件在网上都可以找到下载资源,这里要说的是很多软件园给出的下载项只有几KB或者几M,其实得到的是相应的网盘地址,通过网盘地址去下载就好了。MS_MPI
MPI的实现一般使用MPICH与OpenMPI,但这两个库在12年的版本就已经停止了对windows的更新。微软的MS_MPI在继承了Mpich2的基础上,一直在更新维护。可至官网下载 MS_MPI。
包括MSMpiSetup.exe和msmpisdk.msi两个安装包。
软件安装及配置
1. 首先安装VS2015
教程网上可以搜到很多,这里不在赘述。网上有人说,若要运行Fortran程序,记得在安装时选择C++组件下的Windows SDK组件,否则会出现rc.exe not found的错误。
2. 其次安装XE2016
这个安装比交简单,安装完后就自动和VS2015配置好了。
3. 最后安装MS_MPI
将MSMpiSetup.exe和msmpisdk.msi分别安装好。安装成功后,在cmd中输入set MSMPI就会出现四个路径。至此,软件的安装工作就完成了,下面介绍怎样新建一个Fortran MPI工程。
- VS上新建一个Project,x64位机可以修改debug编译环境从win32到x64。以下以x64为例,win32只要将下面所有的x64改成x86即可;
- 添加Include。项目->属性->Fortran->General->Additional Include Directories添加C:\Program Files (x86)\Microsoft SDKs\MPI\Include\x64;C:\Program Files (x86)\Microsoft SDKs\MPI\Include。需要主义的是这里的两个路径虽然有包含关系,但都需要添加,路径之间用英文分好隔开;
- 添加Lib路径。项目->属性->Linker->General->Additional Library Directories添加C:\Program Files (x86)\Microsoft SDKs\MPI\Lib\x64。
- 在项目->属性->Linker-Input-Additional Dependencies中输入lib文件夹中除了x86和x64以外所有*.lib文件名,之间用空格隔开,用分号隔开会出现错误。我的里面包括msmpi.lib msmpifec.lib msmpifmc.lib这三个文件。另外,不同VS版本、不同语言这三个填的位置可能不一样,但是都是在这三个地方Additional Include Directories,Additional Library Directories,Additional Dependencies
至此,环境搭建成功。
附:
- 程序在VS中编译好以后,可以将可执行文件拷贝至其他路径下运行。Win10在文件夹空白处Shift+鼠标右键,可以打开Windows Power Shell,输入mpiexec -n 4 filename.exe即可调用4个线程并行计算;
- 若出现Stack Overflow,则是堆栈溢出,可以去VS你的项目中修改堆栈大小(网上有相关资料,比较简单)。
网友评论