Amber22安(cai)装(keng)过程分享
最近Amber22可以免费用于学术目的了,赶紧安装一下。安装本身不难,难在依赖的环境、包该如何配置。Amber22的文档有很详细的installation guide,非常建议通读那部分,如果很不幸你遇到奇怪的报错,可以参考以下流程。环境:CentOS7,gcc10.2(编译的),CUDA11.3,glibc2.17,使用本机的conda。本文主要是基础环境的配置,不涉及MPI版、NCCL支持等,
最近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
第三步,准备安装环境。
-
安装依赖包。根据你的OS装一下:https://ambermd.org/Installation.php,没权限就用conda。
-
安装CUDA,请参考别的资料。注意最好不要太新,11.x就行。完成后,在
~/.bashrc
中添加export CUDA_HOME=/usr/local/cuda # 参考Amber22文档22.6.5 export PATH=$PATH:/usr/local/cuda/bin/ # 方便检测到nvcc命令,不知道有没有用
-
安装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
即可看到现在启用的是哪个版本。当然,cmake
和make
也检查一下,不要装太老的。注意:GNU编译器的版本要和CUDA匹配,否则Amber安装第一步就报错。我没有找到有人列出具体的对应关系,在我的尝试中,
- CUDA11.3—gcc10.x都可以
- CUDA11.7—gcc12.x都可以
系统自带版本不对的话,就自己编译一个,大概要二十分钟。
在国内各种镜像站都可以直接下载,如:https://mirrors.sjtug.sjtu.edu.cn/gnu/gcc/。
-
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
-
准备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。
- 当我用python3.11时,遇到了一个
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文件,没有太大差别的,计算机产生随机误差也很正常。
更多推荐
所有评论(0)