QE入门与任务提交
Si完整pw.x输入、精确模块、单卡提交和输出单位,区分不同子程序。
阅读本篇目录
下载完整输入、赝势、真实结果和绘图脚本。解压后,inputs/是可修改输入,reference/是本次真实参考输出,复跑结果写入 work/。下面的计算命令在已分配的相应资源内运行。
1 选择程序与构建#
Quantum ESPRESSO不是一个单独命令:pw.x计算平面波基态、优化和Born–Oppenheimer动力学;ph.x做DFPT;bands.x/dos.x/projwfc.x/pp.x提取电子数据;q2r.x/matdyn.x连接动力学矩阵、力常数和声子;neb.x做反应路径;cp.x做Car–Parrinello动力学。不同子程序的输入和适用构建要分别核对。
本专题使用7.6。CPU的pw.x/ph.x/后处理采用oneAPI2024.2的icx/mpiifx、IntelMPI/MKL和OpenMP构建;P100采用NVHPC25.3、配套HPC-X、CUDA12.8与MKL。模块负责加载依赖,不叠加另一套MPI。
module load qe/7.6-8173m
which pw.x
which ph.x
which projwfc.x
CP流程指定使用NVHPC/P100构建;当前CPU构建的cp.x存在数值兼容问题,CP部分请按动力学教程的P100模板运行。这里不把同一版本号理解为所有构建和子程序可互换。
2 第一个Si原胞#
cat inputs/si-cutoff-60/pw.in
bash run.sh si-cutoff-60
grep "!.*total energy" work/si-cutoff-60/pw.in.out
grep "JOB DONE" work/si-cutoff-60/pw.in.out
&CONTROL
calculation='scf', prefix='si', pseudo_dir='../pseudo', outdir='./tmp',
tprnfor=.true., tstress=.true., verbosity='high',
etot_conv_thr=1d-6, forc_conv_thr=0.0007779, nstep=80
/
&SYSTEM ibrav=0, nat=2, ntyp=1, ecutwfc=60, ecutrho=240, nbnd=12 /
&ELECTRONS conv_thr=1d-8, mixing_beta=0.5, electron_maxstep=150 /
ATOMIC_SPECIES
Si 28.0855 Si_ONCV_PBE-1.0.upf
CELL_PARAMETERS angstrom
0 2.715 2.715
2.715 0 2.715
2.715 2.715 0
ATOMIC_POSITIONS crystal
Si 0 0 0
Si .25 .25 .25
K_POINTS automatic
4 4 4 0 0 0
这是2原子的金刚石Si原胞,晶胞矢量单位Å、位置为分数坐标。ecutwfc=60 Ry,ecutrho=240 Ry,电子总能收敛参数conv_thr=1E-8 Ry;例子使用Gamma中心4×4×4网格,后文会显示它还不足以当作最终k点精度。nbnd=12包含4条占据带及空带。
PP文件保留原始生成信息与引用。赝势和泛函、元素、价电子数必须一致,不能仅根据文件名相似替换。正式对比总能时保持同一赝势与计算设置。

3 提交P100单卡任务#
sbatch gpu.sbatch si-cutoff-60
squeue -u "$USER"
grep "GPU acceleration" work/si-cutoff-60/pw.in.out
grep "!.*total energy" work/si-cutoff-60/pw.in.out
模板申请1卡、1个MPI进程、2个CPU核心,通过mpirun启动;GPU初始化和MPI启动都需使用对应模块。8个Si条件分别在两台P100节点与CPU参考核对,程序输出确认GPU加速实际启用。能量差以输出精度为限,不把这些短单点计时当作材料通用加速比。
核时P100使用包内gpu-8p100-hs;套餐用户将partition改为账号允许的P100套餐分区。CPU计算在CPU资源可用时提交匹配模板,正式计算不在登录终端直接长时间运行。小规模操作与正式生产资源要求分开。
4 读输出时先看这几项#
grep "number of electrons" work/si-cutoff-60/pw.in.out
grep "convergence has been achieved" work/si-cutoff-60/pw.in.out
grep "Total force" work/si-cutoff-60/pw.in.out
grep -A4 "total.*stress" work/si-cutoff-60/pw.in.out
总能是Ry,原子力通常是Ry/Bohr,压力输出为kbar;1 Ry≈13.605693 eV,1 Bohr≈0.529177 Å,1 kbar=0.1 GPa。JOB DONE只说明程序走到结束,还要检查电子收敛、原子力及所需输出是否齐全。