7. 加速性能
7.1.基准测试
7.2.测试性能
7.3.通用技巧
以下是提高模拟性能的通用技巧。它们中的大多数只适用于当前性能中的某些模型和某些瓶颈,因此让您生成的计时数据作为指导。要预测这些选项会产生多大的差异,即使不是不可能,也是很难的,因为这是问题大小、所使用的处理器数量和您的机器的函数。识别性能瓶颈并尝试各种选项是无可替代的。
-
rRESPA
-
Two-FFT PPPM
-
Staggered PPPM
-
single vs double PPPM
-
partial charge PPPM
-
verlet/split run style
-
processor command for proc layout and numa layout
-
load-balancing: balance and fix balance
Two-FFT PPPM,也称为分析微分或 ad PPPM,使用 2 个 FFT,而不是默认 ik 微分 PPPM 使用的 4 个 FFT。然而,2-FFT PPPM 还需要稍大的网格尺寸才能达到与 4-FFT PPPM 相同的精度。对于 FFT 成本成为性能瓶颈的问题(通常是在许多处理器上运行的大问题),2-FFT PPPM 可能比 4-FFT PPPM 更快。
Staggered PPPM 使用两种不同的网格执行计算,其中一个网格相对于另一个网格略有移动。这可以减少力混叠误差并提高方法的准确性,但也会使所需的工作量加倍。为了获得较高的相对精度,与常规 PPPM 相比,使用Staggered PPPM可以在每个维度上实现一到一半的网格大小,这可以在 kspace 时间中提供大约 4 倍的加速。然而,对于相对精度较低的情况,使用Staggered PPPM 几乎没有什么好处,并且 kspace 时间可能会慢 2 倍。例如,视紫红质基准测试在单个处理器上运行,不同方法的 kspace 时间与相对精度的结果如下图所示。对于该系统,当使用略大于 1e-5 及以上的相对精度时,Staggered PPPM(使用 ik 微分)变得有用。
注:使用Staggered PPPM 可能无法像力那样提高能量和压力的准确性,因此如果能量和/或压力是感兴趣的量(例如使用恒压器时),则必须小心谨慎。