请选择 进入手机版 | 继续访问电脑版

计算化学公社

 找回密码
 现在注册!
查看: 522|回复: 7

[GROMACS] GROMACS的原生Windows版的编译和安装方法

[复制链接]

1万

帖子

25

威望

2万

eV
积分
37489

管理员

公社社长

发表于 2019-1-4 21:09:35 | 显示全部楼层 |阅读模式
GROMACS的原生Windows版的编译和安装方法

文/Sobereva@北京科音  2019-Jun-4


注:如果大家对编译过程不感兴趣,只想直接用原生Windows版的GROMACS,可以在http://sobereva.com/soft/gmx2018.4_win64.rar下载笔者编译好的原生Windows版GROMACS 2018.4,经测试Win7和Win10 64bit都可以用,安装方法见本文第3节。

1 前言:关于在Windows下使用GROMACS

GROMACS一般都是在Linux下运行,其Linux下的安装方法我在《GROMACS的安装方法》(http://sobereva.com/457)中已经详细交代了。在Windows下使用GROMACS有多种方式:
(1)使用VMware装Linux虚拟机,并照常以Linux方式编译。这十分简单,过程见《在VMware 15中安装CentOS 7.6的完整过程视频演示》(http://sobereva.com/454)。Linux下的所有程序都可以在以这种方式使用,非常普适,而且直接有图形环境。
(2)在Cygwin下编译。Cygwin提供了类似Linux系统的命令行环境,也提供了程序包管理器和源,相对于使用VMware更轻量级,而且编译出的程序只要提供一些Cygwin的dll文件就可以直接挪到其它Windows机子下用。对于大多数程序Cygwin下编译方式和Linux下一样(gcc、make、cmake等都有),但也有很多情况需要额外折腾,有时编译过程特别迟钝,而且有时候有一些特殊情况,比如笔者在Cygwin下编译GROMACS时必须要求不利用AVX指令集,否则编译会失败。
(3)Win10的Linux子系统。笔者个人不怎么喜欢这东西,这里不多提,和Cygwin在形式上有很大相似之处,鉴于是Windows自带的,以后必然会吞掉Cygwin很大的生存空间。
以上三种方法在原理上都会使得计算性能打一些折扣,但一般也就不到10%。
(4)编译原生的Windows版GROMACS。原理上来说,这是最完美的做法,编译出的程序可以拿到任何其它Windows机子上直接用,不需要装额外运行环境,而且在原理上也没有上述三种方法那样会对CPU性能打折扣。

本文就介绍一下怎么编译原生的Windows版GROMACS,过程相当简单。鉴于在Windows下使用GROMACS主要也就是偶尔图个方便才用,或者给初学者讲GROMACS时候用,极少会有Windows机子专门跑高耗时计算的情况,因此本文只介绍安装最普通形式的GROMACS的方法,即单精度、只能单节点并行、纯CPU版。


2 原生Windows版的编译过程

经测试,本文的过程对于GROMACS 2018.4和2019都适用。这里以2018.4为例。

首先安装Visual Studio,这里用的是Visual Studio 2017。VS2017最低级的是community(社区)版,是完全免费的。大家在https://visualstudio.microsoft.com/zh-hans/downloads/就可以下载到最新版。下载到的是一个非常小的安装器,启动它就可以在线安装(VS2017是没有镜像文件的。虽然也有办法把VS2017的组件全部下载后再离线安装,但是会占几十GB硬盘,因此不要考虑离线方式安装)。虽然看起来在线安装好像很耗时,但其实以现在的网速来说总耗时也不算很高。安装VS2017的时候应选择“使用C++的桌面开发”,确认“安装详细信息”中“用于CMake的Visual C++工具”是已选中的状态。

将gromacs-2018.4.tar.gz源代码包解压到比如C:\gromacs-2018.4。

在开始菜单里选Visual Studio 2017 - Visual Studio Tools - VS2017的开发人员命令行提示符,由此进入编译环境都配置好的命令行窗口。然后依次输入
cd C:\gromacs-2018.4
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=C:\gmx2018.4 -DGMX_FFT_LIBRARY=fftpack -G "Visual Studio 15 2017 Win64"
cmake --build . --target INSTALL --config Release -j 4

过一阵子就编译好了,会出现C:\gmx2018.4目录,里面就是编译好的可执行文件以及相关文件了,内容和Linux版一样。

有几点值得进一步解释,对细节感兴趣者可以看看:

GROMACS需要利用FFT库,有三种选择
(1)FFTW库,这是最佳选择,Linux下编译都用FFTW
(2)MKL库,效率和FFTW差不多,需要额外安装
(3)fftpack库,这是GROMACS自带的,但效率相对低一些
上面为了省事,直接用了自带的fftpack库,实测比FFTW慢大概1/4左右。当然大家愿意折腾的话也可以自己在Windows下编译FFTW库或者安装MKL库并且连接之。虽然在Linux下编译GROMACS可以自动下载FFTW库并安装,但是在Windows下没法实现这点。

上面用的-j 4代表使用4核并行,机子里有几个物理核心建议就设几。

cmake的-G选项代表设置Generator,相当于指定编译环境,可以运行cmake -G查看有哪些Generator可选。"Visual Studio 15 2017 Win64"代表产生出对应于VS2017的64bit平台的解决方案,之后进而编译出的程序就是适合Windows 64bit的版本了。

如果读者打开build目录下的Gromacs.sln解决方案文件,会看到里面有很多不同的工程,其中名为ALL_BUILD的工程对应于编译出最终的可执行文件,而INSTALL的工程对应于不仅编译可执行文件,还将程序安装到CMAKE_INSTALL_PREFIX设的目录,因此上文的语句里用了--target INSTALL。

上面的--config后面跟的是编译时用的配置。名为Release的配置是适合用于发布的,会对代码充分进行优化。


3 原生Windows版的使用方法

注:如果你的计算机水平十分糟糕,难以正确按照以下文字操作,可参考演示视频:https://www.bilibili.com/video/av39914815/

进入“控制面板”-“系统”,选择“高级系统设置”,在“高级”标签页里选择“环境变量”,在“xxx的用户变量”下面选择Path变量,点击“编辑”,在“变量值”文本框最后加上一个分号,然后再写上GROMACS目录的bin子目录的路径,比如;C:\gmx2018.4\bin。之后进入Windows的命令行窗口,输入gmx命令的时候就应该出现相关提示信息了,然后就可以像Linux版一样照常使用了。
北京科音自然科学研究中心:http://www.keinsci.com  致力于计算化学的发展和传播,不定期开办各层次量子化学、分子动力学、波函数分析与Multiwfn程序等主题的培训。欢迎加入“北京科音”微信公众号获取培训最新消息和计算化学资讯
思想家公社QQ群1号:18616395,2号:466017436。超过4000人,用于交流理论、计算化学。两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明具体研究方向,否则一概不批。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(最流行的量子化学波函数分析程序)

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!

4

帖子

0

威望

108

eV
积分
112

Level 2 能力者

发表于 2019-1-4 22:23:54 | 显示全部楼层
进入“控制面板”-“系统”,选择“高级系统设置”,在“高级”标签页里选择“环境变量”,在“xxx的用户变量”下面选择Path变量,点击“编辑”,在“变量值”文本框最后加上一个分号,.....。。。。。。。。。。。很详细!

1万

帖子

25

威望

2万

eV
积分
37489

管理员

公社社长

 楼主| 发表于 2019-1-5 09:26:29 | 显示全部楼层
comboy2008 发表于 2019-1-4 22:23
进入“控制面板”-“系统”,选择“高级系统设置”,在“高级”标签页里选择“环境变量”,在“xxx的用户变 ...

我每次写帖子都是考虑到初学者理解能力的底限来写的,甚至还担心有人不懂都录了视频。但仍然经常有人不能正确领会...
北京科音自然科学研究中心:http://www.keinsci.com  致力于计算化学的发展和传播,不定期开办各层次量子化学、分子动力学、波函数分析与Multiwfn程序等主题的培训。欢迎加入“北京科音”微信公众号获取培训最新消息和计算化学资讯
思想家公社QQ群1号:18616395,2号:466017436。超过4000人,用于交流理论、计算化学。两个群讨论范畴相同,可加入任意其一但不可都加入,申请信息必须注明具体研究方向,否则一概不批。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(最流行的量子化学波函数分析程序)

此账号为诸Sobereva共用
Money and papers are rubbish, get a real life!

542

帖子

11

威望

3774

eV
积分
4536

Level 6 (一方通行)

密度泛函·小卒

发表于 2019-1-5 09:35:35 | 显示全部楼层
comboy2008 发表于 2019-1-4 22:23
进入“控制面板”-“系统”,选择“高级系统设置”,在“高级”标签页里选择“环境变量”,在“xxx的用户变 ...

然后就有人困惑:“控制面板是啥?”
东风快递,使命必达!六分钟覆盖全球,哪里不服点哪里!

7

帖子

0

威望

55

eV
积分
62

Level 2 能力者

发表于 2019-1-5 12:08:49 | 显示全部楼层
感谢大神,大神辛苦了

289

帖子

2

威望

2840

eV
积分
3169

Level 5 (御坂)

发表于 2019-1-6 13:15:16 | 显示全部楼层
很棒,cmake的gui工具也很好,如此,可以可视化的来选择编译条件。

64

帖子

0

威望

370

eV
积分
434

Level 3 能力者

发表于 2019-1-6 13:15:57 | 显示全部楼层
感谢sob老师!太赞了!

117

帖子

1

威望

2744

eV
积分
2881

Level 5 (御坂)

发表于 2019-1-7 21:39:58 | 显示全部楼层
谢谢,可以一试!
您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2019-1-20 18:04 , Processed in 0.114563 second(s), 24 queries .

快速回复 返回顶部 返回列表