查看原文
其他

Amber和CP2K已原生支持DeePMD-kit

曾晋哲 深度势能 2024-03-31


本月,Amber和CP2K软件已在各自的代码仓库中,新增对DeePMD-kit的原生支持。


Amber


Amber是生物分子体系的分子动力学模拟软件,总引用量超过3.1万次,其中AmberTools以GPL和LGPL协议免费授权。Sander是AmberTools中的子程序,用于运行分子动力学(MD)模拟。本次新增的接口将sander和DeePMD-kit相连接,使得DP模型能与半经验QM/MM方法相结合,使用DPRc方法运行MD模拟。该接口的主要贡献者是Timothy J. Giese,预计将随AmberTools24正式发布。


使用CMake编译时启用DeePMD-kit(假设${deepmd_root}为DeePMD-kit的安装目录):

cmake .. \ -D USE_DEEPMDKIT=ON \ -D CMAKE_INSTALL_PREFIX=${deepmd_root}


运行sander时在mdin文件中启用DPRc:

&dprc idprc = 1 ! enable DPRc mask = ":1" ! QM region rcut = 6.0 ! cutoff radius interfile = "frozen_model.pb" ! model file/


CP2K


CP2K是材料体系的第一性原理计算和模拟软件,总引用量超过4000次,以GPL协议免费授权。本次新增的接口使得CP2K能够基于DP模型运行MD模拟。该接口的主要贡献者是Yunpei Liu,预计将随CP2K 2024.2版本正式发布。


编译CP2K时,使用--with-deepmd启用DeePMD-kit:

./install_cp2k_toolchain.sh \ --with-deepmd


输入文件中使用DeePMD-kit:

&DEEPMD ATOMS O H ATOMS_DEEPMD_TYPE 0 1 POT_FILE_NAME "frozen_model.pb"&END DEEPMD


C API

两款流行的分子动力学软件原生支持DeePMD-kit,得益于DeePMD-kit于2023年增加的C API,基于C API的Header-only C++ API,以及仅暴露C API和Header-only C++ API的预编译包。


DeePMD-kit软件的架构。图片来自Zeng et al., J. Chem. Phys. 159, 054801 (2023),以CC BY 4.0授权


当两个C++库文件链接时,C++编译器版本、C++标准和_GLIBCXX_USE_CXX11_ABI等编译宏需保证一致,使得链接的应用程序二进制接口(ABI)严格一致,否则将无法链接。在C API开发之前,由于无法预测用户使用的C++编译参数,也就难以提供通用的预编译包。故而,用户需自行编译TensorFlow等依赖,十分耗时,给DeePMD-kit接入其它程序带来困难。


而C语言接口在链接时,只需保证链接时C标准库的ABI一致即可,几乎所有Linux操作系统都内置了GNU C Library(glibc),使得C API不存在ABI不兼容的问题。Header-only C++ API是基于C API的C++头文件,由用户自己编译,故而也不存在ABI不兼容的问题。在DeePMD-kit中,C API好比一道城墙,隔绝了使用C API的第三方软件和DeePMD-kit内部的C++具体实现,城门内外无需使用相同的编译参数即可连通。DeePMD-kit提供了C API的预编译包(含CUDA支持),用户可以自行下载,并接入Amber和CP2K等其它软件包中,无需繁琐的DeePMD-kit编译过程。


wget https://github.com/deepmodeling/deepmd-kit/releases/latest/download/libdeepmd_c.tar.gztar xzf libdeepmd_c.tar.gz


继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存