Amber22安(cai)装(keng)过程分享
最近Amber22可以免费用于学术目的了,赶紧安装一下。安装本身不难,难在依赖的环境、包该如何配置。
Amber22的文档有很详细的installation guide,非常建议通读那部分,如果很不幸你遇到奇怪的报错,可以参考以下流程。
环境:
CentOS7,gcc10.2(自己编译的),CUDA11.3,glibc2.17,使用本机的miniconda。
Ubuntu22.04,gcc12.2(自己编译的),CUDA11.7,glibc2.35,使用本机的anaconda。
本文主要是基础环境的配置,不涉及MPI版、NCCL支持等,并且忽略了一些高级功能的Warning,但一般功能够用了。
官方文档:https://ambermd.org/doc12/Amber22.pdf
第一步:下载
去官网下载AmberTools22和Amber22两个安装包,总共约620MB。
网址:https://ambermd.org/GetAmber.php

第二步:解压
解压两个包到同一安装目录。
这里有两点,可能是其他教程年代太久远,至少我觉得不需要。
现在并不需要什么“先安装串行版、再安装并行版”,“先安装非CUDA版、再安装CUDA版”的操作。
有些教程说要先执行一下
update_amber
,反正我试了它说没有updates,大家可以参考Amber手册2.4.1 Basic Usage。
第三步:准备安装环境
安装依赖包
根据你的OS装一下:https://ambermd.org/Installation.php,没权限就用conda。
安装CUDA
请参考别的资料。注意最好不要太新,11.x就行。完成后,在~/.bashrc
中添加
安装GNU编译器
并在~/.bashrc
中添加路径
检查:命令行输入gcc -v
即可看到现在启用的是哪个版本。当然,cmake
和make
也检查一下,不要装太老的。
注意:GNU编译器的版本要和CUDA匹配,否则Amber安装第一步就报错。我没有找到有人列出具体的对应关系,在我的尝试中,
CUDA11.3---gcc10.x都可以
CUDA11.7---gcc12.x都可以
系统自带版本不对的话,就自己编译一个,大概要二十分钟。
在国内各种镜像站都可以直接下载,如:https://mirrors.sjtug.sjtu.edu.cn/gnu/gcc/。
安装Intel编译器
sob老师说:“amber的计算量大的代码都是基于fortran的,c编译器实际上用什么无所谓,不影响速度,关键是ifort比gfortran强多了”(http://bbs.keinsci.com/thread-311-1-1.html),反正Intel编译器帮我编译通过了。
安装最新版(2023)就可以,这两个都装一下吧,装到同一目录下。我找fortran编译器它就跳到第二个网址了,但是装完又说缺少base模块。网址:
https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html
https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html
根据提示安装即可。下载比较慢(建议科学上网),共需一小时左右。然后按照提示添加以下变量到~/.bashrc
我们组的集群上已经装好了Intel的编译器,那就source一下即可。其实fortran用的还是gfortran
,但是有些模块自动检测到了ifort
,intel的fortran编译器。所以能检测到ifort
命令应该就行。
准备Python环境
Amber22文档的2.2.5小节和2.3小节有详细的说明,非常建议完整阅读。
按理说使用Amber自带的conda还是自己之前已经装了conda都是可以的,只不过我尝试前者没成功。后者意味着你的Amber将使用这个环境的Python interpreter,可以通过conda安装各种扩展,但文档说可能找包的时候dependencies会有风险。不管了。
备注:
当我用python3.11时,遇到了一个
'longintrepr.h' file not found
的错误(https://stackoverflow.com/questions/74979674/gensim-install-in-python-3-11-fails-because-of-missing-longintrepr-h-file),所以Python不要用太新的版本,3.10.0就行(2023年4月测试时)。上面的几个安装包是Amber22文档要求必须安装的,否则立即报错。执行过程中还会看到大量xxx not found的问题,其实不要紧,有些是如mkl之类的我们暂不需要的功能,有的是AmberTools里的包,后面会安装上。
CMakeError.log
也有很多这种信息,但对我没什么帮助。。其他包如boost可能在编译不通过的报错中出现(http://archive.ambermd.org/202204/0094.html),可能需要多尝试几次创建conda环境;某些tools可能需要tkinter之类的额外的包,这个应该不影响编译,编译完了Amber再在conda环境里装应该也行。
我有一个安装了conda版AmberTools22、python3.10的conda环境,还装了很多其他包,不知为何
run_cmake
都过不了。建议用一个干净的conda环境;不建议用系统Python的interpreter。
第四步:安装
打开./run_cmake
文件,其实就是包装了一下cmake
命令。我用的是:
-DCMAKE_INSTALL_PREFIX=
你要安装到的地方,不要和当前这个源码包一致。。自己换个路径。-DCOMPILER=GNU
,我尝试了换用INTEL
,但make install
不成功。-DDOWNLOAD_MINICONDA=FALSE
:用我们的conda。
如果你要设为true,一定要从~/.bashrc
中移除我们自己的conda(deactivate所有环境)!否则它会被修改,很是难看。同时,建议用sh shell(以便安装conda)。而且,需要联网下载东西。-DUSE_CONDA_LIBS=TRUE
:若用我们的conda,一定要加上。-DCUDA_TOOLKIT_ROOT_DIR=
默认是没有的,最好加上,强行指定。
更多:
常见的cmake选项:https://ambermd.org/pmwiki/pmwiki.php/Main/CMake-Common-Options
详情请在
build
下执行ccmake ..
(interactively edit cmake options)以查看。
完成后,根据屏幕提示,在~/.bashrc
中添加
最后一步:测试
如果-DINSTALL_TESTS=TRUE
,可以
可能要一个多小时。
屏幕输出测试信息,也保存在logs文件夹下。如果你看到
这种信息,就可以enjoy了。不放心可以看看.diff文件,没有太大差别的,计算机产生随机误差也很正常。官网上也有在各种环境下build的结果:https://ambermd.org/InstSingularity.php,如果failed的个数差不多的话,就可以放心用了。