| 1 |
edhill |
1.2 |
\section{Monitor: Simulation state monitoring toolkit} |
| 2 |
molod |
1.1 |
\label{sec:pkg:monitor} |
| 3 |
|
|
\begin{rawhtml} |
| 4 |
|
|
<!-- CMIREDIR:package_monitor: --> |
| 5 |
|
|
\end{rawhtml} |
| 6 |
|
|
|
| 7 |
edhill |
1.3 |
|
| 8 |
|
|
\subsection{Overview} |
| 9 |
|
|
\label{sec:pkg:monitor:overview} |
| 10 |
|
|
|
| 11 |
|
|
|
| 12 |
|
|
The \texttt{monitor} package is primarily intended as a convenient |
| 13 |
|
|
method for calculating and writing the following statistics: |
| 14 |
|
|
\begin{center} |
| 15 |
|
|
minimum, maximum, mean, and standard deviation |
| 16 |
|
|
\end{center} |
| 17 |
|
|
for spatially distributed fields. By default, \texttt{monitor} output |
| 18 |
|
|
is sent to the ``standard output'' channel where it appears as ASCII |
| 19 |
|
|
text containing a \texttt{\%MON} string such as this example: |
| 20 |
|
|
\begin{verbatim} |
| 21 |
|
|
(PID.TID 0000.0001) %MON time_tsnumber = 3 |
| 22 |
|
|
(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 |
| 23 |
|
|
(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0025466645951E-03 |
| 24 |
|
|
(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0008899950901E-03 |
| 25 |
|
|
(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1037438449350E-14 |
| 26 |
|
|
(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0985228723396E-04 |
| 27 |
|
|
(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.5216706549525E-07 |
| 28 |
|
|
(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.7594045977254E-05 |
| 29 |
|
|
(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8264287531564E-05 |
| 30 |
|
|
(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.1369201945671E-06 |
| 31 |
|
|
(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6868439193567E-05 |
| 32 |
|
|
(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.4315445301916E-08 |
| 33 |
|
|
\end{verbatim} |
| 34 |
|
|
The \texttt{monitor} text can be readily parsed by the |
| 35 |
|
|
\texttt{testreport} script to determine, somewhat crudely but quickly, |
| 36 |
|
|
how similar the output from two experiments are when run on different |
| 37 |
|
|
platforms or before/after code changes. |
| 38 |
|
|
|
| 39 |
|
|
The \texttt{monitor} output can also be useful for quickly diagnosing |
| 40 |
|
|
practical problems such as CFL limitations, model progress (through |
| 41 |
|
|
iteration counts), and behavior within some packages that use it. |
| 42 |
|
|
|
| 43 |
|
|
|
| 44 |
|
|
\subsection{Using Monitor} |
| 45 |
|
|
\label{sec:pkg:monitor:using} |
| 46 |
|
|
|
| 47 |
|
|
As with most packages, \texttt{monitor} can be turned on or off at |
| 48 |
|
|
compile and/or run times using the \texttt{packages.conf} and |
| 49 |
|
|
\texttt{data.pkg} files. |
| 50 |
|
|
|
| 51 |
|
|
The monitor output can be sent to the standard output channel, to an |
| 52 |
|
|
\texttt{mnc}--generated file, or to both simultaneously. For |
| 53 |
|
|
\texttt{mnc} output, the flag: |
| 54 |
|
|
\begin{verbatim} |
| 55 |
|
|
monitor_mnc=.TRUE., |
| 56 |
|
|
\end{verbatim} |
| 57 |
|
|
should be set within the \texttt{data.mnc} file. For output to both |
| 58 |
|
|
ASCII and \texttt{mnc}, the flag |
| 59 |
|
|
\begin{verbatim} |
| 60 |
|
|
outputTypesInclusive=.TRUE., |
| 61 |
|
|
\end{verbatim} |
| 62 |
|
|
should be set within the \texttt{PARM03} section of the main |
| 63 |
|
|
\texttt{data} file. It should be noted that the |
| 64 |
|
|
\texttt{outputTypesInclusive} flag will make \textbf{ALL} kinds of |
| 65 |
|
|
output (that is, everything written by \texttt{mdsio}, \texttt{mnc}, |
| 66 |
|
|
and \texttt{monitor}) simultaneously active so it should be used only |
| 67 |
|
|
with caution--and perhaps only for debugging purposes. |
| 68 |
|
|
|