在云服务器上跑 VASP 的完整流程
整条链路其实只有七步,但每一步都有一个会卡住新手的点。这篇按顺序写清楚,包括每一步"做到什么算通过"。
第 0 步:先算,别急着开机器
开机器之前把那两个数定下来,否则你会反复开机关机:
有了这两个数,"选 32 核还是 64 核、128 GB 还是 256 GB"就不再是猜的。
第 1 步:选规格与计费方式
三条经验:
- 内存比核数更容易成为瓶颈,先满足内存再考虑核数。
- 纯 CPU 的 DFT 不要选共享型(突发性能)实例,它的 CPU 积分会用完。
- 不确定跑多久就用按量付费;确定长期再包年包月;可续算的批量任务用抢占式。
规格族的选择逻辑见 实例选型。
第 2 步:系统与环境
选一个你熟悉的发行版(Alibaba Cloud Linux / CentOS / Ubuntu 都可以),然后把编译依赖装齐。关键只有三样:Fortran 编译器、MPI、数学库。
# 以 RHEL 系为例
dnf install -y gcc gcc-gfortran make openmpi openmpi-devel environment-modules
mpif90 -show # 确认 MPI 包装器能找到编译器
通过检查的标准:mpif90 -show 能打印出完整的编译命令,mpirun -np 4 hostname 能正常输出四行。
第 3 步:编译 VASP
完整步骤与九种常见报错在 编译指南。这里只强调一件事:编译一次,做成自定义镜像。之后所有实例(包括抢占式)都从这个镜像起,省下的时间远超编译本身。
通过检查的标准:bin/ 下有 vasp_std,且在本地跑完 VASP 自带的一个小算例不报错。
第 4 步:跑一个标定算例
不要一上来就跑大体系。先拿一个你熟悉的、规模中等的算例,记录三件事:
# 记下这些数字,后面所有估算都基于它
grep "Total CPU time used" OUTCAR
grep -m1 "NBANDS" OUTCAR
grep "maximum memory" OUTCAR
- 单个离子步的墙钟时间 → 用来外推其他体系
- 峰值内存 → 用来确认规格是否选对
- 加速比(同算例 16 核 vs 32 核)→ 用来决定加核是否有意义
第 5 步:数据搬进搬出
输入文件通常很小,直接用 scp 或 rsync 传即可。结果文件(WAVECAR、CHGCAR、轨迹)可能很大,用对象存储更划算:
# 传输入
rsync -avz ./calc root@<服务器IP>:/root/
# 回传结果(只回传需要的)
rsync -avz root@<服务器IP>:/root/calc/{OUTCAR,CONTCAR,OSZICAR} ./
通过检查的标准:算完后你本地有一份完整的、能复现的输入与关键输出。不要把唯一的结果留在随实例释放的盘上。
第 6 步:算完就停,别挂着
按量计费的实例,停机后通常只收取云盘费用。养成三个习惯:
- 算完立刻在控制台停止实例(不是只关掉 SSH)
- 把
WAVECAR之类的临时文件清掉,减少云盘费用 - 需要续算时再开机,
CONTCAR、CHGCAR存好就能接着跑
第 7 步:复盘你花了多少
把实际机时和估算对比一次。差得远,说明你的缩放指数(估算器里的 n 值)要调;对得上,下次就能放心地按估算做预算。这一步做几次之后,你就有了属于自己的"每体系成本表",比任何人的经验值都可靠。
| 步骤 | 一句话检查点 |
|---|---|
| 算内存 | 知道要 ≥ 多少 GB,核数区间是多少 |
| 选规格 | 独享型,内存先满足 |
| 装环境 | mpirun 能跨核跑通 |
| 编译 | 小算例跑完不报错 |
| 标定 | 有单步耗时与峰值内存 |
| 搬数据 | 本地有可复现的输入输出 |
| 停机复盘 | 实际费用与估算的差距可解释 |
相关阅读:一台新 ECS 十分钟配成 DFT 计算节点:可复现的初始化脚本 · 在 Linux 上编译安装 VASP:依赖、Makefile 与常见报错 · 每月 300 / 1000 / 3000 元预算,在云上能跑多少计算 · INCAR 检查器 · 配置推荐器 · 常见问题 · 离线单文件估算器 · 内存与 WAVECAR 估算器 · core-hour 机时估算器
本站部分链接为推广链接,你购买的价格不变。命令示例以 RHEL 系为准,其他发行版请替换包管理器。