性能基准测试

Simcenter STAR-CCM+ 在其命令行中提供了一个内置选项以自动运行性能测试:-benchmark 选项。通常,该选项与准备用于基准测试流程的模拟文件一起发出。

基准测试过程测量特定硬件条件下 Simcenter STAR-CCM+ 使用不同内核数时的扩展能力,并指示不同核心数下模拟文件的内存需求。例如,如果对已知硬件使用此过程并将其与要购买的新硬件相比较,那么通过比较两个基准测试的输出就可以准确了解 Simcenter STAR-CCM+ 针对特定用例的性能变化。

基准测试结果会写入 XML 格式的输出文件。此文件包含基准测试采集的所有信息,可用于交流这些数据。最后,除非指定了 -nohtml 标志,否则将使用 XML 编写 HTML 格式的简单报告。默认情况下,将收集所有相关主机的硬件拓扑信息并存储在基准 XML 报告中。这些信息包括 CPU、GPGPU、内存和其他 PCI/IO 设备。通过指定 -notopo 标志可停用这些数据的收集。

要获得有关 -benchmark 标志语法的完整帮助,对 Simcenter STAR-CCM+ 发出以下命令行调用:
starccm+ -benchmarkhelp
示例命令为:
starccm+ [other options] -benchmark "-minnp 3" -np 11 test.sim
基准测试选项的参数应放在双引号内。示例中的选项如下:
  • -minnp: 指定要在第一个循环中使用的最小内核数。对于每个连续循环,内核数将加倍,直到基准测试过程使用的数量大于或等于 -np 指定的数量。在此情况下,为之报告统计信息的核心数为 3、6、11。
串行基准测试

在串行模式下,基准测试过程采集主机的相关信息以及与软件版本有关的相关信息。然后,运行单个计时样本,此样本包含一个用于初始化求解的迭代、多个前置迭代和多个采样迭代。最后一次迭代用于收集有关迭代期间系统内存使用情况的信息。

并行基准测试

默认情况下,基准测试过程会用逐渐增多的工作进程数重复执行基本周期多次,直至达到总指定数量。系统将返回每个增量循环的统计信息。

如果未使用 -nps 选项指定每个样本的工作进程数,则第一个样本使用一个工作进程。后续样本将工作进程数增加为两倍,直到达到或超过最大数量。如果最大工作进程数不是 2 的倍数,则在最大值时再进行一次采样。或者,可以使用 -minnp 指定第一个样本的工作进程数。

通过 -nps 选项,可以为每个采样循环准确指定工作进程数。在这种情况下,并行样本使用逐渐增多的工作进程运行,并按照 -nps 中指定的计数进行排序。

根据要执行的可扩展性研究类型,考虑添加 Simcenter STAR-CCM+ 命令行选项 -processdistribution。例如,为确保在执行从 1 到 N 个节点的可扩展性研究时功能正常,应包含 -processdistribution compact。

注

报告的 SampleElapsedTime 可能与所有示例步的 ElapsedTime 值的总和稍有不同。尽管单个 ElapsedTime 值由 Simcenter STAR-CCM+ 服务器测量,但总 SampleElapsedTime 由客户端测量。SampleElapsedTime 更接近于用户负责运行指定 NumberOfSampleSteps 的时间。

不兼容的选项

目前,有许多选项与 -benchmark 标志不兼容。具体而言,-benchmark 表示正打开特定类型的客户端(基准客户端);与此冲突的任何命令行标志都不能与 -benchmark 同时使用。例如,starccm+ -benchmark -server 会导致错误消息,因为 -server 表示无客户端,-benchmark 表示基准客户端 — 这两个标记冲突。此外,starccm+ -benchmark -batch 也会导致错误消息,因为 -benchmark 表示基准客户端,-batch 表示批处理客户端 — 这两个标记冲突。其他的不一致也会因类似原因而导致类似的错误消息 (starccm+ -benchmark -macro test.java),此处并不一一列举。

检查基准的一致性

可以在命令行上多次指定每个工作进程数,如 -nps 1,1,1,2,2,2。在此情况下,每个工作进程数的运行到运行的统计信息都将记录在生成的基准报告文件中。对于给定的平台和配置,使用相同工作进程数的运行在理想条件下通常应报告相似的时间和内存测量值。这些统计数据有助于量化测试结果的一致性。高度一致的测试结果可以增加对性能基准测试条件的稳定性和适合性的信心;不一致或多变的结果可以提示存在潜在问题或需要进一步调查。