1 |
\section{Monitor: Simulation state monitoring toolkit} |
2 |
\label{sec:pkg:monitor} |
3 |
\begin{rawhtml} |
4 |
<!-- CMIREDIR:package_monitor: --> |
5 |
\end{rawhtml} |
6 |
|
7 |
|
8 |
\subsection{Introduction} |
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 |
|