CP2K专题

CP2K Tree Monte Carlo:并行候选与接受构型

给出完整TMC及能量模型输入,使用4MPI实算核对40个逻辑构型与实际接受轨迹。

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

本系列用鸢算科技集群实际完成的三个CP2K入口,说明传统Monte Carlo、Tree Monte Carlo和温度加速Monte Carlo的输入、提交与结果读取。它们解决的问题和计数方式不同,不能只改RUN_TYPE名字就互换。

下载完整输入、实际输出与绘图工具,保存为example.zip:

python3 -m zipfile -e example.zip .
cd cp2k-special-sampling-examples
bash results.sh
bash read.sh
bash plot.sh

以上只读已经完成的结果,不启动新计算。程序为cp2k/2026.2-8173m,Intel oneAPI 2024.2/ifx、Intel MPI 2021.13、MKL构建。原始方法输入改编自固定CP2K 2026.2官方示例,附GPL许可;三种例子均为小规模操作参考,不据此报告相平衡、扩散时间或收敛自由能。

要重算整套小例子,在新的解压目录提交:

sbatch run.slurm
squeue -u "$USER"
# 完成后
bash read.sh work analysis-new
bash plot.sh analysis-new figures-new work

CPU入口按集群规则申请整节点56核,实际按每个步骤分别用1、4或2个MPI进程,OpenMP为1;这不是56核性能测试。work/已经存在时脚本会保留它,避免覆盖结果。

1. TMC不是普通MD,也不是简单把MC多开几个进程#

Tree Monte Carlo组织候选构型树与并行能量计算。本例使用7个水分子、21原子FIST模型,330 K、40个逻辑构型,4个MPI进程。原生输出显示配置树与独立能量worker,实际写出10帧接受构型。

这个入口需要并行执行;不要用单MPI进程正常退出就判断已完成采样。固定输入中的RND_DETERMINISTIC=42有助于检查流程,但不同进程布局或数值环境的随机接受结果仍需按实际输出读取。

2. 两层输入一起看#

主输入组织TMC,ENERGY_FILE_NAME H2O.inp则指定能量模型:

cat inputs/water-TMC/input.inp
cat inputs/water-TMC/H2O.inp

主输入完整如下:

# single potential calculations on one temperature
# also testing the random number generator
# moving all elements
&GLOBAL
  PRINT_LEVEL LOW
  PROGRAM TMC
  PROJECT H2O_TMC
  RUN_TYPE TMC
  WALLTIME 00:10:25
&END GLOBAL

&MOTION
  &TMC
    ENERGY_FILE_NAME H2O.inp
    ESIMATE_ACC_PROB .TRUE.
    GROUP_CC_SIZE 0
    GROUP_ENERGY_NR 1
    GROUP_ENERGY_SIZE 1
    INFO_OUT_STEP_SIZE 1
    NUM_MC_ELEM 40
    NUM_MV_ELEM_IN_CELL 0
    PRINT_ONLY_ACC .TRUE.
    PRINT_TEST_OUTPUT
    RESTART_OUT 0
    RND_DETERMINISTIC 42
    TEMPERATURE 330
    &MOVE_TYPE ATOM_TRANS
      INIT_ACC_PROB 0.2
      PROB 1
      SIZE 0.1
    &END MOVE_TYPE
    &MOVE_TYPE MOL_TRANS
      SIZE 0.7
    &END MOVE_TYPE
    &MOVE_TYPE MOL_ROT
      SIZE 24
    &END MOVE_TYPE
  &END TMC
&END MOTION

NUM_MC_ELEM=40与GROUP_ENERGY_NR/SIZE分别涉及采样规模和并行工作组,不能把40直接解释成40 fs。分子拓扑、能量输入和移动对象需要匹配。

完整H2O.inp:展开查看FIST模型、坐标和拓扑
&GLOBAL
  PRINT_LEVEL LOW
  PROJECT H2O_TMC
  RUN_TYPE TMC
  WALLTIME 10
  #TRACE
&END GLOBAL

