layout: post
title: GROMACS简介和基准测试
categories:
简介
GROMACS是一个通用的软件包, 可用于进行分子动力学模拟. 它可以根据牛顿运动方程, 对具有数百到数百万个粒子的体系进行模拟.
GROMACS主要用于生化分子, 如蛋白质, 脂质和核酸, 这些分子都具有许多复杂的成键相互作用. 由于GROMACS可以非常快速地计算非键相互作用(这种计算通常是模拟中最耗时的部分), 因此许多研究组也将它用于非生物体系的研究, 如聚合物.
GROMACS实现了现代分子动力学中的所有常用算法, 并且功能非常全, 这使其能在众多分子动力学程序中脱颖而出:
- 与所有其他程序相比, GROMACS 性能极高, 其代码中的算法进行了许多优化; 例如, 我们将维里的计算从对相互作用的最内层循环中提取出来, 还使用了自己的子程序来计算平方根的倒数. 对GROMACS 4.6及更高版本, 在几乎所有常见的计算平台上, 最内层的循环都是利用C的内部函数编写的, 编译器可以将这些内部函数转换为SIMD机器指令, 从而利用指令级的并行. 这些内核适用于单精度和双精度, 并支持x86系列(和其他)处理器中所有不同种类的SIMD.
- 从GROMACS 4.6开始, 我们实现了出色的GPU加速功能, 它基于CUDA, 可以用于具有NVIDIA计算能力>=2.0的GPU(例如, Fermi或后续产品).
- GROMACS使用方便, 拓扑和参数文件都以清晰的文本格式编写, 还有大量的一致性检查. 当出现错误时, 程序会给出明确的错误消息. 由于使用了C预处理程序, 因此你可以在拓扑文件中使用条件语句并包含其他文件. 你甚至可以将大多数文件进行压缩, GROMACS在读取它们时会自动通过gzip进行解压.
- 没有使用脚本语言. 所有程序都使用带有命令行选项的简单接口, 这些选项可用于指定输入和输出文件. 你随时可以使用
-h
选项或免费提供的电子或打印手册来获得这些选项的说明.
- 随着模拟的进行, GROMACS会实时显示已经运行的时间, 预计什么时间完成.
- 运行输入文件和轨迹文件都与硬件的字节顺序无关, 因此任何版本的GROMACS都可以读取它们, 即使编译时使用了不同的浮点精度也不影响.
- GROMACS可以使用有损压缩来输出坐标, 这样存储轨迹数据时可以节省大量空间. 用户还可以选择保存的精度.
- GROMACS提供了大量灵活的轨迹分析工具, 你无需编写任何代码就可进行常规分析. 分析结果以完整的Xmgr/Grace图形格式给出, 自带了轴标签, 图例等信息, 可以直接使用.
- GROMACS包含了一个基本的轨迹查看器, 运行它只需要标准的X库. 此外, 一些第三方的可视化工具也可以读取GROMACS格式的文件.
- GROMACS支持并行, 并行时既可以使用标准的MPI通信协议, 也可以使用我们自己开发的用于单节点工作站的"线程MPI".
- GROMACS包含了几种目前最先进的算法, 可以显著增大模拟的时间步长, 从而能够在不牺牲精度或细节的情况下进一步提高模拟速度.
- GROMACS程序包自带了一个全自动的拓扑构建工具, 可用于蛋白质甚至是蛋白多聚体. 自带的构建单元包含了20种标准氨基酸残基和一些修饰过的氨基酸残基, 4种核苷酸和4种脱氧核苷酸残基, 一些糖和脂质, 以及一些特殊的基团, 如血红素和几种小分子.
- GROMACS与量子化学和生物信息学/数据库的接口正在开发中.
- GROMACS是 自由软件, 使用GNU最小通用公共许可(LGPL)2.1版本. 你可以根据自由软件基金会发布的LGPL条款重新分发和/或修改GROMACS, 许可证可以采用2.1版, 或任何更高的版本.
- GROMACS是一个合适的名称. 它不是任何事物的首字母缩写.
关于GROMACS过去, 现在和未来, 可以观看对David van der Spoel的采访.
下面这些论文讨论了GROMACS的发展和功能.
主要论文
- Berendsen, et al. (1995) Comp. Phys. Comm. 91:43-56, DOI:10.1016/0010-4655(95)00042-E
- Lindahl, et al. (2001) J. Mol. Model. 7:306-317, DOI:10.1007/s008940100045
- van der Spoel, et al. (2005) J. Comput. Chem. 26:1701-1718, DOI:10.1002/jcc.20291
- Hess, et al. (2008) J. Chem. Theory Comput. 4:435-447, DOI:10.1093/bioinformatics/btt055
- Pronk, et al. (2013) Bioinformatics 29:845-854, DOI: 10.1093/bioinformatics/btt055
- Páll, et al. (2015) Proc. of EASC 2015 LNCS, 8759:3-27, DOI:10.1007/978-3-319-15976-8_1, arxiv:1506.00716)
- Abraham, et al. (2015) SoftwareX 1-2:9-25, DOI:10.1016/j.softx.2015.06.001
其他论文
LJ-PME
- Wennberg et al. (2013) J. Chem. Theory Comput., 9:3527-3537, DOI:10.1021/acs.jctc.5b00726
- Wennberg et al. (2015) J. Chem. Theory Comput., 12:5737-5746, DOI:10.1021/ct400140n
Verle截断方案
基准测试
为大致了解GROMACS分子动力学模拟的性能, 并对一些常见硬件平台上的模拟速度进行比较, 我们构建了一些典型的基准测试系统. 这些基准测试都来自"现实"中的例子, 即它们来自我们实验室中正在进行的研究项目或已发表的论文.
GROMACS 5.0基准测试
GROMACS 5.0基准测试报告
GPU基准测试
GPU的发展速度非常快, 尽管我们经常会进行基准测试以改进性能, 但我们常常没有时间来更新文档中的数据和绘图. 但是, 你可以在GPU页面上找到以前的基准测试集.
基准测试论文
- Kutzner, et al. J. Comput. Chem., 2015, 36:1990-2008, DOI:10.1002/jcc.24030
- Kutzner, et al. J. Comput. Chem., 2019, 00:1-14, DOI:10.1002/jcc.26011
上面的基准测试论文已经翻译, 见物美价廉:GROMACS 2018在GPU节点上的使用.