refine failure generator
[charm.git] / doc / projections / View_Outlier.tex
1 \subsubsection{Outlier Analysis}
2 \label{sec::outlier}
3
4 For performance logs generated from large numbers of processors, it is
5 often difficult to view in detail the behavior of poorly behaved
6 processors. This view attempts to present information similar to usage
7 profile but only for processors whose behavior is ``extreme''.
8
9 \begin{figure}[htb]
10 \center
11 \includegraphics[width=4.0in]{fig/outlier_dialog}
12 \caption{Outlier Analysis Selection Dialog}
13 \label{outlier dialog}
14 \end{figure}
15
16 ``Extreme'' processors are identified through the application of
17 heuristics specific to the attribute that analysts wish to study
18 applied to a specific activity type. You can specify the number of
19 ``extreme'' processors are to be picked out by \projections{} by
20 filling the appropriate number in the field ``Outlier Threshold''. The
21 default is to pick 10\% of the total number of processors up to a cap
22 of 20. As an example, an analyst may wish to find ``extreme''
23 processors with respect to the idle time of normal \charmpp{} trace
24 events.
25
26 Figure \ref{outlier dialog} shows the choices available to this
27 tool. Specific to this view are two pull-down menus: {\em Attribute}
28 and {\em Activity}.
29
30 There are four {\em Activity} options:
31 \begin{enumerate}
32 \item The {\em Projections} activity type refer to the entry methods 
33 executed by the \charmpp{} runtime system.
34 \item The {\em User Events} activity type refer to records of events
35 as captured through {\tt traceUserEvent}-type calls described in
36 section \ref{sec::user events}.
37 \item The {\em Functions} activity type refer to the events captured
38 for AMPI functions through the functions described in section
39 \ref{sec::AMPI functions}.
40 %\item The {\em POSE} activity type refers to events captured for POSE
41 %parallel discrete event simulations through the interface described in
42 %section \ref{sec::POSE}.
43 \end{enumerate}
44
45 There are four {\em Attribute} options:
46 \begin{enumerate}
47 \item {\em Execution time by Activity} tells the tool to apply heuristics
48 based on the execution time of each instance of an activity occuring
49 within the specified time range.
50 \item {\em Idle time} tells the tool to apply a simple sort over all
51 processors on the least total idle time recorded. This will work only for
52 the {\em Projections} activity type.
53 \item {\em Msgs sent by Activity} tells the tool to apply heuristics
54 based on the number of messages sent over each instance of an
55 activity occuring within the specified time range. This option is
56 currently not implemented but is expected to work over all activity
57 types.
58 \item {\em Bytes sent by Activity} tells the tool to apply heuristics
59 based on the size (in bytes) of messages sent over each instance of an
60 activity occuring within the specified time range. This option is
61 currently not implemented but is expected to work over all activity
62 types.
63 \end{enumerate}
64
65 \begin{figure}[htb]
66 \center
67 \includegraphics[width=4.0in]{fig/apoa1_512_outlierWithClusters}
68 \caption{Outlier Analysis View}
69 \label{outlier view}
70 \end{figure}
71
72 At the same time, a k-means clustering algorithm is applied to the
73 data to help identify processors with exemplar behavior that is
74 representative of each cluster (or equivalence class) identified by
75 the algorithm. You can control the value of k by filling in the
76 appropriate number in the field ``Number of Clusters''. The default
77 value is 5.
78
79 The result of applying the required heuristics to the appropriate {\em
80 attribute} and {\em activity} types results in a chart similar to
81 figure \ref{outlier view}. This is essentially a usage profile that
82 shows, over the user's selected time range, from left to right:
83
84 \begin{itemize}
85 \item A bar representing the global average of execution time of each
86 activity over all processors.
87 \item A bar representing the average activity profile of all
88 non-outlier (or non-extreme) processors.
89 \item A bar representing the average activity profile of all outlier
90 (or extreme) processors identified by the heuristics.
91 \item One bar representing the activity profile of the representative
92 processor from each cluster of processors identified by the application
93 of the k-means clustering algorithm.
94 \item One bar representing the activity profile of each identified
95 outlier processor, sorted in order of significance (rightmost processor
96 bar is the most significant).
97 \end{itemize}
98
99 The tool helps the user reduce the number of processor bars that must
100 be visually examined in order to identify candidates for more detailed
101 study. To further the cause of this goal, if the analyst has the {\em
102 timeline} view (see section \ref{sec::timeline view}) open, a
103 mouse-click on any of the processor activity profile bars (except for
104 group-averaged bars) will load that processor's detailed timeline
105 (over the time range specified in the timeline view) into the timeline
106 view itself.
107
108 %\begin{figure}[htb]
109 %\center
110 %\includegraphics[width=4.0in]{fig/outlier_dialogAttributes}
111 %\caption{Outlier Analysis Attributes available}
112 %\label{outlier attributes}
113 %\end{figure}
114
115 %\begin{figure}[htb]
116 %\center
117 %\includegraphics[width=4.0in]{fig/outlier_dialogActivities}
118 %\caption{Outlier Analysis Activity Types available}
119 %\label{outlier activities}
120 %\end{figure}
121