570 |
A method to balance the amount of recomputations vs. |
A method to balance the amount of recomputations vs. |
571 |
storage requirements is called {\sf checkpointing} |
storage requirements is called {\sf checkpointing} |
572 |
(e.g. \cite{res-eta:98}). |
(e.g. \cite{res-eta:98}). |
573 |
It is depicted in \reffig{3levelcheck} for a 3-level checkpointing |
It is depicted in \ref{fig:3levelcheck} for a 3-level checkpointing |
574 |
[as an example, we give explicit numbers for a 3-day |
[as an example, we give explicit numbers for a 3-day |
575 |
integration with a 1-hourly timestep in square brackets]. |
integration with a 1-hourly timestep in square brackets]. |
576 |
\begin{itemize} |
\begin{itemize} |
637 |
on the computing resources available. |
on the computing resources available. |
638 |
|
|
639 |
\begin{figure}[t!] |
\begin{figure}[t!] |
640 |
\centering |
\begin{center} |
641 |
%\psdraft |
%\psdraft |
642 |
\psfrag{v_k1^lev3}{\mathinfigure{v_{k_{1}^{lev3}}}} |
%\psfrag{v_k1^lev3}{\mathinfigure{v_{k_{1}^{lev3}}}} |
643 |
\psfrag{v_kn-1^lev3}{\mathinfigure{v_{k_{n-1}^{lev3}}}} |
%\psfrag{v_kn-1^lev3}{\mathinfigure{v_{k_{n-1}^{lev3}}}} |
644 |
\psfrag{v_kn^lev3}{\mathinfigure{v_{k_{n}^{lev3}}}} |
%\psfrag{v_kn^lev3}{\mathinfigure{v_{k_{n}^{lev3}}}} |
645 |
\psfrag{v_k1^lev2}{\mathinfigure{v_{k_{1}^{lev2}}}} |
%\psfrag{v_k1^lev2}{\mathinfigure{v_{k_{1}^{lev2}}}} |
646 |
\psfrag{v_kn-1^lev2}{\mathinfigure{v_{k_{n-1}^{lev2}}}} |
%\psfrag{v_kn-1^lev2}{\mathinfigure{v_{k_{n-1}^{lev2}}}} |
647 |
\psfrag{v_kn^lev2}{\mathinfigure{v_{k_{n}^{lev2}}}} |
%\psfrag{v_kn^lev2}{\mathinfigure{v_{k_{n}^{lev2}}}} |
648 |
\psfrag{v_k1^lev1}{\mathinfigure{v_{k_{1}^{lev1}}}} |
%\psfrag{v_k1^lev1}{\mathinfigure{v_{k_{1}^{lev1}}}} |
649 |
\psfrag{v_kn^lev1}{\mathinfigure{v_{k_{n}^{lev1}}}} |
%\psfrag{v_kn^lev1}{\mathinfigure{v_{k_{n}^{lev1}}}} |
650 |
\mbox{\epsfig{file=part5/checkpointing.eps, width=0.8\textwidth}} |
%\mbox{\epsfig{file=part5/checkpointing.eps, width=0.8\textwidth}} |
651 |
|
\resizebox{5.5in}{!}{\includegraphics{part5/checkpointing.eps}} |
652 |
%\psfull |
%\psfull |
653 |
\caption |
\end{center} |
654 |
{Schematic view of intermediate dump and restart for |
\caption{ |
655 |
|
Schematic view of intermediate dump and restart for |
656 |
3-level checkpointing.} |
3-level checkpointing.} |
657 |
\label{fig:3levelcheck} |
\label{fig:3levelcheck} |
658 |
\end{figure} |
\end{figure} |
679 |
We take as an example the sensitivity of carbon sequestration |
We take as an example the sensitivity of carbon sequestration |
680 |
in the ocean. |
in the ocean. |
681 |
The AD-relevant hooks in the code are sketched in |
The AD-relevant hooks in the code are sketched in |
682 |
\reffig{adthemodel}, \reffig{adthemain}. |
\ref{fig:adthemodel}, \ref{fig:adthemain}. |
683 |
|
|
684 |
\subsection{Overview of the experiment} |
\subsection{Overview of the experiment} |
685 |
|
|
1264 |
\label{fig:adthemodel} |
\label{fig:adthemodel} |
1265 |
\end{figure} |
\end{figure} |
1266 |
|
|
1267 |
The basic flow is depicted in \reffig{adthemodel}. |
The basic flow is depicted in \ref{fig:adthemodel}. |
1268 |
If the option {\tt ALLOW\_AUTODIFF\_TAMC} is defined, the driver routine |
If the option {\tt ALLOW\_AUTODIFF\_TAMC} is defined, the driver routine |
1269 |
{\it the\_model\_main}, instead of calling {\it the\_main\_loop}, |
{\it the\_model\_main}, instead of calling {\it the\_main\_loop}, |
1270 |
invokes the adjoint of this routine, {\it adthe\_main\_loop}, |
invokes the adjoint of this routine, {\it adthe\_main\_loop}, |