GROMACS程序编译

类别:    标签: gmx   阅读次数:   版权: (CC) BY-NC-SA

Linux下GROMACS程序的编译

待补

Windows下GROMACS程序的编译

总的来说, 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, 这里简记下编译过程, 供需要者参考.

提示: 如果你对编译过程不熟悉, 建议不要使用Intel C编译器, 直接使用VC编译器即可, 这样可省却很多麻烦. 我在这里使用Intel C编译器, 只是出于学习的目的, 并没有测试使用Intel C编译出来的GROMACS是不是比使用VC编译出来的更快. 如果你有测试, 烦请告知.

准备工作

安装微软的Visual Studio 2013

虽然VS有更新的版本, 但我使用的2015版Intel C编译器目前只支持VS2013, 所以我就安装了VS2013, 就不去测试其他版本的VS了.

安装Intel Composer XE 2015

这是Intel整合好的一套工具, 包括了编译器, MKL库, IMPI以及一些性能测试工具等, 只要装好就全部可以用了, 省得一个一个地装.

【刘胜堂 注】经测试, Intel Composer XE 2015只支持VS2013, 不支持更新的VS2015, 所以必须使用VS2013, 否则cmake时会出现找不到编译器环境变量的错误.

安装cmake

GROMACS 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-x86\bin\cmake-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:\Users\Jicun\Downloads\gromacs-5.1.1\src\external\boost" /I"C:\Users\Jicun\Downloads\GMX-5.1.1\src" /I"C:\Users\Jicun\Downloads\gromacs-5.1.1\src\external\thread_mpi\include" /I"C:\Users\Jicun\Downloads\gromacs-5.1.1\src" /I"C:\Program Files (x86)\Intel\Composer XE 2015\mkl\include" /O2 /Ob2 /Fd"gmx.dir\RelWithAssert\vc120.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.dir\RelWithAssert\" /Qprof-dir "gmx.dir\RelWithAssert\" /Fp"gmx.dir\RelWithAssert\gmx_d.pch" 

然后是Linker连接器选项

对应的命令行选项为

/OUT:"C:\Users\Jicun\Downloads\GMX-5.1.1\bin\RelWithAssert\gmx_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" "..\..\lib\RelWithAssert\gromacs_d.lib" "wsock32.lib" "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" /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.dir\RelWithAssert\gmx_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)\Intel\Composer XE 2015\compiler\include下的文件, 替换C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include下的文件, 需要替换的文件有下列几个:

  1. atomic
  2. complex.h
  3. dvec.h
  4. emmintrin.h
  5. fenv.h
  6. fvec.h
  7. immintrin.h
  8. ivec.h
  9. mmintrin.h
  10. nmmintrin.h
  11. omp.h
  12. pmmintrin.h
  13. smmintrin.h
  14. tmmintrin.h
  15. wmmintrin.h
  16. xmmintrin.h

或许还有更简单的解决办法, 但我还不知道.

打包发布

将编译好的GROMACS打包发布时, 注意要顺便将Intel的libiomp5md.dll文件也一起发布.

你可以点击这里下载我编译好的GROMACS 5.1.1双精度版. 这个版本只在我的64位Windows 7下测试过, 不能保证在所有机器上都能运行. 解压后, 将GMXLIB环境变量设为安装路径\GMX-5.1.1\share\gromacs\top即可使用了.

评论

随意赞赏

微信

支付宝
◆本文地址: , 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆


前一篇: GROMACS中文教程
后一篇: GROMACS程序文档

访问人次(2015年7月 9日起): | 最后更新: 2017-06-23 03:12:17 UTC | 版权所有 © 2008 - 2017 Jerkwin