You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update DocBook entity and reference naming to camelCase. (#55)
Convert all DocBook entity declarations and xref linkend references
to camelCase convention across documentation files.
Signed-off-by: Abdul Basit Ijaz <abdul.b.ijaz@intel.com>
Copy file name to clipboardExpand all lines: doc/src/stat_overview.sgml
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,22 @@
1
1
<para>
2
-
STAT, the Stack Trace Analysis Tool, helps isolate bugs by gathering stack traces from each individual process of a parallel application and merging them into a global, yet compact representation. Each stack trace, as depicted in <xref linkend="merged_traces">, captures the function calling sequence of an individual process. The nodes are labeled with the function names and the directed edges show the function calling sequence from caller to callee. STAT's stack trace merging process forms a call graph prefix tree, which can be seen in <xref linkend="merged_traces">. The prefix tree groups together traces from different processes that have the same calling sequence and labels the edges with the count and set of tasks that exhibited that calling sequence. Nodes in the prefix tree that are visited by the same set of tasks are given the same color, providing the user with a quick means of identifying the various process equivalence classes.
2
+
STAT, the Stack Trace Analysis Tool, helps isolate bugs by gathering stack traces from each individual process of a parallel application and merging them into a global, yet compact representation. Each stack trace, as depicted in <xref linkend="mergedTraces">, captures the function calling sequence of an individual process. The nodes are labeled with the function names and the directed edges show the function calling sequence from caller to callee. STAT's stack trace merging process forms a call graph prefix tree, which can be seen in <xref linkend="mergedTraces">. The prefix tree groups together traces from different processes that have the same calling sequence and labels the edges with the count and set of tasks that exhibited that calling sequence. Nodes in the prefix tree that are visited by the same set of tasks are given the same color, providing the user with a quick means of identifying the various process equivalence classes.
3
3
</para>
4
-
<figure id="merged_traces">
4
+
<figure id="mergedTraces">
5
5
<title>A single stack trace (left) and a STAT merged call prefix tree (right)</title>
6
6
<mediaobject><imageobject>
7
7
<imagedata fileref="figs/trace_and_merge.png">
8
8
</imageobject></mediaobject>
9
9
</figure>
10
10
<para>
11
-
STAT merges stack traces into 2D spatial and 3D spatial-temporal call prefix trees. The 2D spatial call prefix tree (<xref linkend="prefix_tree_2d">) represents a single snapshot of the entire application. The 3D spatial-temporal call prefix tree (<xref linkend="prefix_tree_3d">) takes a series of snapshots from the application over time and is useful for analyzing time-varying behavior.
11
+
STAT merges stack traces into 2D spatial and 3D spatial-temporal call prefix trees. The 2D spatial call prefix tree (<xref linkend="prefixTree2d">) represents a single snapshot of the entire application. The 3D spatial-temporal call prefix tree (<xref linkend="prefixTree3d">) takes a series of snapshots from the application over time and is useful for analyzing time-varying behavior.
@@ -26,9 +26,9 @@ STAT merges stack traces into 2D spatial and 3D spatial-temporal call prefix tre
26
26
Stack traces based on function names only provide a high-level overview of the application's execution. However, for certain bugs this view may be too coarse-grained so STAT is also capable of gathering stack traces with more fine-grained information. In particular, STAT can also record the program counter of each frame or with the appropriate debug information compiled into the application (i.e., with the "-g" compiler flag), STAT can gather the source file and line number of each stack frame. Both of these refinements can further delineate processes and refine the process equivalence classes.
27
27
</para>
28
28
<para>
29
-
In addition, line number information can be fed into a static code analysis engine to derive the logical temporal order of the MPI tasks <xref linkend="to_example">. This analysis traverses from the root of the tree towards the leaves, at each step analyzing the control flow of the source code and sorting sibling nodes by the amount of execution progress made through the code. For straight-line code, this simply means that one task has made more progress if it has executed past the point of another task, i.e., if it has a greater line number. This ordering is partial since two tasks in different branches of an if-else are incomparable. In cases where the program points being compared are within a loop, STAT can extract the loop ordering variable from the application processes and further delineate tasks by execution progress. This analysis is useful for identifying the culprit in a deadlocked or livelocked application, where the problematic task has often either made the least or most progress through the code, leaving the remaining tasks stuck in a barrier or blocked pending a message. Note, this feature is still a prototype.
29
+
In addition, line number information can be fed into a static code analysis engine to derive the logical temporal order of the MPI tasks <xref linkend="toExample">. This analysis traverses from the root of the tree towards the leaves, at each step analyzing the control flow of the source code and sorting sibling nodes by the amount of execution progress made through the code. For straight-line code, this simply means that one task has made more progress if it has executed past the point of another task, i.e., if it has a greater line number. This ordering is partial since two tasks in different branches of an if-else are incomparable. In cases where the program points being compared are within a loop, STAT can extract the loop ordering variable from the application processes and further delineate tasks by execution progress. This analysis is useful for identifying the culprit in a deadlocked or livelocked application, where the problematic task has often either made the least or most progress through the code, leaving the remaining tasks stuck in a barrier or blocked pending a message. Note, this feature is still a prototype.
30
30
</para>
31
-
<figure id="to_example">
31
+
<figure id="toExample">
32
32
<title>STAT's temporal ordering analysis engine indicates that task 1 has made the least progress. In this example, task 1 is stuck in a compute cycle, while the other tasks are blocked in MPI communication, waiting for task 1.</title>
0 commit comments