【工作日志节选】AmberTools25的编译安装

使用计算机平台为Intel 12900KF处理器,Ubuntu22.04系统。

借助同事提供的ambertools25安装包,成功完成ambertools25的编译安装。注意到ambertools25已经不像此前的ambertools19那样对于编译器有较高要求,因此也就变得无需再依赖icc/icx编译器了。而此前我使用AmberTools19时,则需依赖Intel 2021年版OneAPI提供的icc编译器及配套运行库才能正常发挥作用。

准备包依赖

使用ambertools25同样需要解决一系列包依赖,至少应包括:

$ sudo apt install -y tcsh make gcc g++ gfortran cmake flex bison patch bc wget xorg-dev libz-dev libbz2-dev

其中gcc安装完成后,版本为:

$ gcc -v

Using built-in specs.

……

gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)

此外,由于Ubuntu除apt外,还可通过snap而提供更多更新的软件自动安装,其中CMake甚至提供4.0.3这样新锐版本,但似乎不能适配AmberTools25的安装,应予删除后重新使用旧版CMake安装:

$ cmake --version

cmake version 3.22.1

编译配置

包依赖准备就绪,解压ambertools25.tar.bz2压缩包。解压完成后获得ambertools25_src文件目录。

编译的配置文件位于其中build文件目录下,名为run_camke。其中针对Linux的配置文件部分原文为:

#  Assume this is Linux:

 

  cmake $AMBER_PREFIX/ambertools25_src \

    -DCMAKE_INSTALL_PREFIX=$AMBER_PREFIX/ambertools25 \

    -DCOMPILER=GNU  \

    -DMPI=FALSE -DCUDA=FALSE -DINSTALL_TESTS=TRUE \

    -DDOWNLOAD_MINICONDA=TRUE \

    2>&1 | tee  cmake.log

其中$AMBER_PREFIX变量对应的文件目录,如不进行手动设置,则默认为当前用户的主工作目录(~)。上述配置文件段落可根据需求调整为如下内容。注意其中cmake后的“..”字段意为ambertools25_src文件目录的相对路径;“-DCMAKE_INSTALL_PREFIX=~/ambertools25”字段意为将最终编译生成的文件安装至​~/ambertools25文件目录下,可根据需求调整。

#  Assume this is Linux:

 

  cmake .. \

    -DCMAKE_INSTALL_PREFIX=~/ambertools25 \

    -DCOMPILER=GNU  \

    -DMPI=TRUE \

    -DCUDA=FALSE \

    -DINSTALL_TESTS=TRUE \

    -DDOWNLOAD_MINICONDA=FALSE \

    -DBUILD_PYTHON=FALSE \

    -DBUILD_PERL=FALSE \

    -DBUILD_GUI=FALSE \

    -DPMEMD_ONLY=FALSE \

    -DCHECK_UPDATES=FALSE \

    2>&1 | tee  cmake.log

随后运行修改后的run_camke文件,如果出现下列内容:

-- Configuring done

-- Generating done

则意味着配置成功,可进行后续的正式编译。随后进行make -j20进行20线程并行编译即可。注意,此处如果使用make -j命令进行无限制并行编译则极易报错;而使用make进行单线程编译则耗时过长。最后根据需求使用make install(像上述配置文件一样装入当前用户工作目录~)或sudo make install(装入系统文件目录如/opt或/usr/local)进行最终的安装。

完成上述编译后,ambertools25/bin目录下应具有88个二进制可执行文件以及一个文件目录。

完成安装后,执行如下命令即可正式启用ambertools25。

$ echo 'source ~/ambertools25/amber.sh' >> ~/.bashrc

$ source .bashrc

站务

全部专栏