&FORCE_EVAL
  METHOD FIST
  &MM
    &FORCEFIELD
      &BEND
        ATOMS H O H
        K 0.05
        THETA0 1.82422
      &END BEND
      &BOND
        ATOMS O H
        K 0.05
        R0 0.97572
      &END BOND
      &CHARGE
        ATOM O
        CHARGE -0.8476
      &END CHARGE
      &CHARGE
        ATOM H
        CHARGE 0.4238
      &END CHARGE
      &NONBONDED
        &LENNARD-JONES
          ATOMS O O
          EPSILON 78.19580
          RCUT 5.0
          SIGMA 3.1655
        &END LENNARD-JONES
        &LENNARD-JONES
          ATOMS O H
          EPSILON 0.0
          RCUT 5.0
          SIGMA 3.1655
        &END LENNARD-JONES
        &LENNARD-JONES
          ATOMS H H
          EPSILON 0.0
          RCUT 5.0
          SIGMA 3.1655
        &END LENNARD-JONES
      &END NONBONDED
      &SPLINE
        EMAX_SPLINE 1000000.0
      &END SPLINE
    &END FORCEFIELD
    &POISSON
      &EWALD
        ALPHA .40
        EWALD_ACCURACY 1.0E-2
        EWALD_TYPE ewald
        GMAX 11
      &END EWALD
    &END POISSON
  &END MM
  &SUBSYS
    &CELL
      ABC 13.5 13.5 13.5
    &END CELL
    &COORD
      O      11.667599837210      7.964352234664      0.059453614019
      H      10.873359634781      8.005423314626      0.665667823055
      H      11.364979095795      7.770411108906     -0.873716837951
      O       2.314161441602      5.011228167767      2.784706973673
      H       1.663128370368      5.686998340596      3.130381117447
      H       2.659721328394      5.306531429441      1.893985965664
      O      10.262864742466      5.548805003571     11.360725453725
      H      10.424041748648      4.666485986338     11.802918991113
      H       9.436479204754      5.494708086386     10.800225647804
      O       5.937092785694     12.752770338234      7.554822749656
      H       6.459679552548     12.731874699056      8.407152758147
      H       6.560379344025     12.890048310674      6.784973290144
      O       1.052476316752      3.192494253568      0.284763135867
      H       1.009686510209      3.892635795528      0.997483876183
      H       1.385134340137      3.601676794269     -0.564888471374
      O      11.621014134223      7.899470257763      6.835708666826
      H      10.723243819476      8.290315257093      7.038806299646
      H      12.107936378358      8.496446358905      6.198114886544
      O       3.255054397643      5.532098285916     13.500752220167
      H       3.169785700155      4.860242146843     12.764995074351
      H       3.889107504717      6.253294143532     13.221731148935
    &END COORD
    &TOPOLOGY
      CONNECTIVITY MOL_SET
      &MOL_SET
        &MOLECULE
          CONN_FILE_NAME topology_fist_WAT.psf
          NMOL 7
        &END MOLECULE
      &END MOL_SET
    &END TOPOLOGY
  &END SUBSYS
&END FORCE_EVAL

3. 用4个MPI进程运行#

在新的TMC作业目录及已分配的CPU资源中:

module purge
module load cp2k/2026.2-8173m
export OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1
mpirun -np 4 cp2k.psmp -i input.inp -o output.log

也可直接使用本系列根目录的sbatch run.slurm,它会为所有步骤安排相应MPI数。

4. 看配置树、worker和接受构型#

grep 'Configurations used' reference-results/water-TMC/output.log | tail
grep 'do_tmc_worker' reference-results/water-TMC/output.log
head reference-results/water-TMC/tmc_trajectory_T330.00.xyz
cat analysis-read/CP2K-TMC-accepted.csv

真实TMC接受能量与原子端点位移

输出中40个逻辑构型与10帧写出的接受状态是不同计数;被拒绝、尚待确认的候选和实际接受轨迹不能混算。轨迹额外的元数据行由配套读取器处理,不要假定它与所有标准XYZ文件完全相同。

末端接受帧的原生能量与独立FIST单点相差约3.20×10⁻¹¹ Hartree。总脚本会从你自己生成的轨迹制作端点输入,核对自己的结果,不会套用参考坐标。

40个小构型主要演示并行组织,不证明热力学平均值已收敛。更长采样应先检查接受率、目标分布与误差。另一种引入辅助变量的算法见TAMC。

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

查看配图

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

100%查看原图 ↗