Command Palette
Search for a command to run...
CP2K_Benchmark 性能基准测试数据集
*该数据集支持在线使用,点击此处跳转。
CP2K Benchmark 数据集是一套专门为高性能计算(HPC)环境设计的性能测试与验证输入集合。该数据集来自开源第一性原理模拟软件 CP2K,用于评估在不同硬件平台、并行策略(MPI/OpenMP)和编译优化设置下,量子化学与分子动力学计算的性能表现。
与科学实验数据不同,本数据集主要用于高性能计算性能评估(运行速度、并行效率、扩展性等),由 CP2K 官方团队维护,数据与输入文件位于源代码的 benchmarks/ 目录中。
相关论文成果为「CP2K: atomistic simulations of condensed matter systems」,由瑞士苏黎世联邦理工学院联合苏黎世大学、巴塞尔大学等机构于 2013 年发布。
数据集结构
数据集位于 CP2K 源码仓库的 benchmarks/ 目录下,包含多个子目录与输入文件:
benchmarks/
├── Fayalite-FIST/ # FIST 模块基准,Fayalite 体系
├── QS/ # Quickstep 模块基准(DFT/MD)
├── QS_DM_LS/ # 线性标度 DFT 基准
├── QS_HFX/ # 混合泛函 HFX 基准
├── QS_diag/ # 对角化算法基准
├── QS_mp2_rpa/ # MP2 / RPA 高精度基准
├── QS_ot_ls/ # 轨道变换线性标度 DFT 基准
├── QS_pao_ml_tio2/ # PAO / ML 势 TiO₂ 基准
├── QS_rubri/ # Rubredoxin 蛋白质基准
├── QS_single_node/ # 单节点 Quickstep 基准
├── QS_stmv/ # STMV 病毒体系基准
├── README.md # 各基准说明文档
每个子目录中都包含:
- 体系结构文件(如 .xyz 、.psf 、.pdb)
- CP2K 输入脚本(.inp)
- 参考能量结果与输出模板
- 运行与性能记录脚本
数据集内容
该数据集包含多个标准化的基准问题,每个问题代表一种典型的科学计算场景,涵盖从经典分子动力学到从头算电子结构的不同计算类型。
- H₂O-64
- 类型:DFT + 分子动力学
- 体系:64 个水分子(192 原子 / 512 电子)
- 用途:测试标准量子化学模拟在中等体系下的性能与扩展性。
- Fayalite-FIST
- 类型: 经典分子动力学(FIST 模块)
- 体系:Fayalite 晶体(Fe₂SiO₄ 超胞,约 28,000 原子)
- 用途:评估经典力场计算及长程电场求和算法在大体系下的性能。
- LiH-HFX
- 类型: Hybrid DFT(HFX 单点计算)
- 体系:LiH 晶体(216 原子 / 432 电子)
- 用途:测试混合交换泛函在多线程并行下的负载与通信效率。
- H₂O-DFT-LS
- 类型: Linear Scaling DFT
- 体系: 2048 个水分子(6144 原子)
- 用途: 评估线性标度算法在大规模并行下的扩展性与内存需求。
- H₂O-64-RI-MP2
- 类型:MP2 方法 + RI 近似
- 体系:与 H₂O-64 相同
- 用途:测试高阶从头算方法在 HPC 上的性能与计算开销。
运行基准测试
在运行部分基准测试前,可能需要先完成预处理步骤,用于生成所需的输入文件(例如波函数文件等)。
这些准备工作会在对应基准测试子目录下的 README.md 文件中详细说明,建议在开始测试前先阅读相关说明。
数据集中的基准测试通常采用 混合并行(Hybrid Parallel)的运行方式,即同时使用 MPI 与 OpenMP 进行并行计算。以下示例展示了如何为每个 MPI 进程分配 2 个线程来执行基准测试:
export OMP_NUM_THREADS=2
parallel_launcher launcher_options path_to_cp2k.psmp -i inputfile.inp -o logfile.log
其中:
- parallel_launcher 为 mpirun 、 mpiexec,或其他变体,例如在 Cray 系统上的 aprun,或使用 Slurm 作业调度时的 srun 。
- launcher_options 指定并行运行的节点数、 MPI 进程数、每节点任务数以及每任务线程数(应等于 OMP_NUM_THREADS 的值)。若并行运行配置已由作业环境自动设置,则无需手动指定。
获取基准测试结果
在运行完基准测试后,用户可以通过输出日志文件中的内部计时信息来获取 CP2K 的实际运行时间(walltime)。
数据集提供的所有基准测试都会在日志文件中记录这些计时信息,方便用户对比不同硬件或并行配置的性能表现。
获取方法示例如下:
grep "CP2K " *.log
此外,日志文件末尾还包含若干性能统计信息:
- DBCSR STATISTICS:显示 DBCSR 模块的计算与通信性能统计。前几行包括不同小矩阵块大小对应的浮点运算数(FLOPs),以及这些计算在 BLAS 、 SMM(小矩阵乘法器)与 GPU (ACC) 上的分布比例。
- DBCSR MESSAGE PASSING PERFORMANCE:显示 DBCSR 模块中的 MPI 调用性能统计。
- MESSAGE PASSING PERFORMANCE:显示 CP2K 其他部分的 MPI 通信性能统计。
- T I M I N G:列出各函数的调用时间与调用次数。
绘图
该项目还提供了用于生成扩展性(scaling)图表的 Python 脚本,用于可视化该数据集,可在以下目录中找到:
cp2k/tools/benchmark_plots/