<div dir="ltr">Hi all<br><br>Lately, I&#39;ve been working on this article which covers the design principles that guide the development of the PETSc library and also the main functionalities it offers for the solution of PDEs. One of the things I&#39;ve pointed out are the profiling capabilities that PETSc includes.<br>
<br>I need some help to properly interpret the output from the &#39;-log_summary&#39; command line option, especially its &quot;phase summaries section&quot;. I&#39;ve read the documentation a few times but I still have difficulties in grasping the meaning of the percentages of the statistics (T, R, L and M). For instance, the following line<br>
<br>------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>Phase&nbsp;&nbsp; Count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Time (sec)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Flops/sec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --- Global ---&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --- Stage ---&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Total<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Max&nbsp;&nbsp;&nbsp; Ratio&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Max&nbsp;&nbsp;&nbsp; Ratio&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mess&nbsp;&nbsp;&nbsp;&nbsp; Avg len&nbsp;&nbsp;&nbsp; Reduct&nbsp;&nbsp; %T %F %M %L %R %T %F %M %L %R Mflop/s<br>-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
(...)<br><br>--- Event Stage 5: KSPSolve 1<br>MatMult&nbsp;&nbsp; 56&nbsp;&nbsp; 1.199e+00 1.1&nbsp;&nbsp;&nbsp;&nbsp; 5.3e+07 1.0&nbsp;&nbsp;&nbsp;&nbsp; 1.1e+03 4.2e+03 0.0e+00&nbsp; 5&nbsp;&nbsp; 28&nbsp;&nbsp;&nbsp; 99&nbsp;&nbsp; 23&nbsp; 0&nbsp;&nbsp; 30&nbsp;&nbsp; 28&nbsp;&nbsp; 99&nbsp;&nbsp; 99&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 201<br><br>(...)<br><br><br>indicates that the &#39;MatMult&#39; routine was called 56 times, a total of 1.1e+03 messages were sent, with an average length of 4.2e+03 bytes, and there were no global reductions, right?<br>
<br>Now, what about the &quot;--- Global ---&quot; and &quot;--- Stage ---&quot; columns? What do those percentages really say? Is it possible to estimate how much time the overall program execution spent performing floating point operations and inter-process communication by looking exclusively at the output?<br>
<br>Thanks in advance,<br><br>Rafael<br><br><br><br><br></div>