外观
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.in | LEaP 建模和力场配置 |
test.prmtop | Amber 拓扑与力场参数 |
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.logtleap.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.slurmGPU 作业应调用 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.nc | NetCDF 轨迹文件 |
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/mdinfoCPU 核数、内存和队列应根据体系规模测试后确定。
常见问题
找不到 pmemd.cuda
确认已经加载 GPU 版 Amber 模块,并执行 module list 和 which pmemd.cuda。若模块中仅提供 CPU 程序,请联系管理员确认软件版本。
tleap 报未知残基或缺失参数
检查 PDB 残基命名、配体参数、末端处理和所选力场。配体或非标准残基通常需要额外参数文件,不能忽略错误继续运行。
CUDA 初始化失败
确认作业脚本包含 --gres=gpu:1、实际运行在 GPU 节点,并查看 nvidia-smi 与错误日志。不要在登录节点直接测试 GPU 模拟。
作业很快结束但没有结果
检查 amber_作业ID.err、output/md.out 和输入文件路径。最常见原因是工作目录错误、拓扑或坐标文件不存在,以及模块版本不匹配。
操作演示

