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.

60925849d83f226d48a6608273223753.png

运行后出现错误, 因为有些编译选项没有指定, 设置必须的选项, 重新Configure. 如此重复, 直至没有错误提示, 提示Configuring done. 具体选项设置如下图, 有关说明请参考GROMACS手册.

b5bb9c92985579fdf6664252ba009ec0.png

其中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编译器

2e6d74aebe191b2c35848678641e8ca3.png

然后修改编译选项. 首先是C/C++编译选项

4b86f27c3efef0381a08b95b5c9812db.png

对应的命令行选项为/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连接器选项

3b12f57827625ba2fd3d33aa5cfc57d4.png

对应的命令行选项为/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力场的拓扑文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

surface装linux键盘不能用,Linux 5.13开始支持新款微软Surface系列笔记本的键盘与触摸板...

原标题:Linux 5.13开始支持新款微软Surface系列笔记本的键盘与触摸板改善Linux下微软Surface笔记本支持的探索还在继续。随着Linux 5.13的发布,不仅有Surface DTX驱动,另一个新的Surface驱动 "surface-hid"将允许在较新的Surface设…

linux mp3长度,得到一个wma或mp3文件,如何用最简单的方法得到它的长度信息呢?...

得到一个wma或mp3文件,如何用最简单的方法得到它的长度信息呢? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiMultimedia/html/delphi_20061108195617169.html不需要知道歌手名专辑名等,只要长度即可,哪个指令可以做…

c语言统计数字字母个数,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#includemain(){int acount0,bcount0,ccount0,dcount0;char a;printf("请输入一行字符:\n");a getchar();while (a !\n){switch (a){caseq:casew:casee:caser:caset:casey:caseu:casei:caseo:casep:casea:cases:cased:c…

libmysqld_dev linux,Linux下python玩转MySQLdb

(0)目录Linux下python玩转MySQLdb一:起因(1)Linux下安装python的第三方模块 ---- MySQLdb,自己走了很多弯路,在此做一下总结,希望对于像我一样的初学者有所帮助(2)Python中mysql数据库连接的例子,请见Linux公社 或者 我…

单片机按键控制数码管c语言程序,基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文).doc...

基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文)物理与电子工程学院2014级课程设计PAGE IV物理与电子工程学院《单片机原理与接口技术》课程设计报告书设计题目: 基于单片机的按键控制LED数码管共阴极动态显示电路设计专 业: 自动化…

c语言把数据存放在文件中,急求如何将下列C语言程序数据存储到文件中?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼求如何改动才能将下列程序的存储输入或输出数据(或两者一起)到指定的文件(或运行时直接创立一个文件)如Arrangement中。#include int n0;int rest[7][7]; //全局声明,以供全局调用int main(){void perm(int list[],int ,int );int …

