msgQ: some code doc and minor cleanup
[charm.git] / doc / projections / View_NoiseMiner.tex
1
2 \subsubsection{NoiseMiner View}
3
4 \begin{figure}[!h]
5 \center
6 \includegraphics[width=6.0in]{fig/NoiseMiner1}
7 \caption{NoiseMiner View showing a 5.7 ms noise component that
8 occurred 1425 times during a run. In this case, MPI calls to a faulty
9 MPI implementation took an extra 5.7 ms to return. \label{noiseminer1}
10 }
11 \end{figure}
12
13 \begin{figure}[!h]
14 \center
15 \includegraphics[width=6.0in]{fig/NoiseMiner2}
16 \caption{NoiseMiner noise component view showing miniature timelines for 
17 one of the noise components.\label{noiseminer2} }
18 \end{figure}
19
20 The NoiseMiner view (see figure \ref{noiseminer1} and
21 \ref{noiseminer2}) displays statistics about abnormally long entry
22 methods. Its purpose is to detect symptoms consistent with
23 \textit{Operating System Interference} or \textit{Compuatational
24 Noise} or \textit{Software Interference}. The abnormally long events
25 are filtered and clustered across multiple dimensions to produce a
26 concise summary. The view displays both the duration of the events as
27 well as the rate at which they occur. The initial dialog box allows a
28 selection of processors and a time range. The user should select a
29 time range that ignores any startup phase where events have chaotic
30 durations. The tool makes only a single pass through the log files
31 using a small bounded amount of memory, so the user should select as
32 large time range as possible.
33  
34 The tool uses stream mining techniques to produce its results by making only one pass through the input data while using a limited amount of memory. This allows NoiseMiner to be very fast and scalable. 
35
36
37 The initial result window shows a list of zero or more noise
38 components. Each noise component is a cluster of events whose
39 durations are abnormally long. The noise duration for each event is
40 computed by comparing the actual duration of the event with an
41 expected duration of the event. Each noise component contains events
42 of different types across one or more processors, but all the events
43 within the noise component have similar noise durations. 
44
45 Clicking on the ``view'' button for a noise component opens a window similar to
46 figure \ref{noiseminer2}. This second window displays up to 36
47 miniature timelines, each for a different event associated with the
48 noise component.
49
50
51
52 NoiseMiner works by storing histograms of each entry method's
53 duration. The histogram bins contain a window of recent occurrences as
54 well as an average duration and count. After data stream has been
55 parsed into the histogram bins, the histogram bins are clustered to
56 determine the expected entry method duration. The histograms are
57 then normalized by the expected duration so that they represent the
58 abnormally stretched amounts for the entry methods. Then the histogram
59 bins are clustered by duration and across processors. Any clusters
60 that do not contribute much to the overall runtime are
61 dropped.