计算化学公社

标题: 求amber24和ambertools25的安装方法 [打印本页]

作者
Author:
azero    时间: 2025-7-10 12:44
标题: 求amber24和ambertools25的安装方法
本帖最后由 azero 于 2025-7-10 12:51 编辑

如题
现在amber24.tar.bz2文件包改名成pmemd24.tar.bz2了,搞得不知道怎么安装了
之前是成功安装过amber22+ambertools22的
作者
Author:
student0618    时间: 2025-7-10 16:40
官网有提到参考手册哪部分https://ambermd.org/GetAmber.php#amber
(, 下载次数 Times of downloads: 153)

最新的Amber 25手册(https://ambermd.org/doc12/Amber25.pdf)第21页写的是
9. If you have licensed Amber24, repeat steps 3-8 above, changing “ambertools25” to “pmemd24”.

作者
Author:
azero    时间: 2025-7-10 21:03
student0618 发表于 2025-7-10 16:40
官网有提到参考手册哪部分https://ambermd.org/GetAmber.php#amber

原来amber25的手册链接藏在这,难怪找不到。谢谢~
作者
Author:
Shinecyh    时间: 2025-12-20 20:35
本帖最后由 Shinecyh 于 2025-12-22 10:57 编辑

综合了网上的资料,我编写了一个自动安装Amber25+pmemd的脚本。可以运行了试试,不过其中有些参数是针对我们学校超算进行设计的,可以先去掉后再运行,有报错的话可以喂给AI帮你解决。
去掉的参数:
          -DCUDA_cublas_LIBRARY="/usr/local/cuda-12.2/lib64/libcublas.so.12.2.1.16" \
          -DMKL_HOME="/opt/intel/mkl" \

          -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
需要注意的参数:
1.脚本最前面的一系列环境变量设置 (export ****),可以都注释掉,然后根据运行时的报错再逐一完善,因为每台机器的环境不一样,固定参数无法满足安装需求。新机器一般都不需要额外设置参数,但是超算集群,尤其是学校的集群,大概率是要额外设置这些信息的。建议会使用容器的,可以创建一个容器后在容器内进行编译(我就是这么做的),我的测试中Amber在容器内编译后是可以正常在宿主机上运行的。但是Gromacs对GLIBC有依赖,如果容器和宿主机GLIBC对不上,可以正常编译但是运行会报错。
2.注意,安装过程中很可能会提醒你安装了boost库,让你把路径添加到环境变量中,比如export C_INCLUDE_PATH="${HOME}/amber-installer/ambertools25_src/AmberTools/src/boost",在脚本中添加后再运行编译。
3.在安装过程中如果出现了报错,建议通过ake clean或者手动删除build目录再运行,因为有的设置会在./configure时就写入makefile,重新make时不会改动参数,导致编译时还是用的旧变量。


按照CPU-MPICPU-GPU-MPIGPU的顺序编译Ambertools,然后按照GPU-MPIGPU的顺序编译pmemd。具体操作可以看脚本的help
  1. #!/usr/bin/env bash

  2. # MIT License
  3. #
  4. # Copyright (c) 2025 Bundit Boonyarit
  5. #
  6. # Permission is hereby granted, free of charge, to any person obtaining a copy
  7. # of this software and associated documentation files (the "Software"), to deal
  8. # in the Software without restriction, including without limitation the rights
  9. # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  10. # copies of the Software, and to permit persons to whom the Software is
  11. # furnished to do so, subject to the following conditions:
  12. #
  13. # The above copyright notice and this permission notice shall be included in
  14. # all copies or substantial portions of the Software.
  15. #
  16. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  19. # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  20. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  21. # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  22. # THE SOFTWARE.

  23. set -euo pipefail
  24. export C_INCLUDE_PATH=${HOME}/amber-installer/ambertools25_src/AmberTools/src/boost:$C_INCLUDE_PATH
  25. export C_INCLUDE_PATH=/usr/local/cuda-12.2/include:$C_INCLUDE_PATH
  26. #export CPLUS_INCLUDE_PATH=/usr/local/cuda-12.2/include:$CPLUS_INCLUDE_PATH
  27. export LD_LIBRARY_PATH=${HOME}/amber-installer/ambertools25_src/AmberTools/src/stage/lib:$LD_LIBRARY_PATH
  28. #export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH
  29. export PATH=/usr/local/cuda/bin:$PATH
  30. #export MKL_HOME=/opt/intel/mkl:$MKL_HOME
  31. # export C_INCLUDE_PATH="${HOME}/amber-installer/ambertools25_src/AmberTools/src/boost"
  32. export CPLUS_INCLUDE_PATH="/usr/local/cuda-12.2/include"
  33. # export LD_LIBRARY_PATH="${HOME}/amber-installer/ambertools25_src/AmberTools/src/stage/lib"
  34. # export LD_LIBRARY_PATH="/usr/local/cuda-12.2/lib64"
  35. # export PATH="/usr/local/cuda/bin"
  36. export MKL_HOME="/opt/intel/mkl"
  37. #export MKLROOT="/opt/intel/mkl"
  38. # ----------------------------------------------------------------------------
  39. # Colour codes
  40. # ----------------------------------------------------------------------------
  41. RED='\033[0;31m'
  42. GREEN='\033[0;32m'
  43. YELLOW='\033[1;33m'
  44. BLUE='\033[1;34m'
  45. NC='\033[0m' # No Colour

  46. # ----------------------------------------------------------------------------
  47. # Default installation prefixes (separated as requested)
  48. # ----------------------------------------------------------------------------
  49. INSTALL_PREFIX_AMBERTOOLS="${HOME}/ambertools25"
  50. INSTALL_PREFIX_PMEMD="${HOME}/pmemd24"

  51. # ----------------------------------------------------------------------------
  52. # Default build flags
  53. # ----------------------------------------------------------------------------
  54. BUILD_MPI=false
  55. BUILD_CUDA=false
  56. BUILD_AMBERTOOLS=false
  57. BUILD_PMEMD=false
  58. NPROC=$(nproc)

  59. # ----------------------------------------------------------------------------
  60. # Helper: usage message
  61. # ----------------------------------------------------------------------------
  62. usage() {
  63.     echo -e "${YELLOW}Usage: $0 [OPTIONS]${NC}\n"
  64.     echo "Options:"
  65.     echo "  -cpu                Build serial CPU version"
  66.     echo "  -gpu                Build serial GPU version with CUDA"
  67.     echo "  -mpi_cpu            Build MPI‑parallel CPU version"
  68.     echo "  -mpi_gpu            Build MPI‑parallel GPU version (MPI + CUDA)"
  69.     echo "  -ambertools         Build AmberTools25"
  70.     echo "  -pmemd              Build PMEMD24"
  71.     echo "  -path_ambertools <path>   Override AmberTools25 installation prefix"
  72.     echo "  -path_pmemd <path>        Override PMEMD24 installation prefix"
  73.     echo "  -nproc <n>               Number of CPU cores for compilation (default: all)"
  74.     echo "  -h | --help          Show this help message and exit"
  75.     exit 1
  76. }

  77. # ----------------------------------------------------------------------------
  78. # CLI argument parsing
  79. # ----------------------------------------------------------------------------
  80. CPU_FLAG_SET=0
  81. GPU_FLAG_SET=0
  82. MPI_CPU_FLAG_SET=0
  83. MPI_GPU_FLAG_SET=0

  84. while [[ $# -gt 0 ]]; do
  85.     case "$1" in
  86.         -cpu)       CPU_FLAG_SET=1;    shift;;
  87.         -gpu)       GPU_FLAG_SET=1;    shift;;
  88.         -mpi_cpu)   MPI_CPU_FLAG_SET=1;shift;;
  89.         -mpi_gpu)   MPI_GPU_FLAG_SET=1;shift;;
  90.         -ambertools) BUILD_AMBERTOOLS=true; shift;;
  91.         -pmemd)      BUILD_PMEMD=true;  shift;;
  92.         -path_ambertools)
  93.             [[ $# -lt 2 ]] && { echo -e "${RED}Error: -path_ambertools requires an argument.${NC}"; usage; }
  94.             INSTALL_PREFIX_AMBERTOOLS="$2"; shift 2;;
  95.         -path_pmemd)
  96.             [[ $# -lt 2 ]] && { echo -e "${RED}Error: -path_pmemd requires an argument.${NC}"; usage; }
  97.             INSTALL_PREFIX_PMEMD="$2"; shift 2;;
  98.         -nproc)
  99.             [[ $# -lt 2 ]] && { echo -e "${RED}Error: -nproc requires an argument.${NC}"; usage; }
  100.             NPROC="$2"; shift 2;;
  101.         -h|--help)  usage;;
  102.         *)          echo -e "${RED}Unknown argument: $1${NC}"; usage;;
  103.     esac
  104. done

  105. TOTAL_FLAGS=$((CPU_FLAG_SET + GPU_FLAG_SET + MPI_CPU_FLAG_SET + MPI_GPU_FLAG_SET))
  106. if [[ $TOTAL_FLAGS -ne 1 ]]; then
  107.     echo -e "${RED}Error: choose exactly one build type (-cpu, -gpu, -mpi_cpu, -mpi_gpu).${NC}"
  108.     usage
  109. fi

  110. if [[ "${BUILD_AMBERTOOLS}" = false && "${BUILD_PMEMD}" = false ]]; then
  111.     echo -e "${RED}Error: specify at least one of -ambertools or -pmemd.${NC}"
  112.     usage
  113. fi

  114. # ----------------------------------------------------------------------------
  115. # Configure build type
  116. # ----------------------------------------------------------------------------
  117. if   [[ $CPU_FLAG_SET -eq 1 ]];      then BUILD_MPI=false; BUILD_CUDA=false;
  118. elif [[ $GPU_FLAG_SET -eq 1 ]];      then BUILD_MPI=false; BUILD_CUDA=true;
  119. elif [[ $MPI_CPU_FLAG_SET -eq 1 ]];  then BUILD_MPI=true;  BUILD_CUDA=false;
  120. elif [[ $MPI_GPU_FLAG_SET -eq 1 ]];  then BUILD_MPI=true;  BUILD_CUDA=true;
  121. fi

  122. # ----------------------------------------------------------------------------
  123. # Environment‑modules handling (optional)
  124. # ----------------------------------------------------------------------------
  125. if command -v module &>/dev/null && [[ -n "${LMOD_CMD:-}" ]]; then
  126.     echo -e "${BLUE}Detected Lmod environment — purging loaded modules...${NC}"
  127.     module purge
  128. fi

  129. # ----------------------------------------------------------------------------
  130. # Conda bootstrap (local Miniforge3) — unchanged from original script
  131. # ----------------------------------------------------------------------------
  132. if [[ -d ./miniforge3 ]]; then
  133.     echo -e "${BLUE}Activating existing conda environment...${NC}"
  134.     set +eu
  135.     source ./miniforge3/bin/activate
  136.     #set +eu
  137.     #SOURCE CONDA
  138.     conda activate amber-installer
  139. else
  140.     MINIFORGE_INSTALLER="Miniforge3-$(uname)-$(uname -m).sh"
  141.     [[ -f "$MINIFORGE_INSTALLER" ]] || curl -LO "https://github.com/conda-forge/miniforge/releases/latest/download/$MINIFORGE_INSTALLER"
  142.     bash "$MINIFORGE_INSTALLER" -b -p ./miniforge3
  143.     source ./miniforge3/bin/activate
  144.     echo -e "${BLUE}Creating conda environment 'amber-installer'...${NC}"
  145.     conda env create -f env.yml
  146.     #set +eu
  147.     #SOURCE CONDA
  148.     set +eu
  149.     conda activate amber-installer
  150. fi

  151. # ----------------------------------------------------------------------------
  152. # AmberTools25 build
  153. # ----------------------------------------------------------------------------
  154. if [[ "${BUILD_AMBERTOOLS}" = true ]]; then
  155.     [[ -f ambertools25.tar.bz2 ]] || {
  156.         echo -e "${RED}Error: ambertools25.tar.bz2 not found.${NC}\n${YELLOW}Download it from https://ambermd.org/GetAmber.php${NC}";
  157.         exit 1;
  158.     }

  159.     echo -e "${BLUE}Extracting AmberTools25...${NC}"
  160.     [[ -d ambertools25_src ]] || tar xvjf ambertools25.tar.bz2

  161.     pushd ambertools25_src > /dev/null
  162.       ./update_amber --update
  163.       set +eu
  164.       conda activate amber-installer
  165.       # QUICK fix for mpi.h CMake flags (see original notes)
  166.       sed -i '/set(CMAKE_C_FLAGS "")/s/^/# /'   AmberTools/src/quick/CMakeLists.txt
  167.       sed -i '/set(CMAKE_CXX_FLAGS "")/s/^/# /' AmberTools/src/quick/CMakeLists.txt
  168.       sed -i '/set(CMAKE_Fortran_FLAGS "")/s/^/# /' AmberTools/src/quick/CMakeLists.txt

  169.       mkdir -p build && cd build
  170.       which gfortran
  171.       echo -e "${BLUE}Configuring AmberTools25 (MPI=${BUILD_MPI}, CUDA=${BUILD_CUDA}, PREFIX=${INSTALL_PREFIX_AMBERTOOLS})...${NC}"

  172.       #[[ -d CMakeFiles ]] && { echo "CMakeFiles detected — running make clean"; make clean; }

  173.       cmake .. \
  174.           -DCUDA_cublas_LIBRARY="/usr/local/cuda-12.2/lib64/libcublas.so.12.2.1.16" \
  175.           -DMKL_HOME="/opt/intel/mkl" \
  176.           -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
  177.           -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX_AMBERTOOLS}" \
  178.           -DCOMPILER=GNU \
  179.           -DMPI="${BUILD_MPI}" \
  180.           -DCUDA="${BUILD_CUDA}" \
  181.           -DINSTALL_TESTS=TRUE \
  182.           -DDOWNLOAD_MINICONDA=TRUE

  183.       echo -e "${BLUE}Building AmberTools25 with ${NPROC} cores...${NC}"
  184.       make -j"${NPROC}" && make install
  185.     popd > /dev/null
  186.     echo -e "${GREEN}AmberTools25 installed to ${INSTALL_PREFIX_AMBERTOOLS}${NC}"
  187. fi

  188. # ----------------------------------------------------------------------------
  189. # PMEMD24 build
  190. # ----------------------------------------------------------------------------
  191. if [[ "${BUILD_PMEMD}" = true ]]; then
  192.     [[ -f pmemd24.tar.bz2 ]] || {
  193.         echo -e "${RED}Error: pmemd24.tar.bz2 not found.${NC}\n${YELLOW}Download it from https://ambermd.org/GetAmber.php${NC}";
  194.         exit 1;
  195.     }

  196.     echo -e "${BLUE}Extracting PMEMD24...${NC}"
  197.     [[ -d pmemd24_src ]] || tar xvjf pmemd24.tar.bz2

  198.     pushd pmemd24_src > /dev/null
  199.       ./update_pmemd --update

  200.       mkdir -p build && cd build

  201.       echo -e "${BLUE}Configuring PMEMD24 (MPI=${BUILD_MPI}, CUDA=${BUILD_CUDA}, PREFIX=${INSTALL_PREFIX_PMEMD})...${NC}"

  202.       [[ -d CMakeFiles ]] && { echo "CMakeFiles detected — running make clean"; make clean; }

  203.       cmake .. \
  204.           -DCUDA_cublas_LIBRARY="/usr/local/cuda-12.2/lib64/libcublas.so.12.2.1.16" \
  205.           -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
  206.           -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX_PMEMD}" \
  207.           -DCOMPILER=GNU \
  208.           -DMPI="${BUILD_MPI}" \
  209.           -DCUDA="${BUILD_CUDA}" \
  210.           -DDOWNLOAD_MINICONDA=FALSE \
  211.           -DINSTALL_TESTS=TRUE \
  212.           -DBUILD_PYTHON=FALSE \
  213.           -DBUILD_PERL=FALSE \
  214.           -DBUILD_GUI=FALSE \
  215.           -DPMEMD_ONLY=TRUE \
  216.           -DCHECK_UPDATES=FALSE

  217.       echo -e "${BLUE}Building PMEMD24 with ${NPROC} cores...${NC}"
  218.       make -j"${NPROC}" && make install
  219.     popd > /dev/null
  220.     echo -e "${GREEN}PMEMD24 installed to ${INSTALL_PREFIX_PMEMD}${NC}"
  221. fi

  222. # ----------------------------------------------------------------------------
  223. # Completion message
  224. # ----------------------------------------------------------------------------
  225. if [[ "${BUILD_AMBERTOOLS}" = true && "${BUILD_PMEMD}" = true ]]; then
  226.     echo -e "${GREEN}Both AmberTools25 and PMEMD24 installations completed successfully.${NC}"
  227. elif [[ "${BUILD_AMBERTOOLS}" = true ]]; then
  228.     echo -e "${GREEN}AmberTools25 installation completed successfully.${NC}"
  229. else
  230.     echo -e "${GREEN}PMEMD24 installation completed successfully.${NC}"
  231. fi
复制代码

作者
Author:
sobereva    时间: 2025-12-21 04:43
Shinecyh 发表于 2025-12-20 20:39
不好意思打到一半回复出去了,继续补上:
去掉的参数:
          -DCUDA_cublas_LIBRARY="/usr/local/cu ...

有别人回复之前若需要对帖子进行修改、补充,应直接编辑原帖,不要通过回帖进行补充,导致信息零零碎碎,这点在置顶的新社员必读贴里明确说了。

并且认真、完整阅读置顶的社员必读贴,以及http://bbs.keinsci.com/thread-55679-1-1.html
作者
Author:
Shinecyh    时间: 2025-12-22 10:58
sobereva 发表于 2025-12-21 04:43
有别人回复之前若需要对帖子进行修改、补充,应直接编辑原帖,不要通过回帖进行补充,导致信息零零碎碎, ...

谢谢sob老师提醒,已编辑了原帖,并删除了补充的内容




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3