如何使用 -log_summary 标志测量 PETSc 程序的整体性能?

计算科学 表现 并行计算 宠物
2021-12-04 01:43:34

当我与标志“-log_summary”并行运行 PETSc 示例时,前两个信息表如下所示:

                         Max       Max/Min        Avg      Total 
Time (sec):           2.512e-01      1.00547   2.505e-01
Objects:              5.800e+01      1.00000   5.800e+01
Flops:                3.271e+05      1.00590   3.262e+05  1.305e+06
Flops/sec:            1.309e+06      1.01141   1.302e+06  5.207e+06
Memory:               2.471e+05      1.00599              9.856e+05
MPI Messages:         5.200e+01      2.00000   3.900e+01  1.560e+02
MPI Message Lengths:  1.569e+04      2.00000   3.017e+02  4.706e+04
MPI Reductions:       5.060e+02      1.00000

Summary of Stages:   ----- Time ------  ----- Flops -----  --- Messages ---  -- Message Lengths --  -- Reductions --
                        Avg     %Total     Avg     %Total   counts   %Total     Avg         %Total   counts   %Total 
 0:      Main Stage: 2.3873e-01  95.3%  1.3047e+06 100.0%  1.440e+02  92.3%  2.954e+02       97.9%  4.870e+02  96.2% 
 1:        Assembly: 1.1753e-02   4.7%  0.0000e+00   0.0%  1.200e+01   7.7%  6.308e+00        2.1%  1.800e+01   3.6% 

当我分析并行性能时,我通常认为我应该使用某种“总执行时间”指标。但是,log_summary 似乎给出了几种时间度量。其中哪一个可以用作“总执行时间”?在分析性能时,是否还有其他重要的指标需要注意?

1个回答

PETSc 保留每个 MPI 过程的概要统计信息,然后将它们减少以获得每个 MPI 过程的平均值、最大值和最小值。如果您对作业的总执行时间感兴趣,那将相当于第一列中的第一个条目,但我应该警告您,0.2 秒可能不是一个有趣的分析研究示例。

如果您关心负载平衡,您会查看最大/最小比率和平均值(您的工作似乎相当平衡)。由于 PETSc 库提供轻量级分析、失败计数和 MPI 消息跟踪,因此其他指标可以让您更好地了解代码中的时间花费。