Author: He XingChen
Last Updated: 2026-08-14

性能基准

准确性(合成恢复)

准确性验证

均匀全焦点球覆盖的合成事件:无极性错误时 CNCHASH 10/10 恢复已知机制 (Kagan 旋转角中位数约 8 度,即 dang=5 网格离散化的下限);约 10% 极性翻转时 9/10 保持在 25 度接受角内。这些检查是测试套件的一部分 (tests/test_accuracy.py)。

注意: 走向差异(40-80 度)是正常的——震源机制有两个互相正交的 节面,都能满足极性数据。

历史 notebook 结果(HASH_Tests.ipynb):CNCHASH 合成试验 300/300 成功 求解;HASH v1.2 60/60(直接运行)。

原生后端测量

本地复现:

python benchmarks/benchmark_backends.py --events 1000 --seconds 2

在开发机(x86_64, gfortran)上测量。数值为 30 台站、30 次 MC 试验 (dang=5)。

线程扩展(可移植构建,30 台站)

线程

ms/事件

加速比

并行效率

1

49.5

1.00x

100%

2

33.0

1.50x

75%

4

19.4

2.56x

64%

8

15.5

3.19x

40%

16

14.0

3.53x

22%

原生构建(-DCNCHASH_NATIVE_MARCH=ON,AVX2)约快 2 倍:1 线程约 23 ms/事件,16 线程约 4 ms/事件。

配置对比(可移植构建,ms/事件)

配置

1 线程

4 线程

small(12 台站)

39

25

medium(30 台站)

49

20

large(80 台站)

119

41

dense(dang=2)

49

19

nmc=100

156

63

弱约束事件(台站少、多解)的耗时主要来自 MECH_PROB 聚类,其工作集 行为现已与原始 HASH 一致;并行路径仍有帮助。

与原版 HASH v1.2 对比(同一台机器)

实现

ms/事件

原版 HASH v1.2(1 线程)

~145

CNCHASH 可移植(1 线程)

~49

CNCHASH 可移植(4 线程)

~20

CNCHASH 原生 AVX2(4 线程)

~8

批量模式(medium 配置,可移植构建)

线程

批量 ev/s

标量 ev/s

批量加速比

1

18.6

18.7

1.00x

4

56.9

42.6

1.34x

数值与机器相关。发布性能声明前请在目标硬件上重新运行基准。