\subsubsection{NoiseMiner View} \begin{figure}[!h] \center \includegraphics[width=6.0in]{fig/NoiseMiner1} \caption{NoiseMiner View showing a 5.7 ms noise component that occurred 1425 times during a run. In this case, MPI calls to a faulty MPI implementation took an extra 5.7 ms to return. \label{noiseminer1} } \end{figure} \begin{figure}[!h] \center \includegraphics[width=6.0in]{fig/NoiseMiner2} \caption{NoiseMiner noise component view showing miniature timelines for one of the noise components.\label{noiseminer2} } \end{figure} The NoiseMiner view (see figure \ref{noiseminer1} and \ref{noiseminer2}) displays statistics about abnormally long entry methods. Its purpose is to detect symptoms consistent with \textit{Operating System Interference} or \textit{Compuatational Noise} or \textit{Software Interference}. The abnormally long events are filtered and clustered across multiple dimensions to produce a concise summary. The view displays both the duration of the events as well as the rate at which they occur. The initial dialog box allows a selection of processors and a time range. The user should select a time range that ignores any startup phase where events have chaotic durations. The tool makes only a single pass through the log files using a small bounded amount of memory, so the user should select as large time range as possible. 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. The initial result window shows a list of zero or more noise components. Each noise component is a cluster of events whose durations are abnormally long. The noise duration for each event is computed by comparing the actual duration of the event with an expected duration of the event. Each noise component contains events of different types across one or more processors, but all the events within the noise component have similar noise durations. Clicking on the ``view'' button for a noise component opens a window similar to figure \ref{noiseminer2}. This second window displays up to 36 miniature timelines, each for a different event associated with the noise component. NoiseMiner works by storing histograms of each entry method's duration. The histogram bins contain a window of recent occurrences as well as an average duration and count. After data stream has been parsed into the histogram bins, the histogram bins are clustered to determine the expected entry method duration. The histograms are then normalized by the expected duration so that they represent the abnormally stretched amounts for the entry methods. Then the histogram bins are clustered by duration and across processors. Any clusters that do not contribute much to the overall runtime are dropped.