<commit_before>% -*- Mode: latex; -*-
% $HeadURL: https://outreach.scidac.gov/svn/hpctoolkit/trunk/doc/manual/hpcviewer.tex $
% $Id: hpcviewer.tex 3336 2011-01-03 23:29:25Z tallent $


% ----------------------------------------------------------
% traceviewer
% ----------------------------------------------------------

\newcommand{\traceview}{Trace view}
\newcommand{\depthview}{Depth view}
\newcommand{\miniview}{Mini map view}
\newcommand{\callview}{Call path view}


% ===========================================================================
% ===========================================================================

\section{\hpctraceviewer{} overview}

\begin{figure}[t]
\centering{\includegraphics[width=\textwidth]{fig/hpctraceviewer-callpath.png}}
\caption{Logical view of trace callpath samples on three dimensions: time, process rank and call path depth.}
\label{fig:hpctraceviewer-callpath}
\end{figure}

\HPCToolkit{} provides \hpcviewer{}~\cite{Adhianto-MC-Ta:2010:PSTI-hpcviewer} for performance profile presentation tool, and \hpctraceviewer{}~\cite{Tallent-MC-etal:2011:hpctoolkit-scalable-tracing} for performance presentation tool for interactive examination of performance-trace databases.
Here, we describe \hpctraceviewer{} which interactively presents a large-scale trace without concern for the scale of parallelism it represents.

As shown in Figure~\ref{fig:hpctraceviewer-callpath}, trace callpath comprises samples from three dimensions: process rank (or thread rank if the application is multithreaded), time and callpath depth.
\hpctraceviewer{} visualizes the samples for process and time dimesion (\emph{\traceview}), callpath depth and time dimension (\emph{\depthview}) and a callpath of a specific process and time (\emph{\callview}).
Each view has its own use to pinpoint performance problem which will be described in the next section.

In \hpctraceviewer, each procedure is assigned specific color based on labeled nodes in \hpcviewer. Figure~\ref{fig:hpctraceviewer-callpath} shows that the top level (level 1) in the callpath is assigned the same color: blue, which is the main entry program in all process and all time.
The next depth (level 2), all processes have the same node color, i.e. green, which is another procedure. 
In the following depth (level 3), all processes in the first time step have light yellow node and on the time steps, they have purple. This means that in the same depth and time, not all processes are in the same procedure.
This color assignment is important to visually identify load imbalance in a program.

% ===========================================================================
% ===========================================================================

\section{Launching}

\hpctraceviewer{} can either be launched from a command line (Linux/Unix platform) or by clicking the \hpctraceviewer{} icon (for Windows, Mac OS X and Linux/Unix platform).
The command line syntax is as follows:
\begin{quote}
\begin{verbatim}
  hpctraceviewer [options] [<hpctoolkit-database>]
\end{verbatim}
\end{quote}<commit_msg>make the naming consistent: call path instead of callpath. according to google, they are both valid.<commit_after>% -*- Mode: latex; -*-
% $HeadURL: https://outreach.scidac.gov/svn/hpctoolkit/trunk/doc/manual/hpcviewer.tex $
% $Id: hpcviewer.tex 3336 2011-01-03 23:29:25Z tallent $


% ----------------------------------------------------------
% traceviewer
% ----------------------------------------------------------

\newcommand{\traceview}{Trace view}
\newcommand{\depthview}{Depth view}
\newcommand{\miniview}{Mini map view}
\newcommand{\callview}{Call path view}


% ===========================================================================
% ===========================================================================

\section{\hpctraceviewer{} overview}

\begin{figure}[t]
\centering{\includegraphics[width=\textwidth]{fig/hpctraceviewer-callpath.png}}
\caption{Logical view of trace call path samples on three dimensions: time, process rank and call path depth.}
\label{fig:hpctraceviewer-callpath}
\end{figure}

\HPCToolkit{} provides \hpcviewer{}~\cite{Adhianto-MC-Ta:2010:PSTI-hpcviewer} for performance profile presentation tool, and \hpctraceviewer{}~\cite{Tallent-MC-etal:2011:hpctoolkit-scalable-tracing} for performance presentation tool for interactive examination of performance-trace databases.
Here, we describe \hpctraceviewer{} which interactively presents a large-scale trace without concern for the scale of parallelism it represents.

As shown in Figure~\ref{fig:hpctraceviewer-callpath}, trace call path comprises samples from three dimensions: process rank (or thread rank if the application is multithreaded), time and call path depth.
\hpctraceviewer{} visualizes the samples for process and time dimesion (\emph{\traceview}), call path depth and time dimension (\emph{\depthview}) and a call path of a specific process and time (\emph{\callview}).
Each view has its own use to pinpoint performance problem which will be described in the next section.

In \hpctraceviewer, each procedure is assigned specific color based on labeled nodes in \hpcviewer. Figure~\ref{fig:hpctraceviewer-callpath} shows that the top level (level 1) in the call path is assigned the same color: blue, which is the main entry program in all process and all time.
The next depth (level 2), all processes have the same node color, i.e. green, which is another procedure. 
In the following depth (level 3), all processes in the first time step have light yellow node and on the time steps, they have purple. This means that in the same depth and time, not all processes are in the same procedure.
This color assignment is important to visually identify load imbalance in a program.

% ===========================================================================
% ===========================================================================

\section{Launching}

\hpctraceviewer{} can either be launched from a command line (Linux/Unix platform) or by clicking the \hpctraceviewer{} icon (for Windows, Mac OS X and Linux/Unix platform).
The command line syntax is as follows:
\begin{quote}
\begin{verbatim}
  hpctraceviewer [options] [<hpctoolkit-database>]
\end{verbatim}
\end{quote}
{'fraction_non_alphanumeric': 0.21148036253776434, 'fraction_numerical': 0.009222451900143107, 'mean_word_length': 4.596085409252669, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6933407', 'n_tokens_mistral': 1677, 'n_tokens_neox': 1566, 'n_words': 636}