计算化学公社

 找回密码 Forget password
 注册 Register
Views: 1505|回复 Reply: 5
打印 Print 上一主题 Last thread 下一主题 Next thread

[Amber] 求amber24和ambertools25的安装方法

[复制链接 Copy URL]

181

帖子

0

威望

4178

eV
积分
4359

Level 6 (一方通行)

本帖最后由 azero 于 2025-7-10 12:51 编辑

如题
现在amber24.tar.bz2文件包改名成pmemd24.tar.bz2了,搞得不知道怎么安装了
之前是成功安装过amber22+ambertools22的

849

帖子

4

威望

1915

eV
积分
2844

Level 5 (御坂)

A Student

2#
发表于 Post on 2025-7-10 16:40:15 | 只看该作者 Only view this author
官网有提到参考手册哪部分https://ambermd.org/GetAmber.php#amber


最新的Amber 25手册(https://ambermd.org/doc12/Amber25.pdf)第21页写的是
9. If you have licensed Amber24, repeat steps 3-8 above, changing “ambertools25” to “pmemd24”.
敬仰一针见血的指责,厌倦别有用心的赞美。

181

帖子

0

威望

4178

eV
积分
4359

Level 6 (一方通行)

3#
 楼主 Author| 发表于 Post on 2025-7-10 21:03:45 | 只看该作者 Only view this author
student0618 发表于 2025-7-10 16:40
官网有提到参考手册哪部分https://ambermd.org/GetAmber.php#amber

原来amber25的手册链接藏在这,难怪找不到。谢谢~

3

帖子

0

威望

50

eV
积分
53

Level 2 能力者

4#
发表于 Post on 2025-12-20 20:35:08 | 只看该作者 Only view this author
本帖最后由 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
复制代码

6万

帖子

99

威望

5万

eV
积分
124668

管理员

公社社长

5#
发表于 Post on 2025-12-21 04:43:23 | 只看该作者 Only view this author
Shinecyh 发表于 2025-12-20 20:39
不好意思打到一半回复出去了,继续补上:
去掉的参数:
          -DCUDA_cublas_LIBRARY="/usr/local/cu ...

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

并且认真、完整阅读置顶的社员必读贴,以及http://bbs.keinsci.com/thread-55679-1-1.html
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

3

帖子

0

威望

50

eV
积分
53

Level 2 能力者

6#
发表于 Post on 2025-12-22 10:58:59 | 只看该作者 Only view this author
sobereva 发表于 2025-12-21 04:43
有别人回复之前若需要对帖子进行修改、补充,应直接编辑原帖,不要通过回帖进行补充,导致信息零零碎碎, ...

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

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-1-23 20:36 , Processed in 0.278351 second(s), 23 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list