FourPhonon专题

FourPhononGPU与Phonopy辅助工具

单卡RTA的提交方式、CPU与GPU实际差异,以及用同一二阶常数画Phonopy声子能带和DOS。

更新于 2026-11-07约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载Si真实结构、受力、力常数、8张图和终端脚本,保存为 si-fourphonon.zip。所有本系列文章使用同一个包:

python3 -m zipfile -e si-fourphonon.zip .
cd fourthorder-fourphonon-silicon-wave288
bash preview.sh
ls preview/figures

包中 reference/ 保存本次实算参考;work/ 是您重新生成的文件,results/data/ 是提取后的CSV。受力来自真实VASP计算;下载包不含POTCAR、波函数、完整电子输出或第三方程序。

1 选择模块与平台#

模块 适用资源 本系列实际执行范围
fourphonon/1.3-fix20260924-8173m AVX512 Intel CPU RTA、同位素、完整迭代、抽样
fourphonon/1.3-fix20260924-p100 P100 16G 单卡、单MPI、确定性RTA
fourphonon/1.3-fix20260924-v100 V100 16G 单卡、单MPI、确定性RTA

GPU构建使用NVHPC 25.3、CUDA 12.8、配套MPI 4.1.7rc1和MKL 2023.2,分别编译适配P100/V100计算能力。不要通过改调用内部二进制绕过 fourphonon 的CONTROL限制。

2 单卡RTA作业脚本#

准备干净目录放四份输入,将下列内容保存为 gpu.sh 后运行 sbatch gpu.sh。使用RTA、关闭迭代、所有抽样参数为−1。

#!/bin/bash
#SBATCH -J si-fourphonon-gpu
#SBATCH -p gpu-8p100-hs
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -c 1
#SBATCH --gres=gpu:p100-16g:1
#SBATCH --mem=10G
#SBATCH -t 00:15:00
set -eo pipefail
source /etc/profile
module load fourphonon/1.3-fix20260924-p100
export OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 NV_ACC_TIME=1
cd "$SLURM_SUBMIT_DIR"
mpirun --bind-to none -np 1 fourphonon > native.log 2>&1

V100 16G相应使用分区 gpu-8v100-16g-hs、gpu:v100-16g:1和 fourphonon/1.3-fix20260924-v100。NV_ACC_TIME=1会在日志里给出真实GPU kernel执行信息,不能只凭加载GPU模块就判断程序已使用GPU。

3 如何看CPU/GPU差异#

本次在两种GPU分别完成3³/4³、300/600 K、三声子及三加四声子,共16个实际单卡条件。频率输出相同,热导差别在本例约0.001%–0.199%;但部分逐支散射率向量差别约1%–5.62%,因此 热导接近不等于逐模散射率已一致。

CPU与两种GPU的实际差异

目前本系列的定量散射率、寿命与求解选项分析以CPU为基准。GPU示例用于说明运行入口和实际对照,逐模定量研究应先在自己的结构、网格和参数上进行CPU对比。本次数据不足以把差异归结为单一原因;简单合并简并分支后也不能完全消除,不作未经证实的解释。

4 用Phonopy画同一份谐波常数#

不需要再跑谐波DFT。工具自动映射原子顺序,将同一份真实二阶常数交给Phonopy:

bash phonons.sh
head -n 5 phonopy-results/phonon-band.csv
cat phonopy-results/PHONOPY.json

实际调用模块 phonopy/4.8.3,原生API run_qpoints算L–Γ–X–W–K共241点,run_mesh与 run_total_dos算12³网格、0.1 THz Gaussian展宽的DOS;积分为6个模/原胞。当前DOS采用默认半网格移位,其点群缩并受限时由程序退回只用时间反演,对结果不作假造缩并。

同一真实二阶常数的Phonopy能带和DOS

辅助脚本在 phonons.py,结构、质量、超胞映射和CSV列名都可直接查看。若只想重画本次图,用 bash preview.sh;若需要将新输运结果画在一起,用 bash plot.sh。phonons.sh的输出位于 phonopy-results/,不覆盖原始力常数。

5 适用边界#

本Si非极性模型关闭 nonanalytic,没有Born有效电荷/介电张量例;TDEP格式、极性非解析修正和纳米线边界需要各自匹配的模型与输入,不能只把开关改成true。完整选项语义以固定版本源码和上游手册为准,本系列不将这些未演示分支称为已完成。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