|
2015-12-07 22:12:05
总的来说, Windows下的GROMACS程序用于模拟意义不大, 对于长时间的模拟, 我都是放在Linux服务器上进行的. 但将Windows下的GROMACS程序作为一个辅助工具来使用还是有意义的. 因为大多数时候, 我都是在Windows下准备输入文件的, 然后测试一下准备好的输入文件是否能正确生成.tpr文件, 简单测试一下生成的.tpr文件能不能正常运行, 或是测试一下分析命令的用法. 如果为此而装一个Linux的虚拟机, 感觉太麻烦了, 使用起来也不顺手, 因为我毕竟是个Windows的深度用户.
相对而言, Linux系统下GROMACS的编译安装还算简单, 也有很多资料, 但Windows系统下有关的编译安装资料却不多. 网上也流传有一个编译好的4.6.2的单精度版本, 其他的我还没看到过. 最近, 我需要测试GROMACS 5.x版本的一些新功能, 所以就试着在64位Windows 7下用Intel的C编译器编译了一下GROMACS 5.1.1, 这里简记下编译过程, 供需要者参考.
准备工作安装微软的Visual Studio 2013虽然VS有更新的版本, 但我使用的2015版Intel C编译器目前只支持VS2013, 所以我就安装了VS2013, 就不去测试其他版本的VS了.
安装Intel Composer XE 2015这是Intel整合好的一套工具, 包括了编译器, MKL库, IMPI以及一些性能测试工具等, 只要装好就全部可以用了, 省得一个一个地装.
安装cmakeGROMACS 5.x版本使用cmake构建, 所以需要安装cmake. 直接到官方网站下载即可. 我下载的是Windows ZIP cmake-3.4.1-win32-x86.zip. 不需要安装, 解压后能直接使用. 解压后得目录cmake-3.4.1-win32-x86, 其中的../cmake-3.4.1-win32-x86/bin/cmake-gui.exe即可运行.
下载GROMACS源代码到官方网站下载GROMACS源代码. 我下载的是gromacs-5.1.1.tar.gz. 下载后解压, 得目录gromacs-5.1.1.
编译安装cmake构建打开..cmake-3.4.1-win32-x86bincmake-gui.exe, 设定源代码路径, 编译路径, 点击Configure, 选择Visual Studio 12 2013 Win64 -> Finish.
运行后出现错误, 因为有些编译选项没有指定, 设置必须的选项, 重新Configure. 如此重复, 直至没有错误提示, 提示Configuring done. 具体选项设置如下图, 有关说明请参考GROMACS手册.
其中MKL_INCLUDE_DIR设置为C:/Program Files (x86)/Intel/Composer XE 2015/mkl/include, MKL_LIBRARIES设置为C:/Program Files (x86)/Intel/Composer XE 2015/mkl/lib/intel64/mkl_core.lib;C:/Program Files (x86)/Intel/Composer XE 2015/mkl/lib/intel64/mkl_sequential.lib;C:/Program Files (x86)/Intel/Composer XE 2015/mkl/lib/intel64/mkl_intel_lp64.lib;.
值得注意的是, 在这一步中, 我们没有办法指定只使用Intel编译器, 虽然网上有些解决方案1, 2, 但根据我的测试最终都不能编译成功. 此外,GMX_SIMD选项也无法使用, 否则Configure不能通过. 不过这些选项, 我们都可以在后面解决.
Configure完成后, 点击Generate生成解决方案.
VS编译生成解决方案后, 打开../GMX-5.1.1/Gromacs.sln, 选择Release x64配置, 并选择使用Intel编译器
然后修改编译选项. 首先是C/C++编译选项
对应的命令行选项为
/GS /TP /W3 /Qdiag-disable:"4800" /Qdiag-disable:"4355" /Qdiag-disable:"4996" /Qdiag-disable:"4305" /Qdiag-disable:"4244" /Qdiag-disable:"4101" /Qdiag-disable:"4267" /Qdiag-disable:"4090" /Zc:wchar_t /I"C:UsersJicunDownloadsgromacs-5.1.1srcexternalboost" /I"C:UsersJicunDownloadsGMX-5.1.1src" /I"C:UsersJicunDownloadsgromacs-5.1.1srcexternalthread_mpiinclude" /I"C:UsersJicunDownloadsgromacs-5.1.1src" /I"C:Program Files (x86)IntelComposer XE 2015mklinclude" /O2 /Ob2 /Fd"gmx.dirRelWithAssertvc120.pdb" /D "WIN32" /D "_WINDOWS" /D "GMX_DOUBLE" /D "GMX_HAVE_WINSOCK" /D "NOMINMAX" /D "HAVE_CONFIG_H" /D "BOOST_NO_TYPEID" /D "CMAKE_INTDIR="RelWithAssert"" /D "_MBCS" /Zc:forScope /GR /MD /Fa"RelWithAssert/" /EHsc /nologo /Fo"gmx.dirRelWithAssert" /Qprof-dir "gmx.dirRelWithAssert" /Fp"gmx.dirRelWithAssertgmx_d.pch"然后是Linker连接器选项
对应的命令行选项为
/OUT:"C:UsersJicunDownloadsGMX-5.1.1binRelWithAssertgmx_d.exe" /MANIFEST /NXCOMPAT /PDB:"C:/Users/Jicun/Downloads/GMX-5.1.1/bin/RelWithAssert/gmx_d.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib" "....libRelWithAssertgromacs_d.lib" "wsock32.lib" "C:Program Files (x86)IntelComposer XE 2015mkllibintel64mkl_core.lib" "C:Program Files (x86)IntelComposer XE 2015mkllibintel64mkl_sequential.lib" "C:Program Files (x86)IntelComposer XE 2015mkllibintel64mkl_intel_lp64.lib" /IMPLIB:"C:/Users/Jicun/Downloads/GMX-5.1.1/lib/RelWithAssert/gmx_d.lib" /MACHINE:X64 /INCREMENTAL /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"gmx.dirRelWithAssertgmx_d.exe.intermediate.manifest" /NOLOGO /TLBID:1这些选项至少要同时用于gmx, libgromacs, mdrun_objlib, view_objlib.
设置好后, 选中gmx, 右键生成即可编译得到../GMX-5.1.1/bin/Release/gmx_d.exe. 编译时间较长, 请保持耐心.
如果选中INSTALL生成, 则默认将编译好的GROMACS安装在C:/Program Files/Gromacs.
值得注意的是, 在编译时, 由于我们使用了Intel的编译器, 所以有些VS自带的头文件会因为兼容性问题导致编译失败. 我的解决办法是使用C:Program Files (x86)IntelComposer XE 2015compilerinclude下的文件, 替换C:Program Files (x86)Microsoft Visual Studio 12.0VCinclude下的文件, 需要替换的文件有下列几个:
atomic
complex.h
dvec.h
emmintrin.h
fenv.h
fvec.h
immintrin.h
ivec.h
mmintrin.h
nmmintrin.h
omp.h
pmmintrin.h
smmintrin.h
tmmintrin.h
wmmintrin.h
xmmintrin.h
或许还有更简单的解决办法, 但我还不知道.
打包发布将编译好的GROMACS打包发布时, 注意要顺便将Intel的libiomp5md.dll文件也一起发布.
你可以点击这里下载我编译好的GROMACS 5.1.1双精度版. 这个版本只在我的64位Windows 7下测试过, 不能保证在所有机器上都能运行. 解压后, 将GMXLIB环境变量设为安装路径GMX-5.1.1sharegromacstop即可使用了.
◆本文地址: http://jerkwin.github.io/9999/11/01/GROMACS程序编译/, 转载请注明◆
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 10:11
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社