c语言sgoto 标志位,如何在Go中设置TCP数据包的“不分段”标志位?(How to set “don't fragment” flag bit for TCP packet in Go?)...

如何在Go中设置TCP数据包的“不分段”标志位?(How to set “dont fragment” flag bit for TCP packet in Go?)我打算在Go中设置“do not fragment”标志位,与C中的这个标志位相同。我检查了常量列表,但没有找到该选项。 那么Go的相应选项是…

林锐 高质量c语言编程下载,新年献礼:Go语言深度入门手册

(文末的阅读原文,效果最佳!)作者:李佶澳 微信:lijiaocnGo 语言深度入门手册,帮你更好的理解 Go 语言,写出更高效、更规范、更不易出错的代码。Go 在 2012 年发布 1.0 版本,距今已经 8 年了。和历…

android中shape资源定义,Android中drawable使用Shape资源

本文实例为大家分享了drawable使用Shape资源的具体内容,供大家参考,具体内容如下1.画一条水平方向的虚线android:shape"line" >android:dashGap"3dp"android:dashWidth"6dp"android:width"1dp"android:color…

永洪报表工具_2020年最值得推荐的五大BI工具

现在很多公司和业务部门都十分注重数据分析,并为企业信息化建设做准备。以前收集、处理、分析数据可能是IT部门和数据库员的专属,现在很多业务部门都急切的开始用数据分析的思维分析业务问题。在过去,大多数数据人员的工作模式都是自己使用ex…

容量耦合系数模型_期刊在线 | 基于ALE流固耦合方法的刷式密封泄漏特性理论与实验研究...

01引言刷式密封是一种广泛应用于航空发动机等透平机械的优良接触式动密封[]。近年来,随着透平机械逐渐向高参数方向发展,由刷式密封引起的泄漏损失越来越大,直接影响透平机械的工作效率。因此开展刷式密封的泄漏流动特性研究具有重要理论和实…

设备管理器android感叹号,设备管理器其他设备感叹号

设备管理器其他设备感叹号客观地讲,常规的设备管理器问题与设备管理器在哪,设备管理其怎么打开以及设备管理其其他设备感叹号是什么问题等。本文重点介绍设备设备管理器其他设备感叹号相关问题,希望能够为对此有需求的朋友提供参考或帮助。设…

android studio 集成 第三方sdk,Android FrameWork集成第三方SDK的jar包和so庫

本文講解的如何在Android FrameWork如何集成XXXsdk的jar包和so庫首先在framework/opt/建立XXSDK的文件夾講jar包和so庫拷貝進去1:framework/opt/xxsdk/然后直接看Android.mk就行# Copyright (C) 2009 The Android Open Source Project## Licensed under the Apache License, Ve…

unity要学ecs吗_ECS的泛泛之谈

这篇文章将带着你从设计出发重新发现ECS。注意:此篇为泛泛之谈,不涉及具体实现。从Abstract说起从”是”到”能”再到”有”对对象的抽象是整理代码的要点,继承是一种比较古老并常见的抽象,其描述了一个对象"是"什么,其…

条令考试小程序辅助器_计算机一级考试干货!

计算机一级考试干货一年两度的计算机等级考试就要在2019年3月30-31日期间开始啦!为了更好的让同学们了解考试的大体内容,我们已整理如下内容,可以供大家参考。同时,希望大家认真备考,争取都一次性过哦!考试…

android文件系统只读,android

>>#1 票数:408最近,我扎根了Droid X,一切似乎都运转良好。 我对build.prop进行了一些更改,当我执行adb push build.prop /system/ ,出现以下错误: failed to copy c:\\build.prop to /system//build.…

燃气灶电气线路图及原理_一位造价大神的电气工程造价知识整理笔记_深圳电气造价预算培训要多少钱...

电气设备安装工程是建设工程中的一种常见的、重要的设备安装工程。电气设备安装工程计价涉及到许多电气工程专业知识。一、电气设备安装工程的组成一般的电气设备安装工程是以接受电能,经变换、分配电能,到使用电能或从接受电能经过分配到用电设备所形成…

荣耀es升级鸿蒙,华为手机明年全部升级鸿蒙系统 所有自研设备换OS

近日,华为举行 HarmonyOS 2.0 手机开发者 Beta 活动,现场正式发布了 HarmonyOS 2.0 手机开发者 Beta 版本。华为消费者业务软件部副总裁杨海松在接受媒体采访表示,到今天为止,参与鸿蒙开发项目的开发者数量超过 10 万,…

signature=08653706deda7871a1f662eae4d2b33e,The nature of nuclear Halpha emission in LINERs

摘要:To get insight in the nature of the ionized gas in the nuclear region of LINERs we have performed a study of HST Halpha imaging of 32 LINERs. The main conclusion from this analysis is that for the large majority of LINERs (84%) an unresolve…

腐蚀国内稳定服务器_工控机箱和服务器机箱区别在哪里

服务器机箱必须能够装进机柜,一个标准机柜的宽度是19英寸482.6mm,所以机箱的宽度是几乎固定的,一般是17英寸左右,两侧再安装把手和轨道。机箱高度也有规定,用U(Unit)做单位,1U是44.5mm,机箱高度…