声子、热输运与材料性质工具
Phonopy、ShengBTE、FourPhonon、TDEP、AMSET等软件的环境与计算路径。
阅读本篇目录
各章节保留原指南中的版本、平台、操作示例与适用边界;章节日期不同,使用时按所列版本核对。全部软件分项
环境与使用说明#
5.14 ShengBTE 与 thirdorder#
ShengBTE 根据二阶和三阶力常数求解声子玻尔兹曼输运方程,计算晶格热导率;thirdorder 用于三阶力常数所需位移生成和力数据重建。二者已分别部署,现有 VASP、QE 无需重编。
| 软件版本 | 编译环境与方式 | 路径 |
|---|---|---|
| ShengBTE 1.5.1 | 官方标签源码,oneAPI 2024.2 / ifx 2024.2.1、mpiifx / Intel MPI 2021.13;MKL 2024.2 LP64 sequential,MPI+OpenMP,-O2 -xCORE-AVX512 -qopenmp -traceback |
/public/software/shengbte/1.5.1/oneapi-2024.2/8173m |
| thirdorder 1.1.4 | 官方标签源码,GCC 13.3 编译 Cython 扩展,通用 -O2,Python 3.11.16 / NumPy 1.26.4 / SciPy 1.13.1 / Cython 0.29.37 |
/public/software/thirdorder/1.1.4/gcc-13.3 |
依赖与构建。 ShengBTE 的 Src/arch.make 指定上述工具链与私有 spglib 2.7.0:/public/software/shengbte/deps/spglib/2.7.0/oneapi-2024.2/8173m,该 C 库由 icx 编译,保留双精度,未启用 GPU 或 fast-math。thirdorder 环境位于 /public/toolkit/miniconda3/envs/thirdorder-1.1.4,含 lxml、setuptools;Conda 使用清华 conda-forge。其 thirdorder_core 由上游 setup.py build --build-lib=. --build-platlib=. 构建,链接另一套通用 GCC spglib 2.7.0:/public/software/thirdorder/deps/spglib/2.7.0/gcc-13.3。两套库隔离,thirdorder 不依赖 8173m 的 AVX-512 指令。私有头文件兼容链接适配 spglib/spglib.h,扩展设置运行库路径;无需用户设置 PYTHONPATH。两套 spglib 各45项 CTest 全通过。
ShengBTE 提交。 计算目录需有 CONTROL、FORCE_CONSTANTS_3RD,以及 FORCE_CONSTANTS_2ND 或 QE 格式的 espresso.ifc2(由 CONTROL 的 espresso 标志选择)。本体没有输入文件命令行参数,在当前目录读取这些文件。
cp /public/slurm_scripts/hs_user/shengbte/1.5.1/8173m/sub_shengbte_1.5.1_8173m.sh .
sbatch sub_shengbte_1.5.1_8173m.sh
套餐用户改用 tc_user 路径,或通过 yskit 选择复制。模板加载 shengbte/1.5.1-8173m,默认2 MPI×28 OpenMP,共56核,MKL单线程;8173m有2个NUMA域、每域28核。可比较4×14、56×1,但总数必须56,不得减少总申请核数。模板设置 OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK、OMP_DYNAMIC=FALSE、线程/进程绑定,日志合并到 %j.out。
线程设置的版本细节。 上游 README 描述 CONTROL &flags 的 nthreads=-1 服从环境,建议保留该写法。但实际部署的固定v1.5.1标签只读取/显示nthreads,未调用omp_set_num_threads,也没有num_threads子句;此版本真正的线程数由 OMP_NUM_THREADS 决定。不要只改CONTROL而不改Slurm和环境。运行库 OMP_DISPLAY_ENV=TRUE 验收确认每个rank为28线程;前期调研中“必须设置nthreads才能开启线程”的说法已由源码与运行结果修正。
thirdorder 使用。 小型位移生成和重建可在login01运行,默认BLAS单线程;大型reap内存/耗时需先评估,不要直接对同一目录mpirun多份。
module load thirdorder/1.1.4
thirdorder_vasp.py
thirdorder_espresso.py
thirdorder_castep.py
无参数调用打印各自用法。下面仅为官方InAs示例的命令形式,超胞和cutoff需按具体体系收敛测试后选择:
thirdorder_vasp.py sow 4 4 4 -3
# 为每个位移准备并运行VASP计算,之后按位移编号生成结果清单
thirdorder_vasp.py reap 4 4 4 -3 < ordered-vasprun-files.txt
VASP需要原胞POSCAR,sow生成3RD.POSCAR.*;reap读取按位移编号排列的vasprun.xml文件路径。sow/reap必须使用相同结构、超胞、cutoff及同一版本。cutoff正数单位是nm,负整数表示邻居壳层,不能误按Å解释。QE接口还需要原胞输入和超胞模板,完整语法见安装目录README.md。
流程为 thirdorder sow → VASP/QE位移受力计算 → thirdorder reap → FORCE_CONSTANTS_3RD → ShengBTE。thirdorder不自动完成DFT,也不生成二阶力常数;二阶需另用DFPT或Phonopy等方法。DFT复用现有VASP/QE模板,CPU8173m各作业按56核;没有为thirdorder另建少核Slurm脚本,不照抄上游qsub示例批量提交。
验收范围。 ShengBTE作业879—885全部申请56核并正常结束。官方Test-VASP/Test-QE原始12³网格在300K收敛,热导对角元分别26.667和37.661 W/(m K);前者相对官方参考差3.75e-5,后者在输出精度下一致。缩小6³网格用于2×28、4×14、56×1布局核对,热导对角元均13.481 W/(m K),非对角差约1e-20;短测试耗时不代表生产最佳布局。生产网格收敛需用户自行验证。
thirdorder的VASP InAs和QE GaAs小型2×2×2、第一邻居示例均生成20个位移;VASP reap用明确标注的合成谐性恢复力验证读写和重建,26个三阶块的最大绝对值约8.08e-28 eV/ų,符合谐性模型三阶为零的预期。没有运行真实位移DFT闭环;QE验收到sow,CASTEP仅入口用法检查,不能宣称所有DFT接口完整验收。编译有上游Cython语言级别和NumPy旧API提示,没有为消除提示修改算法。
5.15 BoltzTraP2(btp2)#
兼容性: 当前NumPy固定2.3.5,环境约束>=2,<2.4;2.4删除np.trapz导致上游dope失败,不要自行升级至2.4。
module load boltztrap2/26.3.1,入口 btp2,独立环境 /public/toolkit/miniconda3/envs/boltztrap2-26.3.1。Python3.11.16/NumPy2.3.5/SciPy1.17.1;系统GCC/G++13.3、Cython3.3.0、C++11、-O2通用源码构建。自带spglib2.6.0静态库/Eigen,运行时Python spglib2.7.0及pyFFTW0.15.1。CPU双精度计算,未部署MPI/GPU、VTK/GPAW。
小输入检查在login01单线程;大插值/输运使用8173m模板,整节点56CPU。interpolate为单进程拟合,模板给BLAS56线程,-n不控制该拟合;integrate/dope为56个Python工作进程,每进程BLAS/OMP1线程。并行效率受能带数、网格、内存等限制。
模板:/public/slurm_scripts/{hs_user,tc_user}/boltztrap2/26.3.1/8173m/sub_boltztrap2_26.3.1_8173m.sh,可用yskit复制。
module load boltztrap2/26.3.1
btp2 -V
# 将自己的DFT输出放入dft-data;以下参数仅示例,应自行检查收敛
sbatch sub_boltztrap2_26.3.1_8173m.sh interpolate -m 5 -o bands.bt2 dft-data
# 等插值完成之后再提交
sbatch sub_boltztrap2_26.3.1_8173m.sh integrate bands.bt2 300:801:100
# 掺杂值单位cm^-3,正值为空穴,负值为电子
cp bands.bt2 doped.bt2
sbatch sub_boltztrap2_26.3.1_8173m.sh dope doped.bt2 300 1e18
本版本-p/--prefix虽显示在帮助中,源码实际未使用;输出沿用输入.bt2基名。不同温度/掺杂计算应使用不同输入文件基名或独立目录,避免覆盖。integrate 输出 .btj、.trace、.condtens、.halltens;dope 输出 .dope.trace、.dope.condtens、.dope.halltens。interpolate的-e/-E单位为Ha,默认相对费米能;温度为K,不要混用eV和Ha。
输入须是适合输运的均匀k网格及足够空带;能带路径不能直接作为输运采样。VASP通常读vasprun.xml,QE需要兼容XML且满足加载器要求的Monkhorst-Pack网格。VASP/QE本身无需重装。默认恒定弛豫时间近似,软件不替用户计算实际散射寿命,电导等须按输出单位和tau解释;不能将电子热导等同ShengBTE晶格热导。
默认 MPLBACKEND=Agg 供无显示环境;btp2 plot 调用 show(),不会自动保存 PNG。对已经完成积分的 bands.btj,可在 login01 保存电导张量图:
module load boltztrap2/26.3.1
python - <<'PYTHON'
import sys
import matplotlib.pyplot as plt
from BoltzTraP2.interface import btp2_main
plt.show = lambda: plt.savefig("sigma.png", dpi=150, bbox_inches="tight")
sys.argv = ["btp2", "plot", "-c", '["xx","yy","zz"]', "bands.btj", "sigma"]
btp2_main()
PYTHON
张量绘图需指定分量;上例保存 xx、yy、zz 三个对角分量。需要图形窗口时自行配置有效 DISPLAY 及图形后端。vtk 缺失提示仅说明可选3D fermisurface 禁用。
已完成56CPU作业889验收:解析模型插值、1/56进程输运一致、绘图与掺杂通过;VASP输出读取通过。未执行完整上游回归,现有QE输入不满足MP网格,未完成QE验收。详细验收和限制见 管理员维护记录;构建和包锁定见同目录BUILD.md、conda-explicit.txt、pip-freeze.txt。
5.16 Fourthorder#
Fourthorder 生成计算四阶力常数所需的位移超胞,并读取 VASP/QE 受力结果重建 FORCE_CONSTANTS_4TH。现有 VASP、QE 无需重编;二阶和三阶力常数另行准备。
| 构建标识 | 编译环境与方式 | 程序路径 |
|---|---|---|
| 0.1-fix20260618 | 官方v0.1发布页Python3附件+2026-06-18官方最小距离修复;GCC13.3、通用-O2、Cython0.29.37重新生成C;双精度串行 |
/public/software/fourthorder/0.1-fix20260618/gcc-13.3 |
依赖与构建。 独立Conda前缀按管理员指定为 /public/toolkit/miniconda3/envs/fourthorder,Python3.11.16 / NumPy1.26.4 / SciPy1.13.1 / lxml6.1.3 / setuptools84.0.0。Conda使用清华conda-forge。spglib2.7.0由GCC单独编译到 /public/software/fourthorder/deps/spglib/2.7.0/gcc-13.3,扩展设置运行库路径,不依赖thirdorder安装目录或8173m专用指令。Cython的buffer_max_dims10仅在构建进程设置,没有修改共享编译器文件。
上游main/tag压缩包与发布页Python3附件不同,旧README的Python2描述不适用于本次部署;距离修复只更新pyx,因此本次从pyx重新生成C,不能用旧C文件跳过修复。0.1-fix20260618是集群构建标识,不是上游新发行版。
加载和运行。 小型串行前后处理在login01运行,数学库线程变量未设置时默认1;大规模reap先评估内存。
module load fourthorder/0.1-fix20260618
# 当前目录准备原胞POSCAR,超胞与cutoff以下仅示例
Fourthorder_vasp.py sow 4 4 4 -2
# 用现有VASP脚本逐一运行生成的位移结构,按编号整理vasprun.xml清单
Fourthorder_vasp.py reap 4 4 4 -2 < ordered-vasprun-files.txt
QE接口需要原胞输入及含结构通配符的超胞模板:
Fourthorder_espresso.py unitcell.in sow 4 4 4 -2 supercell_template.in
# 使用现有QE脚本完成静态受力计算
Fourthorder_espresso.py unitcell.in reap 4 4 4 -2 < ordered-qe-files.txt
cutoff正数单位为nm,负整数表示邻居壳层。默认位移H=0.001nm=0.01Å;sow/reap须保持结构、超胞、cutoff、位移及版本一致,受力文件按位移编号排序。VASP/QE使用充分收敛的静态受力,不做离子弛豫。改变H使用个人工作副本,复制方法见 $FOURTHORDER_ROOT/README.md,不要修改公共common.py。
上游QE坐标解析器对-0.25等一元负号表达式报invalid node in the parse tree。遇到这类原胞输入时,转换为等价的ATOMIC_POSITIONS crystal,将分数坐标包回0到1,例如-0.25改为0.75。本次保留原解析器,没有加入未经采用的额外补丁。
本体没有MPI/GPU构建,也没有单/混合精度开关;不用mpirun启动多份处理同一目录。reap完整double数组仅自身约需8×81×Nprimitive×Nsuper³字节,两原子原胞/4³超胞已约2.53GiB,另有辅助数组。DFT复用现有提交脚本,8173m每个作业总56核;没有新增Fourthorder少核串行Slurm模板。
验收范围。 专属spglib45项测试通过。manage01及login01普通用户均通过VASP InAs/QE GaAs 2³第一邻居sow(各96个位移)和合成受力reap:谐性模型输出零四阶常数,平移不变最近邻四次项模型输出58块/174个非零分量,打印精度下与解析结果一致;两接口的原子顺序和QE Ry/bohr到eV/Å单位转换已覆盖。未运行真实位移DFT闭环,不能把合成力常数当作材料数据。
四声子散射和热导率使用独立 FourPhonon 求解器,现已部署;普通ShengBTE1.5.1不会因Fourthorder部署自动增加该功能。正式记录:管理员维护记录,源码锁定、patch、依赖清单和日志位于同目录。
5.17 FourPhonon#
FourPhonon读取二阶、三阶和四阶力常数,计算三/四声子散射及晶格热导率。thirdorder与Fourthorder生成高阶力常数,FourPhonon负责输运求解;VASP/QE负责位移DFT或二阶DFPT,现有程序无需重编。它是独立发展的ShengBTE派生程序,不覆盖普通ShengBTE。
当前构建标识1.3-fix20260924对应官方固定提交5b814b337e03e72907a15a2c953723171fba7102,包含正式1.3发行后已合并的迭代数组初始化、采样溢出和不兼容采样组合检查等修复;该标识不是新的上游正式版本。
| 版本/构建标识 | 平台 | 编译环境与方式 | 安装路径 |
|---|---|---|---|
| 1.3-fix20260924 | 8173m | oneAPI2024.2 ifx2024.2.1/mpiifx、Intel MPI2021.13、MKL2024.2 LP64 sequential;源码make cpu,-O2 -xCORE-AVX512 -qopenmp -traceback -fpp -DCPU_VERSION |
/public/software/fourphonon/1.3-fix20260924/oneapi-2024.2/8173m |
| 1.3-fix20260924 | P100 | NVHPC25.3 nvfortran/mpif90、SDK HPC-X2.22.1/OpenMPI4.1.7rc1、CUDA12.8、MKL2023.2 LP64 sequential;目标P100节点源码make gpu,OpenACC/cc60/-O2 -mp -tp host |
/public/software/fourphonon/1.3-fix20260924/nvhpc-25.3/p100 |
| 1.3-fix20260924 | V100 | NVHPC25.3 nvfortran/mpif90、SDK HPC-X2.22.1/OpenMPI4.1.7rc1、CUDA12.8、MKL2023.2 LP64 sequential;目标V100节点源码make gpu,OpenACC/cc70/-O2 -mp -tp host |
/public/software/fourphonon/1.3-fix20260924/nvhpc-25.3/v100 |
保持上游双精度,无单/混合精度开关。三套共用专属GCC13.3通用-O2构建的spglib2.7.0 C库:/public/software/fourphonon/deps/spglib/2.7.0/gcc-13.3,不需要新增Conda或spglib Fortran模块。GPU MPI与公共hpcx/25.0的OMPI5不同,不混用两者包装器或运行库。CPU/GPU分别构建,因上游Makefile漏列integrals模块依赖,Fortran按make -j1编译,科学计算源码未加本地补丁;spglib用16并行。
模块按平台选择:
module load fourphonon/1.3-fix20260924-8173m
fourphonon --version
fourphonon --help
# GPU替换为fourphonon/1.3-fix20260924-p100或-v100
计算目录准备CONTROL、FORCE_CONSTANTS_3RD、FORCE_CONSTANTS_4TH,以及FORCE_CONSTANTS_2ND或QE的espresso.ifc2,后者由espresso标志选择。程序在当前目录读取文件,无输入文件名命令行参数。第四阶常数格式每块81分量,单位eV/Å⁴,与Fourthorder输出目标一致;二阶方法、超胞、截断、声学和规则及q网格须用户收敛验证。
公共模板位于:
/public/slurm_scripts/hs_user/fourphonon/1.3-fix20260924/{8173m,p100,v100}/
/public/slurm_scripts/tc_user/fourphonon/1.3-fix20260924/{8173m,p100,v100}/
yskit → 复制脚本 → 用户类型 → fourphonon → 版本 → 平台。CPU模板2MPI×28OpenMP,总56核;OMP_NUM_THREADS取SLURM_CPUS_PER_TASK,MKL单线程、OMP栈1G并按核心绑定。FourPhonon的CONTROL没有普通ShengBTE的nthreads字段,不要照抄该字段。
GPU模板固定1卡、1MPI×8CPU线程;此版不支持多GPU,不能将gres与ntasks改成2/4/8套用其他软件增卡方法。允许按CPU预处理耗时调整个人副本的线程数及cpus-per-task,仍保留单卡单MPI。两套GPU均使用GPU_ALL_MODE_PARALLELIZATION;更省显存的MODE_BY_MODE是互斥编译选项,当前没有额外部署该二进制。
GPU仅支持无采样RTA,CONTROL须设置:
&flags
convergence=.false.
four_phonon=.true.
four_phonon_iteration=.false.
&end
¶meters
num_sample_process_3ph=-1
num_sample_process_3ph_phase_space=-1
num_sample_process_4ph=-1
num_sample_process_4ph_phase_space=-1
&end
以上是合并到已有namelist中的参数片段,不是完整CONTROL;保留自己的温度等其他设置,不重复创建同名组。采样参数省略时默认-1,但convergence默认true,须明确关闭。公共fourphonon入口会拒绝GPU迭代、采样或多MPI误用;上游原名ShengBTE_cpu/gpu也保留,直接调用会绕过入口检查。
CPU保留完整三/四声子迭代、RTA及兼容的RTA采样,具体科学算法由CONTROL选择;完整迭代使用convergence与four_phonon_iteration为true且关闭采样。保留TDEP输入与转换工具源码,不额外安装独立转换命令;TDEP程序另见5.21节。1.3不生成BTE.Normal/BTE.Umklapp,四声子纳米线模型不支持;大网格需要评估主机内存与显存,不能仅按原子数判断。
已通过专属spglib45项测试、login01普通用户三模块加载/卸载/版本及GPU误用拦截。官方Si缩小3³网格,在manage01兼容AVX512 CPU上三种总56线程布局结果一致;RTA热导对角元29.631 W/(m K),完整三/四声子迭代7次收敛到31.238。P100/V100单卡RTA分别29.644/29.633,距CPU约0.044%/0.007%;散射率向量相对范数差约0.11%,重复结果在打印精度下一致,并确认GPU内核执行。GPU为共享节点功能验收,不作性能基准;采样仅入口与合理性检查,不代表统计收敛。真实DFT闭环、生产q网格收敛及MODE_BY_MODE未验收。
8173m目标作业907已通过:真实ccn001-8173m单节点总56核,1MPI×56、2×28、4×14三布局RTA、完整三/四声子迭代及采样检查通过。热导与三/四声子散射率按既有容差核对管理节点参考,公开CPU二进制hash一致。原891日志路径错误已修正并保留失败证据。CPU/P100/V100采用范围安装验收与交付完成;不是生产网格收敛或性能基准。
构建与验收记录:FourPhonon STATUS,官方手册与示例位于$FOURPHONON_ROOT/share/fourphonon。
5.18 Phonopy#
Phonopy处理二阶力常数、谐性声子、色散、DOS、热力学、NAC、Grüneisen及QHA。VASP/QE/ABACUS/CP2K等现有程序提供位移受力,安装Phonopy不需要重编这些DFT程序。thirdorder/Fourthorder处理高阶力常数,ShengBTE/FourPhonon求解输运,职责分别保留。
版本与构建环境#
| 版本 | 平台与精度 | 编译环境及方法 | 程序路径 |
|---|---|---|---|
| 4.7.2 | 通用x86_64 CPU;float64/complex128 | 官方sdist源码,GCC/G++13.3.0、CMake3.28.3、nanobind2.9.2、scikit-build-core0.11.6、Ninja1.13.0;pip构建C/OpenMP扩展,Release显式-O2 -DNDEBUG,最大32并行;默认Rust后端来自官方phonors0.5.0 wheel |
/public/software/phonopy/4.7.2 |
| 2.43.6 | 通用x86_64 CPU;float64/complex128 | 官方sdist源码,GCC/G++13.3.0、CMake3.28.3、nanobind2.9.2、scikit-build-core0.11.6、Ninja1.13.0;C/OpenMP ON、核心-O2、最多32并行;无phonors/MPI/GPU | /public/software/phonopy/2.43.6 |
4.7.2运行环境独立为/public/toolkit/miniconda3/envs/phonopy-4.7.2(Python3.11.16);不复用其他科学软件环境,不需要Intel/NVHPC/MPI模块。没有GPU或标准MPI版,也不需要将P100/V100分开编译。C扩展没有-march=native、AVX512限定或fast-math;NumPy/SciPy官方wheel含动态分派OpenBLAS,不链接公共MKL。NumPy wheel记录OpenBLAS0.3.30/ILP64,SciPy wheel记录0.3.29.dev/LP64,二者是各自wheel内的库。
4.7.2运行依赖如下;旧版使用后文独立依赖表。
| 运行依赖 | 固定版本 | 来源与作用 |
|---|---|---|
| Python | 3.11.16 | TUNA conda-forge独立环境 |
| NumPy / SciPy | 2.3.5 / 1.16.3 | 官方wheel,线性代数与数值处理 |
| phonors | 0.5.0 | 官方abi3 manylinux2014 wheel;未在集群源码构建Rust库 |
| spglib / symfc | 2.7.0 / 1.7.3 | Python对称性与力常数工具;与其他程序静态C库分开 |
| h5py / Matplotlib | 3.16.0 / 3.11.2 | HDF5与非交互绘图 |
| PyYAML / seekpath | 6.0.3 / 2.2.2 | YAML与自动高对称路径 |
| cp2k-input-tools / Pint | 0.9.1固定上游提交 / 0.24.4 | CP2K输入解析;上游提交393e87bb0bb9e055681ebd0fc78c0ab8d102f1c7,本地来源标签0.9.1-fix20260303,不是新正式发布版本 |
4.7.2中,CP2K正式0.9.1的Pint<0.24约束会使旧Pint访问NumPy2已移除的接口。本环境采用已确认的固定上游提交(允许Pint<0.25),无本地解析或科学算法补丁;隔离构建锁Poetry1.8.5/core1.9.1,未安装进公共运行环境。保留C/OpenMP、HDF5、绘图、QHA、NAC及内置DFT接口,未另外部署pypolymlp、ALM、Phono3py、CuPy或TF/PT/JAX。
构建采用CC=/usr/bin/gcc CXX=/usr/bin/g++ CMAKE_BUILD_PARALLEL_LEVEL=32;pip命令均显式使用-i https://pypi.tuna.tsinghua.edu.cn/simple。主程序使用pip wheel --no-deps --no-build-isolation -Ccmake.define.PHONOPY_USE_OMP=ON及显式C/C++ Release参数,然后安装生成wheel。完整命令、sdist与wheel哈希、固定CP2K提交、构建约束、Conda explicit和pip freeze保留在管理员维护记录;安装前缀有build-info.json与wheels,不把发行wheel的编译器误写成集群GCC版本。
加载及4.x命令变化#
module load phonopy/4.7.2
python -c 'import phonopy; print(phonopy.__version__)'
phonopy-init --help
phonopy --help
本版没有phonopy --version参数,查版本用上面的Python命令。4.x用phonopy-init生成位移和读取受力,用phonopy读取YAML做声子计算。旧phonopy -d/-f命令不能直接照搬。原胞默认自动寻找;存在合适Born数据时NAC自动启用,需要复现旧工作流时应显式检查原胞、NAC、超胞和求解器设置。版本迁移不保证旧算例逐位相同。
VASP流程示意(disp-*为用户自己安排的DFT计算目录,受力文件必须与本次位移一一对应):
phonopy-init -c POSCAR-unitcell -d --dim 2 2 2 --pa auto
# 将生成的位移结构分别交给现有VASP模板计算;确认每次SCF收敛
phonopy-init -f disp-*/vasprun.xml
phonopy --mesh 20 20 20 -t
phonopy --band '0 0 0 0.5 0 0' -p -s
--dim和mesh只作命令示例,应由用户对体系收敛;生成位移后不能混入旧算例受力。QE/ABACUS/CP2K用phonopy-init --qe/--abacus/--cp2k的对应接口和格式;程序只解析结果,不自动提交DFT。
公共示例在$PHONOPY_ROOT/share/examples(Si、NaCl-QE、NaCl-CP2K、Si-QHA、Al-ABACUS)。可复制到个人工作目录后运行。示例README可能保留旧版命令,4.7.2按本节的phonopy-init用法迁移。上游老CP2K示例的单位标签Angstrom会被4.x严格检查拒绝,交付副本仅统一为angstrom,不改数值;原YAML保存为phonopy_disp.yaml.upstream。新计算应直接生成当前版本YAML。
运行资源与提交#
login01适合小规模准备、检查及绘图,模块在相关线程变量未设置时默认1线程;已有变量不会被模块强行重置。若先前加载过其他环境,可显式将RAYON_NUM_THREADS、OMP_NUM_THREADS、OPENBLAS_NUM_THREADS、MKL_NUM_THREADS设为1。大网格、较大超胞和大量热力学计算使用8173m模板:1进程×56CPU,RAYON_NUM_THREADS=56控制Rust,OMP_NUM_THREADS=56控制C,内层OpenBLAS/MKL为1,避免线程嵌套。不通过mpirun -np 56启动56份相同计算,不申请GPU,也不以少于56总核申请8173m。
| 用户类型 | Slurm模板 |
|---|---|
| 核时 | /public/slurm_scripts/hs_user/phonopy/4.7.2/8173m/sub_phonopy_4.7.2_8173m.sh |
| 套餐 | /public/slurm_scripts/tc_user/phonopy/4.7.2/8173m/sub_phonopy_4.7.2_8173m.sh |
yskit → 复制脚本 → 用户类型 → phonopy → 4.7.2 → 8173m;模板按当前目录YAML运行phonopy --mesh 20 20 20 -t,先在本地副本改mesh/分析参数,再sbatch。线程数跟随SLURM_CPUS_PER_TASK,不增加MPI进程。56线程资源配置不保证小算例加速,扩展性能需按实际网格评估。
接入ShengBTE/FourPhonon及验收范围#
输出二阶力常数时需要完整Nsuper×Nsuper×3×3矩阵,并核对超胞、原子序、原胞映射及单位;compact格式不能直接冒充完整FC2。VASP为eV/Ų,QE为Ry/bohr²,ABACUS为eV/(Å·bohr),CP2K为hartree/(Å·bohr),不能只重命名文件直接用于要求eV/Ų的求解器。建议采用计算器对应的转换并检查平移和声学和则,先做小例子复核。
4.7.2安装包pip check和原生库链接通过;官方针对性回归229/229通过,覆盖VASP/QE/ABACUS接口、mesh/qpoints、热力学、Rust/C动力学矩阵及QHA(非整个上游测试库)。manage01和login01普通用户Si/NaCl两后端、完整力常数、9³mesh、HDF5、受力解析和热力学通过;VASP能带/DOS PDF与Si QHA通过。跨主机单线程结果在容差内一致。Rust/C频率最大差Si约4.03e-7THz、NaCl约3.48e-9THz,验收频率绝对容差1e-5THz。接口检查使用上游已保存受力,没有重跑DFT,不构成新科学体系性能评测。
8173m目标Slurm作业892完成;56线程Rust/C、Si/NaCl声子与热力学、HDF5检查通过,与manage01/login01单线程结果在记录容差内一致。4.7.2安装与目标验收已完成。
旧版2.43.6:独立环境、构建及用法#
旧版用于兼容原2.43系列命令。module load phonopy/2.43.6显式选择旧版;module load phonopy默认仍加载4.7.2,两个模块同family,可以module swap phonopy/4.7.2 phonopy/2.43.6切换。不要把旧版site-packages放入新版PYTHONPATH。
| 依赖/构建项 | 2.43.6实际配置 |
|---|---|
| 独立环境 | phonopy-2.43.6,/public/toolkit/miniconda3/envs/phonopy-2.43.6 |
| Python / NumPy / SciPy | 3.11.16 / 1.26.4 / 1.13.1 |
| spglib / symfc | 2.6.0 / 1.5.4;2.7拆分内部spglib.spglib模块,与2.43.6导入不兼容,因此按用户确认固定2.6.0 |
| h5py / Matplotlib | 3.16.0 / 3.11.2 |
| PyYAML / seekpath | 6.0.3 / 2.2.2 |
| CP2K接口 | 正式cp2k-input-tools0.9.1、Pint0.23;NumPy1.26兼容,不使用新版环境的开发提交 |
| 编译器与构建工具 | GCC/G++13.3.0、CMake3.28.3、nanobind2.9.2、scikit-build-core0.11.6、Ninja1.13.0;官方sdist经pip源码wheel构建,C/OpenMP ON、核心C计算-O2,最多32并行;绑定层保留上游尺寸优化选项 |
| 数值库 | 官方NumPy wheel内OpenBLAS0.3.23.dev/ILP64;SciPy wheel内OpenBLAS0.3.27/LP64,均动态架构分派;不链接公共MKL |
| 平台/功能 | 通用x86_64 CPU、float64/complex128;HDF5、绘图、QHA、NAC、Grüneisen、内置DFT接口;没有phonors、MPI/GPU或额外ML拟合器/ALM/Phono3py/CuPy |
Conda使用TUNA conda-forge,pip构建/安装均显式-i https://pypi.tuna.tsinghua.edu.cn/simple。源码sdist哈希3c8f3cc2366e72d88ba806c709875974f88fe938cac2a6b3a4f02353443111b4,嵌入提交g7b010eb87;无本地科学源码补丁。构建/来源锁、wheel、Conda explicit与pip freeze保留在管理员维护记录和程序前缀的manifests。NumPy/SciPy预编译wheel内的编译器信息与集群GCC源码构建记录分别保存。
module load phonopy/2.43.6
python -c 'import phonopy; print(phonopy.__version__)'
phonopy -c POSCAR-unitcell -d --dim 2 2 2 --pa auto
# 用现有VASP模板计算对应位移结构,检查SCF收敛
phonopy -f disp-*/vasprun.xml
phonopy-load --mesh 20 20 20 -t
phonopy-load --writefc --full-fc
phonopy-load --band '0 0 0 0.5 0 0' -p -s
旧版使用phonopy -d/-f,YAML后处理用phonopy-load,没有新版phonopy-init。无phonopy --version参数,版本用Python查询。完整FC2导出已验证为16×16×3×3;给ShengBTE/FourPhonon时仍需核对原子序/晶胞映射和计算器单位。示例超胞与mesh需按体系收敛。固定版本仍不能保证与旧集群不同依赖环境逐位复现;涉及--fz/--save-params的能量保存流程,2.43.6未包含后续2.47修复,应评估新版流程。
旧示例在$PHONOPY_ROOT/share/examples。CP2K老NaCl YAML保存了常规晶胞为原胞,必须按其原band.conf的PRIMITIVE_AXIS=AUTO用phonopy-load --cp2k --pa auto ...后处理。旧ABACUS YAML带零磁矩,auto原胞会被旧版拒绝,默认symfc还会因重复磁操作报索引错误;已验证的是上游band.conf明确FCC原胞加传统phonopy --abacus -c STRU --dim 2 2 2 --pa ...受力路径(内置traditional求解器)。该旧YAML/symfc组合仍有已知限制,未改科学代码或删磁矩字段。新计算须保存一致的原胞/受力设置。
login01小型准备/绘图默认单线程;大计算用8173m 1task×56CPU,OMP_NUM_THREADS=SLURM_CPUS_PER_TASK,OpenBLAS/MKL内层1。旧版不使用RAYON,不加MPI或GPU,不以少于总56核申请8173m。公共脚本按已有YAML运行phonopy-load --mesh 20 20 20 -t,保留用户YAML的原胞设置,不强行加auto。
| 用户类型 | 旧版模板 |
|---|---|
| 核时 | /public/slurm_scripts/hs_user/phonopy/2.43.6/8173m/sub_phonopy_2.43.6_8173m.sh |
| 套餐 | /public/slurm_scripts/tc_user/phonopy/2.43.6/8173m/sub_phonopy_2.43.6_8173m.sh |
yskit → 复制脚本 → 用户类型 → phonopy → 2.43.6 → 8173m。先修改本地副本的mesh/分析参数再提交;56线程配置不保证小体系加速。
真实环境的53/53官方针对性回归通过,覆盖VASP/QE/ABACUS/symfc接口、mesh/qpoints、热力学、动力学矩阵、Grüneisen、QHA/电子自由能(非整个上游测试库)。manage01及login01普通用户各20项Si/NaCl、完整FC2/ASR/NAC/HDF5、四DFT接口旧命令/存档受力、热力学、能带/DOS PDF、FC2导出及QHA通过;单线程跨主机参考数组完全一致,默认4.7.2和两版swap通过。没有重跑DFT,不构成性能结论。
Phonopy2.43.6的8173m目标作业893完成;56线程C/OpenMP、Si/NaCl声子/热力学、NAC与HDF5通过,与manage01/login01单线程参考数值在记录容差内一致。旧版安装交付与目标验收完成,默认版本仍4.7.2。
旧版构建/验收:STATUS、validation-summary.json、build-info.json与target-progress.json。旧依赖失败和临时探针日志作为历史保留,当前正式检查使用真实env中的spglib2.6.0。
5.20 Phonopy-Spectroscopy#
Phonopy-Spectroscopy从已有Phonopy/VASP结果生成IR和远离共振近似下的Raman光谱,包括偏振、不可约表示峰表、模拟谱线展宽及绘图。它是独立工具,不需要重新编译VASP或改变既有Phonopy默认版本。
| 源码标识 | 平台/安装方式 | 程序路径 | module |
|---|---|---|---|
2024.03.08-g316fbf4 |
通用x86_64 CPU,原版Python源码部署 | /public/software/phonopy-spectroscopy/2024.03.08-g316fbf4 |
phonopy-spectroscopy/2024.03.08-g316fbf4,默认 |
上游没有版本发布;标识表示固定提交316fbf4(2024-03-08),不是虚构的官方版本号。源码298个文件对Git blob SHA核验,lib/scripts原样部署,固定解释器wrapper提供入口,未作本地科学补丁。本项目无C/Fortran编译或MPI/GPU后端,主要数组为float64,没有软件级单双精度构建开关。
依赖与编译环境。 独立Conda名phonopy-spectroscopy、前缀/public/toolkit/miniconda3/envs/phonopy-spectroscopy。Python3.11.16为Conda预编译解释器;Phonopy2.43.6复用已有GCC/G++13.3、通用-O2、C/OpenMP源码wheel,不再编译,也不需要加载Intel/NVHPC/MPI。NumPy1.26.4、SciPy1.13.1为含OpenBLAS的官方wheel,spglib2.6.0、symfc1.5.4、h5py3.16.0、Matplotlib3.11.2、PyYAML6.0.3固定。pip/Conda采用清华镜像,源码下载按需代理。既有Phonopy两个环境及默认4.7.2保持原样。
module load phonopy-spectroscopy
phonopy-ir -h
phonopy-raman -h
xyz2poscar -h
python -c 'import spectroscopy, phonopy; print(spectroscopy.__file__, phonopy.__version__)'
小型准备/后处理/绘图在login01执行,未设置的OMP/BLAS线程默认1,已有线程设置保留,module卸载恢复;绘图默认Agg,不需X11。没有专用Slurm/yskit类别。实际DFT继续用既有VASP脚本,大规模Phonopy继续其CPU模板,8173m总56核;不使用mpirun重复启动同一后处理。默认绘图字体Times New Roman缺失时会回退本机字体并可能打印findfont信息,已验收PNG可正常生成。
输入及主要流程。 IR需要包含Gamma点频率、本征向量/原胞信息的mesh.yaml(或mesh.hdf5+phonopy.yaml)和相匹配的BORN。Raman还需要正常模式位移结构的介电张量OUTCAR,单独POSCAR不足以得到光谱。生产计算必须核对原胞、原子/模态顺序、Born电荷、位移幅度、单位及线宽;下列命令仅在已有匹配输入的用户目录运行:
phonopy-ir --linewidth 16.5 --spectrum-range "500 4000"
phonopy-raman -d
# 用既有VASP脚本计算对应位移结构的介电响应,文件排序与生成数据一致
phonopy-raman -r OUTCAR.*
phonopy-raman -p
phonopy-raman -p --surface "1 0 0" --theta "0 45 90"
phonopy-raman -p --surface "1 0 0" --data-format csv
这里线宽/频率单位默认cm⁻¹,晶面和角度只是示例,不能当成任意材料的固定参数。脚本自动尝试读取irreps.yaml;旧教程的--ir-reps已不是当前参数,指定文件用--irreps-yaml。旧Raman.yaml若只有cell_volume无lattice_vectors,偏振流程需重新执行-d/-r;已有匹配DFT结果可复用。--linewidth-hdf5 <文件> --linewidth-temperature 300通过h5py读取已有Phono3py线宽,不要求本环境安装Phono3py;计算新线宽属于另一软件流程。本项目不提供一般共振Raman。
验收与示例。 manage01和login01普通用户完成8组数值/功能验收:苯胺IR、石英IR/不可约表示/300K线宽、Raman张量、40份官方OUTCAR重建、指定角度及145角度偏振、YAML/HDF5等价和XYZ几何;module默认/显式加载与卸载恢复通过。苯胺存储峰表有三个近零频值与自带mesh不一致,已按实际输入核对全部42频率、其余39频率及全部强度仍与存储参考对照,原容差未改,科学源码未改,失败证据保留。
完整可复制的官方例子流程、生成文件说明及限制见公共README。例子位于$PHONOPY_SPECTROSCOPY_ROOT/example,在用户自己的可写目录复制后运行,不写公共example。安装记录见管理员维护记录及source-lock/build-info/validation-summary。
5.21 TDEP#
TDEP(Temperature Dependent Effective Potentials)从给定温度的构型、能量和力拟合有效力常数,计算温度相关声子、非谐自由能、谱线和晶格热导。现有 VASP、QE、LAMMPS 可产生所需数据,不需要为接入 TDEP 重编这些程序。它与 Phonopy/ShengBTE/FourPhonon 的理论和输入流程不同,力常数转换须检查约定。
| 正式版 | 平台 | 程序路径 | module |
|---|---|---|---|
| 25.03 | 8173m CPU/MPI | /public/software/tdep/25.03/8173m |
tdep/25.03-8173m,tdep 当前默认 |
编译方法、编译器与依赖#
固定官方 tag25.03,真实 Git 提交 d38f435d75f33e0e86629ce7b7059ce95fbc06c5,469个Git blob核对。manage01 用 important_settings + build_things.sh + GNU Make 编译,最多32并行任务;25.03没有后续开发分支的Meson构建。保持原科学源码,无本地补丁。CLI --version 显示上游内部版本 1.2,部署的正式发布版本以tag25.03和提交哈希为准。
| 组件 | 编译环境/配置 |
|---|---|
| Fortran/C | oneAPI2024.2,ifx/icx2024.2.1,mpiifx/mpiicx |
| MPI | IntelMPI2021.13,同一MPI家族 |
| CPU 优化 | -O3 -xCORE-AVX512 -fp-model precise,预处理/PIC;上游敏感单元O0 |
| BLAS/LAPACK | MKL2024.2,LP64/sequential,不另装ScaLAPACK |
| FFTW | 私有3.3.11,icx/ifx源码,双精度AVX2/AVX512,共享库;无FFTWMPI/线程接口 |
| HDF5 | 私有1.14.6,CMake/GNU Make,mpiicx/mpiifx源码,Fortran/parallel/共享库 |
| 精度/并行 | 上游c_double双精度、CPU MPI;没有single/mixed开关或正式GPU构建,没有启用有效OpenMP并行区域 |
私有依赖为 /public/software/tdep/deps/25.03/8173m/{fftw-3.3.11,hdf5-1.14.6},不链接QE私有HDF5或HPC-X/OpenMPI。独立Conda /public/toolkit/miniconda3/envs/tdep-25.03 用于验证和后处理:Python3.11.16、NumPy1.26.4、SciPy1.13.1、pandas2.2.3、xarray2024.11.0、h5py3.16.0、h5netcdf1.4.1、netCDF4 1.7.4、pytest8.3.5、Matplotlib3.11.2。Python wheel自带HDF5与核心Fortran依赖分开管理;系统gnuplot6.0.0复用。
默认14程序、libolle.so、例子和文档保留;CGAL/phasespace_surface、FHI-aims嵌入库、另一个不再积极维护的tdeptools不安装。13个程序生成原版man手册;dump_dynamical_matrices原版不实现--manpage,其帮助与$TDEP_ROOT/share/doc/program/dump_dynamical_matrices.md可用。
加载、输入与常用功能#
module load tdep/25.03-8173m
extract_forceconstants --help
thermal_conductivity --help
python -c 'import numpy, xarray, h5py; print(numpy.__version__)'
generate_structure/canonical_configuration负责超胞与构型;pack_simulation把已经整理为TDEP格式的数据打包为HDF5;extract_forceconstants拟合二/三/四阶力常数;phonon_dispersion_relations计算色散;lineshape和anharmonic_free_energy分别计算谱线与自由能。新旧热导都保留,新流程优先thermal_conductivity,legacy入口为thermal_conductivity_2023。
先准备TDEP格式单胞infile.ucposcar、超胞infile.ssposcar、构型/力/统计/元数据,或对应infile.sim.hdf5。pack_simulation不是任意OUTCAR的自动转换器。具体格式见$TDEP_ROOT/share/doc/files.md;完整工作流、全部入口与官方例子见公共README。截断、温度、极性修正、阶数及q网格由用户根据体系决定。
Slurm、进程与线程#
/public/slurm_scripts/{hs_user,tc_user}/tdep/25.03/8173m/ 提供拟合sub_tdep_extract_25.03_8173m.sh和热导sub_tdep_transport_25.03_8173m.sh,yskit可选择复制。参数由sbatch 脚本 参数...传入。
两模板都是单节点 56MPI×1CPU,MPI数读取SLURM_NTASKS,OMP/MKL/OpenBLAS单线程,不申请GPU,不设独立err文件。8173m按56核整节点收费,不能改成不足56核;更少MPI/更多OMP不等于此MPI实现的等效配置。各程序/阶段的负载与扩展性不同。轻量准备与绘图在login01运行;计算负载提交8173m。module默认Agg,无显示绘图用Matplotlib或在用户自己的gnuplot脚本中设置文件输出终端。
实测范围与数值复现#
管理节点官方16项数值回归通过,原输入/参考/容差保留;login01普通用户环境、14帮助入口、HDF5/色散/动力学矩阵及绘图通过,module默认/显式加载、线程保留和卸载恢复通过。8173m真实56MPI完成拟合、色散和新旧热导的官方参考检查,作业908原始严格流水线对照失败保留;固定同一份IFC后的补充作业909通过,legacy热导结果与串行参考字节相同。
原串行/56MPI分别重新拟合产生约1e-14~1e-13的二/三阶末位IFC差异(四阶约1e-12),这个小网格算例的legacy热导对角分量差异最大约0.686%;应区分“固定同一份IFC比较MPI”和“各自重新拟合的整个流程”。没有修改源码或放宽容差。新版三/四声子MC随机数初始化显式包含MPI rank,即使seed相同,改MPI数仍会改变采样流;本次固定IFC的新热导差异在原有参考容差内。不是生产网格收敛或性能基准。
原始失败、调查和完整交付见TDEP STATUS、validation-summary.json及validation/controlled-comparison-summary.json。
5.23 phono3py#
phono3py 用于三阶力常数、声子散射及晶格热导率;它与谐波 Phonopy 的公共版本分别管理。
| 版本 | 安装方式与环境 | 前缀 / 模块 |
|---|---|---|
| 4.8.2 | Python3.11.16 独立环境;清华 pip 正式包、phonopy4.8.1、phonors0.6.0、NumPy2.3.5、SciPy1.17.1;官方 Rust 与 C 后端 | /public/software/phono3py/4.8.2;phono3py/4.8.2 |
环境:/public/toolkit/miniconda3/envs/phono3py-4.8.2。此处附带的 phonopy 是内部依赖,不会替换公共 Phonopy4.7.2/2.43.6 环境。本次未额外启用旧 LAPACKE 求解器,不使用 MPI/CUDA。
module load phono3py/4.8.2
phono3py-load --help
小型建模在 login01;热导率任务从 yskit 选择 phono3py/4.8.2/8173m 模板。1进程×56核,Rust RAYON_NUM_THREADS=56、C OMP_NUM_THREADS=56,内层 BLAS1。模板调用 phono3py-load "$@",输入参数按4.8.2帮助选择,不能直接套用旧v3命令。需要用户自己的位移、DFT力和收敛参数。
官方硅数据的9³网格300K热导约107.829 W/(m·K),在上游参考容差内;固定相同谐波本征态时,5³网格C/Rust散射计算一致至约1e-14。不同后端独立生成简并本征态时,粗网格热导不保证逐位相等;原始对照保留在安装记录。这是功能验证,不是生产热导收敛结果。
5.24 AMSET#
AMSET 根据第一性原理能带和材料参数计算载流子散射率、迁移率等输运性质。本部署支持 VASP 基础接口,未开启可选 pawpyseed/all-electron。
| 版本 | 安装方式与核心依赖 | 路径 / 模块 |
|---|---|---|
| 0.5.1 | Python3.11.16,pip正式包;BoltzTraP2 26.3.1由GCC/G++13.3源码构建;NumPy1.26.4、SciPy1.17.1、spglib2.6.0、setuptools80.9.0、sumo2.4.0.post1 | /public/software/amset/0.5.1;amset/0.5.1 |
独立环境:/public/toolkit/miniconda3/envs/amset-0.5.1。AMSET0.5.1仍调用 np.string_、spglib.spglib 和 pkg_resources,因此该环境使用上述兼容约束,不能随意把 NumPy升到2、spglib升到2.7或setuptools升到81及以后。sumo仅为内部依赖,没有独立公共sumo模块。
module load amset/0.5.1
amset run --help
将 vasprun.xml[.gz]、settings.yaml 及所需 wavefunction.h5、形变势等文件准备在工作目录,从 yskit 复制脚本后提交。CPU8173m模板申请56核,amset run --nworkers 56 使用进程池,内层OMP/BLAS为1,不能再用56个MPI进程各启动一份AMSET。用户负责k点、插值密度、掺杂浓度和散射机制的物理选择。官方Si算例以插值因子2、35³网格、300K和电子浓度1.86×10¹⁷ cm⁻³验收,ADP+IMP总迁移率三个对角分量均约680.377 cm²/(V·s),JSON与HDF5均有效。这是缩小参数的功能验收,不是输运参数收敛推荐。
5.26 ALAMODE#
| 版本 | CPU / 编译器 | MPI和数学库 | 前缀 / 模块 |
|---|---|---|---|
| 1.5.0 | 8173m;oneAPI2024.2 icx/icpx;-O2 -xCORE-AVX512 |
Intel MPI、MKL LP64 sequential及FFTW接口;Boost1.83头文件、Eigen3.4.0、spglib2.7.0 | /public/software/alamode/1.5.0/8173m;alamode/1.5.0 |
固定上游 v.1.5.0 源码,CMake编译 alm、anphon 及辅助程序;anphon原默认-O3改为批准的-O2。Boost私有头文件来自清华Ubuntu官方包解包,不修改系统安装;spglib使用同工具链单独构建。保留上游默认关闭的C++ HDF5功能;辅助Python环境含h5py不代表开启C++ HDF5接口。
模块加载oneAPI2024.2,Python辅助环境为 /public/toolkit/miniconda3/envs/alamode-1.5.0。Python脚本和示例在 $ALAMODE_ROOT/tools、$ALAMODE_ROOT/example;主可执行程序在bin。
- 力常数拟合:
alm input.in;对应sub_alm_1.5.0_8173m.sh,1进程×56线程。 - 声子/热导率:
mpirun -np 56 anphon input.in;对应sub_anphon_1.5.0_8173m.sh,56MPI×1线程。
两类脚本都申请完整56核。alm不应被误当MPI程序启动56份。官方Si谐波/三阶力常数、153点声子色散和101个温度点的RTA输出已对照参考,通过56MPI计算。上游验收脚本的ANPHON比较实际使用约10%相对容差。另行量化:色散最大绝对差0.6699 cm^-1,主要分量最大相对差0.49%;热导在10/20K两点不满足更严的1%+0.1绝对容差(最大主要分量差约2.00%),300K为112.2266、参考112.3006 W/(m·K)。56MPI×1线程与1MPI×56线程的色散/热导输出逐数值一致。保留原始数据,不把这一验收写成所有温区1%以内或物理收敛。 此二进制含AVX-512指令,不要直接移到P100/V100宿主CPU上运行。
5.27 hiPhive#
| 版本 | 环境和方式 | 前缀 / 模块 |
|---|---|---|
| 1.5 | Python3.11.16独立环境,清华pip;ASE3.29.0、trainstation1.2、NumPy2.3.5、SciPy1.17.1、numba | /public/software/hiphive/1.5;hiphive/1.5 |
环境:/public/toolkit/miniconda3/envs/hiphive-1.5。hiPhive拟合高阶力常数,和ALAMODE是各自独立的工具,不是ALAMODE的替代命令。使用 module load hiphive/1.5 后执行自己的 Python 拟合脚本;大型拟合从yskit复制1进程×56核模板,OMP/BLAS/Numba线程上限56。线程参数不会把任意Python循环自动并行化。
验收使用Al谐波模型、8个训练构型及独立扰动测试构型,覆盖模型拟合、力常数重建、模型保存和ASE力计算,最大力误差4.44e-16。该算例检验软件链路,不作为真实DFT训练集泛化精度承诺。
6.6 gibbs2#
| 版本 | 运行位置 | 编译环境 | 安装路径 |
|---|---|---|---|
1.0.68(提交 2794c4c) |
login01,通用 CPU 串行 | GNU Fortran 13.3.0、CMake 3.28.3、Release -O3、双精度 |
/public/software/gibbs2/1.0.68/gcc-13.3 |
采用官方固定提交 2794c4c841b86c6d9172e7a52f2f49e58e82b259 源码构建,版本来自源码 VERSION,不是 GitHub release 标签。未修改算法源码;使用内置 MINPACK、PPPACK、SLATEC,动态链接系统 GNU Fortran 运行库,无 MPI、OpenMP、CUDA 或 MKL 依赖。未加入 -march=native 或 AVX-512 选项,不绑定 8173m。按用户要求在 login01 加载模块直接运行,没有公共 Slurm 模板。
module load gibbs2/1.0.68
gibbs2 input.ing > output.outg
程序在当前目录生成状态方程、拟合和绘图数据。请在个人可写目录运行,输入中的 root 决定输出文件名前缀;不同算例使用不同目录或前缀。运行官方 MgO 示例:
module load gibbs2/1.0.68
mkdir -p ~/gibbs2-example
cd ~/gibbs2-example
cp "$GIBBS2_ROOT/share/examples/001_simple/001_io.ing" .
gibbs2 001_io.ing > 001_io.outg
其他示例可能引用 ../dat,应完整复制 $GIBBS2_ROOT/share/examples 并保留目录结构。gnuplot 用于后处理绘图,不是主程序运行依赖。串行程序增加 MPI 进程或 GPU 数不会加速单个计算。
验证范围与限制: 普通用户在 login01 成功加载模块,动态库解析正常;解析 BM3 的 E0=-10 Ha、V0=100 bohr³、B0=147.1051 GPa、B′=4 验证通过;MgO 静态表全部 30 行数值与上游参考一致;外部振动自由能示例正常结束,保留输入数据对应的最大压力警告。官方 CTest 共 70 项,13 项通过、57 项失败,其中 7 个计算运行项均通过。失败涉及输出格式、输出范围及部分数值差异;参考文件较旧,但尚未逐项证明差异均无害,不能认定完整热力学回归验收通过。没有重写参考文件来消除失败。
numdiff 5.9.0 仅用于回归检查,独立安装在 /public/software/gibbs2/deps/numdiff/5.9.0,采用内置算术实现。构建、原始失败日志和补充数值结果保存在 管理员维护记录,本机使用说明见 $GIBBS2_ROOT/README.cluster.md。