Skip to content

Amber 集群使用方法

Amber(Assisted Model Building with Energy Refinement)是一套面向分子动力学、能量最小化和自由能计算的分子模拟软件,常用于蛋白质、核酸、脂质及其复合体系研究。平台提供 Amber 运行环境和 GPU 计算资源,正式模拟任务应通过 Slurm 提交。

不要在登录节点运行分子动力学任务

登录节点仅用于准备输入文件、编辑脚本和进行短时间环境检查。能量最小化、平衡和生产模拟必须提交到计算队列。

检查并加载环境

查看平台提供的 Amber 模块:

bash
module avail amber

加载 GPU 版本环境:

bash
module purge
module load amber/22gpu

确认关键程序可用:

bash
which tleap
which pmemd.cuda
pmemd.cuda -h | head

以实际模块列表为准

如果 amber/22gpu 不存在,请使用 module avail amber 显示的版本名称,或联系管理员确认当前可用版本。

准备示例目录

平台示例位于:

text
/hpcfs/fpublic/script_example/amber

建议复制到个人目录后再运行,不要直接修改公共示例:

bash
cp -r /hpcfs/fpublic/script_example/amber ~/amber-demo
cd ~/amber-demo
mkdir -p output

示例主要文件:

文件作用
test.pdb初始分子结构
tleap.inLEaP 建模和力场配置
test.prmtopAmber 拓扑与力场参数
test.inpcrd初始坐标
md.in分子动力学控制参数

使用 tleap 生成拓扑和坐标

下面是一个基础 tleap.in 示例:

text
source leaprc.protein.ff14SB

mol = loadpdb test.pdb
check mol
saveamberparm mol test.prmtop test.inpcrd
quit

执行:

bash
tleap -f tleap.in | tee tleap.log

检查是否成功生成文件:

bash
ls -lh test.prmtop test.inpcrd
tail -n 20 tleap.log

tleap.log 末尾应显示 Errors = 0。如存在缺失原子、未知残基或力场参数错误,应先修复结构和输入配置,再提交模拟。

准备演示输入文件

下面的 md.in 用于短时间隐式溶剂测试:

text
Short implicit-solvent MD test
&cntrl
  imin=0,
  irest=0,
  ntx=1,
  ntb=0,
  igb=1,
  ntt=3,
  gamma_ln=2.0,
  tempi=300.0,
  temp0=300.0,
  nstlim=50000,
  dt=0.002,
  cut=999.0,
  ntpr=500,
  ntwx=500,
  ntwr=5000,
  ioutfm=1,
/

演示参数不能直接用于正式研究

正式分子动力学通常需要依次完成结构检查、能量最小化、升温、密度平衡、恒温恒压平衡和生产模拟。请根据研究体系、力场和科学问题设计参数,并对结果进行收敛性与合理性检查。

提交 GPU 作业

创建 submit_amber.slurm

bash
#!/bin/bash
#SBATCH --job-name=amber-md
#SBATCH --partition=qgpu_3090
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=16G
#SBATCH --gres=gpu:1
#SBATCH --time=02:00:00
#SBATCH --output=amber_%j.out
#SBATCH --error=amber_%j.err

set -euo pipefail

module purge
module load amber/22gpu

WORK_DIR="$HOME/amber-demo"
cd "$WORK_DIR"
mkdir -p output

echo "Job ID: ${SLURM_JOB_ID}"
echo "Node: $(hostname)"
echo "Started: $(date)"
nvidia-smi

pmemd.cuda -O \
  -i md.in \
  -o output/md.out \
  -p test.prmtop \
  -c test.inpcrd \
  -r output/md.rst7 \
  -x output/md.nc \
  -inf output/mdinfo

echo "Finished: $(date)"

请将 WORK_DIR 改为本人实际工作目录,然后提交:

bash
sbatch submit_amber.slurm

GPU 作业应调用 pmemd.cuda

pmemd.cuda 才是 Amber 的 GPU 可执行程序。普通 pmemd 通常不会使用已申请的 GPU,可能造成资源浪费。

查看作业和结果

查看排队或运行状态:

bash
squeue -u "$USER"

查看指定作业的资源使用情况:

bash
sacct -j 作业ID --format=JobID,State,Elapsed,AllocTRES,MaxRSS,ExitCode

检查 Amber 输出:

bash
tail -n 50 output/md.out
tail -n 50 amber_作业ID.err

正常完成后,主要结果包括:

文件说明
output/md.out运行过程、能量和性能信息
output/md.rst7最终重启坐标
output/md.ncNetCDF 轨迹文件
output/mdinfo运行中的状态摘要

CPU 并行任务

确需使用 CPU 并行版本时,应申请 CPU 队列并调用 pmemd.MPI,不要在 GPU 队列中运行 CPU 程序。基本形式为:

bash
srun pmemd.MPI -O \
  -i md.in \
  -o output/md.out \
  -p test.prmtop \
  -c test.inpcrd \
  -r output/md.rst7 \
  -x output/md.nc \
  -inf output/mdinfo

CPU 核数、内存和队列应根据体系规模测试后确定。

常见问题

找不到 pmemd.cuda

确认已经加载 GPU 版 Amber 模块,并执行 module listwhich pmemd.cuda。若模块中仅提供 CPU 程序,请联系管理员确认软件版本。

tleap 报未知残基或缺失参数

检查 PDB 残基命名、配体参数、末端处理和所选力场。配体或非标准残基通常需要额外参数文件,不能忽略错误继续运行。

CUDA 初始化失败

确认作业脚本包含 --gres=gpu:1、实际运行在 GPU 节点,并查看 nvidia-smi 与错误日志。不要在登录节点直接测试 GPU 模拟。

作业很快结束但没有结果

检查 amber_作业ID.erroutput/md.out 和输入文件路径。最常见原因是工作目录错误、拓扑或坐标文件不存在,以及模块版本不匹配。

操作演示

Amber 作业提交流程

Copyright 2021 All Rights Reserved 生物设计中心 版权所有