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