You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 2, 2025. It is now read-only.
\HPCToolkit{} primarily monitors an application using asynchronous sampling.
475
475
Consequently, the most common option to \hpcrun{} is a list of sample sources that define how samples are generated.
476
-
A sample source takes the form of an event name $e$ and period $p$ and is specified as \texttt{$e$@$p$}, \eg{}, \mytt{PAPI_TOT_CYC@4000001}.
476
+
A sample source takes the form of an event name $e$ and \texttt{howoften}, specified as \texttt{$e$@howoften}. The specifier \texttt{howoften} may
477
+
be a number, indicating a period, \eg{} \mytt{CYCLES@4000001} or it may be \texttt{f} followed by a number, \mytt{CYCLES@f200} indicating a frequency in samples/second.
477
478
For a sample source with event $e$ and period $p$, after every \emph{p} instances of \emph{e}, a sample is generated that causes \hpcrun{} to inspect the and record information about the monitored application.
478
479
479
-
To configure \hpcrun{} with two samples sources, \texttt{$e_1$@$p_1$} and \texttt{$e_2$@$p_2$}, use the following options:
480
+
To configure \hpcrun{} with two samples sources, \texttt{$e_1$@howoften$_1$} and \texttt{$e_2$@howoften$_2$}, use the following options:
@@ -1206,6 +1207,9 @@ \chapter{FAQ and Troubleshooting}
1206
1207
\section{How do I choose \hpcrun{} sampling periods?}
1207
1208
\label{sec:troubleshooting:hpcrun-sample-periods}
1208
1209
1210
+
When using sample sources for hardware counter and software counter events provided by Linux \verb|perf_events|,
1211
+
we recommend that you use frequency-based sampling. The default frequency is 300 samples/second.
1212
+
1209
1213
Statisticians use samples sizes of approximately 3500 to make accurate projections about the voting preferences of millions of people.
1210
1214
In an analogous way, rather than collect unnecessary large amounts of performance information, sampling-based performance measurement collects ``just enough'' representative performance data.
1211
1215
You can control \hpcrun{}'s sampling periods to collect ``just enough'' representative data even for very long executions and, to a lesser degree, for very short executions.
@@ -1214,8 +1218,8 @@ \section{How do I choose \hpcrun{} sampling periods?}
1214
1218
Since unimportant contexts are irrelevant to performance, as long as this condition is met (and as long as samples are not correlated, etc.), \HPCToolkit{}'s performance data should be accurate.
1215
1219
1216
1220
We typically recommend targeting a frequency of hundreds of samples per second.
1217
-
For very short runs, you may need to try thousands of samples per second.
1218
-
For very long runs, tens of samples per second can be quite reasonable.
1221
+
For very short runs, you may need to collect thousands of samples per second to record an adequate number of samples.
1222
+
For long runs, tens of samples per second may suffice for performance diagnosis.
1219
1223
1220
1224
Choosing sampling periods for some events, such as Linux timers, cycles and instructions, is easy given a target sampling frequency.
1221
1225
Choosing sampling periods for other events such as cache misses is harder.
@@ -1250,7 +1254,9 @@ \section{\hpcrun{} incurs high overhead! Why?}
1250
1254
\begin{quote}
1251
1255
\verb|hpcsummary --all <hpctoolkit-measurements>|
1252
1256
\end{quote}
1253
-
Please let us know if there are problems.
1257
+
Note: The \verb|hpcsummary| script is no longer included in the \verb|bin| directory of an \HPCToolkit{} installation;
1258
+
it is a developer script that can be found in the \verb|libexec/hpctoolkit| directory.
1259
+
Let us know if you encounter signficant problems with bad unwinds.
1254
1260
1255
1261
\item You have very long call paths where long is in the hundreds or thousands.
1256
1262
On x86-based architectures, try additionally using \hpcrun{}'s \texttt{RETCNT} event.
@@ -1323,7 +1329,7 @@ \section{\hpcviewer{} writes a long list of Java error messages to the terminal!
1323
1329
\texttt{\$HOME/.hpctoolkit/hpcviewer} \\
1324
1330
and run \hpcviewer{} again.
1325
1331
1326
-
On MacOS, persistent state is currently stored within Mac app. If the Eclipse persistent state gets corrupted, one can’t simply clear the workspace because some initial persistent state is needed for Eclipse to function properly. For MacOS, the thing to try is downloading a fresh copy of hpcviewer and running the freshly downloaded copy.
1332
+
On MacOS, persistent state is currently stored within Mac app. If the Eclipse persistent state gets corrupted, one can't simply clear the workspace because some initial persistent state is needed for Eclipse to function properly. For MacOS, the thing to try is downloading a fresh copy of hpcviewer and running the freshly downloaded copy.
1327
1333
1328
1334
If one of the aforementioned suggestions doesn’t fix the problem, report a bug.
0 commit comments