linux子系统安装gromacs,科学网—Windows下GROMACS程序的编译 - 李继存的博文
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以及一些性能測試工具等, 只要裝好就全部可以用了, 省得一個一個地裝.安裝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-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://blog.sciencenet.cn/blog-548663-941861.html
上一篇:Windows下的AmberTools+RESP+ACPYPE
下一篇:使用AmberTools+ACPYPE+Gaussian創建小分子GAFF力場的拓撲文件
總結
以上是生活随笔為你收集整理的linux子系统安装gromacs,科学网—Windows下GROMACS程序的编译 - 李继存的博文的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用github+hexo搭建静态blo
- 下一篇: Java定义变量x初始值为3,JAVA