| 76 |
\end{figure} |
\end{figure} |
| 77 |
|
|
| 78 |
\section{WRAPPER} |
\section{WRAPPER} |
| 79 |
|
\begin{rawhtml} |
| 80 |
|
<!-- CMIREDIR:wrapper: --> |
| 81 |
|
\end{rawhtml} |
| 82 |
|
|
| 83 |
A significant element of the software architecture utilized in |
A significant element of the software architecture utilized in |
| 84 |
MITgcm is a software superstructure and substructure collectively |
MITgcm is a software superstructure and substructure collectively |
| 153 |
computer architecture currently available to the scientific computing community. |
computer architecture currently available to the scientific computing community. |
| 154 |
|
|
| 155 |
\subsection{Machine model parallelism} |
\subsection{Machine model parallelism} |
| 156 |
|
\begin{rawhtml} |
| 157 |
|
<!-- CMIREDIR:domain_decomp: --> |
| 158 |
|
\end{rawhtml} |
| 159 |
|
|
| 160 |
Codes operating under the WRAPPER target an abstract machine that is assumed to |
Codes operating under the WRAPPER target an abstract machine that is assumed to |
| 161 |
consist of one or more logical processors that can compute concurrently. |
consist of one or more logical processors that can compute concurrently. |
| 1273 |
the cube-sphere grid. In this class of grid a rotation may be required |
the cube-sphere grid. In this class of grid a rotation may be required |
| 1274 |
between tiles. Aligning the coordinate requiring rotation with the |
between tiles. Aligning the coordinate requiring rotation with the |
| 1275 |
tile decomposition, allows the coordinate transformation to |
tile decomposition, allows the coordinate transformation to |
| 1276 |
be embedded within a custom form of the \_EXCH primitive. |
be embedded within a custom form of the \_EXCH primitive. In these |
| 1277 |
|
cases \_EXCH is mapped to exch2 routines, as detailed in the exch2 |
| 1278 |
|
package documentation \ref{sec:exch2}. |
| 1279 |
|
|
| 1280 |
\item {\bf Reverse Mode} |
\item {\bf Reverse Mode} |
| 1281 |
The communication primitives \_EXCH and \_GSUM both employ |
The communication primitives \_EXCH and \_GSUM both employ |
| 1292 |
is set to the value {\em REVERSE\_SIMULATION}. This signifies |
is set to the value {\em REVERSE\_SIMULATION}. This signifies |
| 1293 |
ti the low-level routines that the adjoint forms of the |
ti the low-level routines that the adjoint forms of the |
| 1294 |
appropriate communication operation should be performed. |
appropriate communication operation should be performed. |
| 1295 |
|
|
| 1296 |
\item {\bf MAX\_NO\_THREADS} |
\item {\bf MAX\_NO\_THREADS} |
| 1297 |
The variable {\em MAX\_NO\_THREADS} is used to indicate the |
The variable {\em MAX\_NO\_THREADS} is used to indicate the |
| 1298 |
maximum number of OS threads that a code will use. This |
maximum number of OS threads that a code will use. This |
| 1397 |
This is done to allow a large number of variations on the exchange |
This is done to allow a large number of variations on the exchange |
| 1398 |
process to be maintained. One set of variations supports the |
process to be maintained. One set of variations supports the |
| 1399 |
cube sphere grid. Support for a cube sphere grid in MITgcm is based |
cube sphere grid. Support for a cube sphere grid in MITgcm is based |
| 1400 |
on having each face of the cube as a separate tile (or tiles). |
on having each face of the cube as a separate tile or tiles. |
| 1401 |
The exchange routines are then able to absorb much of the |
The exchange routines are then able to absorb much of the |
| 1402 |
detailed rotation and reorientation required when moving around the |
detailed rotation and reorientation required when moving around the |
| 1403 |
cube grid. The set of {\em \_EXCH} routines that contain the |
cube grid. The set of {\em \_EXCH} routines that contain the |