也可以阅读B站版

最近Amber22可以免费用于学术目的了,赶紧安装一下。安装本身不难,难在依赖的环境、包该如何配置。

Amber22的文档有很详细的installation guide,非常建议通读那部分,如果很不幸你遇到奇怪的报错,可以参考以下流程。

环境:CentOS7,gcc10.2(自己编译的),CUDA11.3,glibc2.17,使用本机的conda。

本文主要是基础环境的配置,不涉及MPI版、NCCL支持等,并且忽略了一些高级功能的Warning,但一般功能够用了。

官方文档:https://ambermd.org/doc12/Amber22.pdf

1

第一步:去官网下载AmberTools22和Amber22两个安装包,总共约620MB。

网址:https://ambermd.org/GetAmber.php

在这里插入图片描述

有两个这样的框,填写并点击下载即可。

2

第二步,解压两个包到同一安装目录。

tar xvfj AmberTools22.tar.bz2
tar xvfj Amber22.tar.bz2

这里有两点,可能是其他教程年代太久远,至少我觉得不需要。

  • 现在并不需要什么“先安装串行版、再安装并行版”,“先安装非CUDA版、再安装CUDA版”的操作。
  • 有些教程说要先执行一下update_amber,反正我试了它说没有updates,大家可以参考Amber手册2.4.1 Basic Usage。

3

第三步,准备安装环境。

  1. 安装依赖包。根据你的OS装一下:https://ambermd.org/Installation.php,没权限就用conda。

  2. 安装CUDA,请参考别的资料。注意最好不要太新,11.x就行。完成后,在~/.bashrc中添加

    export CUDA_HOME=/usr/local/cuda  # 参考Amber22文档22.6.5
    export PATH=$PATH:/usr/local/cuda/bin/ # 方便检测到nvcc命令,不知道有没有用
    
  3. 安装GNU编译器,并在~/.bashrc中添加路径

    export PATH=/path/to/gcc-10.2.0/bin:$PATH
    export LD_LIBRARY_PATH=/path/to/gcc-10.2.0/lib64
    

    检查:命令行输入gcc -v即可看到现在启用的是哪个版本。当然,cmakemake也检查一下,不要装太老的。

    注意:GNU编译器的版本要和CUDA匹配,否则Amber安装第一步就报错。我没有找到有人列出具体的对应关系,在我的尝试中,

    • CUDA11.3—gcc10.x都可以
    • CUDA11.7—gcc12.x都可以

    系统自带版本不对的话,就自己编译一个,大概要二十分钟。

    在国内各种镜像站都可以直接下载,如:https://mirrors.sjtug.sjtu.edu.cn/gnu/gcc/。

  4. 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

    source /path/to/intel/oneapi/setvars.sh
    
  5. 准备Python环境。Amber22文档的2.2.5小节和2.3小节有详细的说明,非常建议完整阅读。

    按理说使用Amber自带的conda还是自己之前已经装了conda都是可以的,只不过我尝试前者没成功。后者意味着你的Amber将使用这个环境的Python interpreter,可以通过conda安装各种扩展,但文档说可能找包的时候dependencies会有风险。不管了。

    conda create -n Amber22 python==3.10
    conda activate Amber22
    conda install -y numpy scipy cython ipython notebook matplotlib setuptools tkinter
    

    备注:

    • 当我用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不要用太新的版本。
    • 上面的几个安装包是Amber22文档要求必须安装的,否则立即报错。执行过程中还会看到大量xxx not found的问题,其实不要紧,有些是如mkl之类的我们暂不需要的功能,有的是AmberTools里的包,后面会安装上。CMakeError.log也有很多这种信息,但对我没什么帮助。。
    • 我有一个安装了conda版AmberTools22、python3.10的conda环境,还装了很多其他包,不知为何run_cmake都过不了。建议用一个干净的conda环境;不建议用系统Python的interpreter。

4

第四步,安装。

打开./run_cmake文件,其实就是包装了一下cmake命令。我用的是:

cmake $AMBER_PREFIX/amber22_src \
    -DCMAKE_INSTALL_PREFIX=$AMBER_INSTALL_PREFIX/amber22 \
    -DCOMPILER=GNU \
    -DMPI=FALSE -DCUDA=TRUE -DINSTALL_TESTS=TRUE \
    -DDOWNLOAD_MINICONDA=FALSE -DUSE_CONDA_LIBS=TRUE -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.3 \
    2>&1 | tee  cmake.log
  • -DCMAKE_INSTALL_PREFIX=你要安装到的地方,不要和当前这个源码包一致。。自己换个路径。

  • -DCOMPILER=GNU,我尝试了换用INTEL,但make install不成功。其实fortran用的还是gfortran,但是有些模块自动检测到了ifort,intel的fortran编译器。

  • -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)以查看。
cd amber22_src/build
./run_cmake
make install -j 16
./clean_build -f # 安装失败了必须先全部清理再run_cmake

完成后,根据屏幕提示,在~/.bashrc中添加

source /path/to/amber22/amber.sh

5

最后一步,测试。

如果-DINSTALL_TESTS=TRUE,可以

cd $AMBERHOME
make test.serial
export CUDA_VISIBLE_DEVICES=0  # (choose the GPU id you wish to test)
make test.cuda.serial

可能要一个多小时。

屏幕输出测试信息,也保存在logs文件夹下。如果你看到

295 file comparisons passed
2 file comparisons failed (2 of which can be ignored)
0 tests experienced errors

这种信息,就可以enjoy了。不放心可以看看.diff文件,没有太大差别的,计算机产生随机误差也很正常。

Logo

鸿蒙生态一站式服务平台。

更多推荐