非正式地,在我们的实验室中,我们开发了 2 个指标来比较 CFD 求解器在我们可以访问的机器范围内。一种叫做COMP,代表代码机器性能。这个单一的数字应该代表给定代码在给定机器上的绝对性能。对于给定的运行,它的计算方法是将每个计算/处理核心的单元数乘以执行的迭代次数,然后除以运行时间。在理想情况下,无论使用的核心数量、网格大小或运行持续时间如何,这个数字都应该是恒定的。它直接表示一个核心在一秒钟内可以执行多少个迭代。通过扩展,首字母缩略词 COMP 将用作衡量代码性能的单位。例如,如果给定的运行产生“3.2 k COMPs”,这意味着代码能够处理每核每秒 3200 个单元的一次迭代,或每核每秒处理一个单元的 3200 次迭代,或任何类似的组合。源自 COMP,我们有明显的指标,如速度、加速和效率,它们只是以不同的方式表达原始性能和扩展。
另一个指标旨在比较同一机器上不同方案/代码的效率,它只是查看每单位模拟物理时间所需的 CPU 时间量。当然,这会将许多参数排除在分析之外,例如网格或获得的解决方案的准确性。但是我们努力比较在等效网格/精度上的运行(例如,如果您将 4 阶方案与 2 阶方案进行比较,您可能应该使用一半的点来获得相似的精度)。
您如何看待这些指标?它们对你来说有效吗?您是否知道或使用其他类似指标来对您的 CFD 求解器进行基准测试?
我还应该补充一点,我们通常处理结构化网格上的显式方案,尽管我们现在开始与 DG 代码进行一些比较。对于非结构化网格和/或隐式方案,推理可能不同。