跳转至

生产资源与实测耗时

python3 reproduce.py 使用论文参数完整运行 22 点 BAFQMC/参考计算, 然后生成处理后数据和图像。主图包含 8 个粒子数守恒 U 点和 7 个配对 Delta 点; 补充材料新增 7 个 U1 点。默认使用 1 个 MPI 进程、1 个数值库线程,顺序计算。 请在近期桌面端预留 12–24 小时、16 GiB 内存(至少 8 GiB 可用)以及 8 GiB 可用磁盘。 该时间范围由以下实测数据汇总得出;完整的一次性运行尚未计时。 处理器或文件系统较慢时可能需要更长时间。

使用 python3 reproduce.py --plan 显示预算而不启动任务。 正式运行前也会打印相同的估计。--threads N 可更改数值库线程数; 由于各阶段的扩展性不同,单线程的时间范围不应直接除以 N。 使用 --scope main--scope supplement 选择对应的图, 再加 --model 限制求解器。完整计算预算包含上述全部三个扫描。

实测数据

校准测量使用 AMD Ryzen 5 9600X、Linux/WSL2、Intel Fortran 2025.2.1/MKL, 1 个 MPI 进程/线程。Python ED 使用 QuSpin 1.0.1、NumPy 2.4.4、 SciPy 1.17.1 和 Numba 0.65.1。

计算内容 耗时 峰值常驻内存
配对 BAFQMC,Delta=0.2,原始 beta=4 和 Delta tau=0.01,500 次预热,1000 个 bin 46.38 秒 65 MiB
配对 ED,Delta=0.2,nmax=3,ncut=4,完整 7297 维基组的热迹 40.40 秒 3.01 GiB
主图粒子数守恒 BAFQMC,U=0.25(输入 U2),beta=4,原始预热,1000 个 bin 5.47 秒 61 MiB
粒子数守恒 BAFQMC,U1=-0.6,beta=1,原始预热,1000 个 bin 2.29 秒 61 MiB
原始 7 个配对 100000-bin 生产链 12.20 小时(各算例耗时之和) 未记录
历史补充吸引密度 ED,6 个已完成壳层 243.5–289.3 秒/点 未记录

将配对 1000-bin 校准乘以 100 得到保守的单点估计约 1.29 小时 (因为也同时放大了预热开销)。7 个点合计约 9 小时。结合历史完整运行数据, 9–13 小时是在类似硬件上配对 BAFQMC 阶段的合理预算。 7 次稠密配对 ED 计算额外增加约 5–10 分钟。 两次粒子数守恒校准给出约 1.3–1.7 小时的 15 个 BAFQMC 点预算。 粒子数守恒 ED 的分块大小各异;主图 U=0.25、七壳层点主导参考阶段。 其历史成功检查点记录在开始后约 67.5 分钟写出,但历史线程数未保留。 粒子数守恒部分(含 ED 阶段)预留约 3–5 小时。 重新计算的配对 ED 点将 4 个参考值精确到 5.3e-18 绝对误差范围内。

粒子数守恒 ED 内存

存档的有相互作用参考值在 4–7 个粒子数壳层后停止。 最大所需动量块在 U=0.25(输入 U1=0,U2=0.25)处: 第 7 壳层维数为 9075。四个 complex128 矩阵占用约 4.91 GiB; 稀疏算符、Python 和数值库工作空间还需要额外内存。 这就是为什么完整计算应至少有 8 GiB 可用,即使 BAFQMC 本身使用的内存远少于此。

自由 U1=U2=0 点使用解析玻色分布重新计算(与论文一致), 不启动不必要的截断多体 ED。 有相互作用点保留原始的收敛策略和粒子数截断。 内存检查在过大的稠密求解之前停止;它们不会悄悄降低粒子数截断。

存储与续跑

BAFQMC 反复追加写入大量小文件。在 WSL 中,请在 Linux 文件系统而非 /mnt/c 上进行这些写入。 生产驱动程序自动创建 Linux 临时暂存空间,并在 progress.json 中记录其路径。 使用 --work-dir /path/on/fast/linux/storage 指定空的暂存目录。 每个已完成的算例/阶段都会复制到所选输出目录中。原始输出不进入 Git。 暂存和复制的输出可以共存,因此磁盘预算包含两者。

每个算例/阶段都有日志、耗时和文件哈希。续跑中断的计算:

python3 reproduce.py --resume --output benchmarks/paper/output/full-YYYYMMDD-HHMMSS

请与原始命令使用相同的 --scope--model--python-ed--threads。 已完成的阶段会被检查并跳过。中断的链在暂存中移至一边并从其原始输入重新开始; 其部分样本不会追加到新链中。--mode dqmc--mode ed--mode analyze 也可以用显式的 --output 分别运行生产阶段。

所有结果复制完成并检查后,可删除 progress.json 中记录的暂存目录。 保留研究所需的最终 runs/、表格、环境记录和日志。