| 17 |
\subsection{Introduction} |
\subsection{Introduction} |
| 18 |
|
|
| 19 |
The \texttt{exch2} package is an extension to the original cubed |
The \texttt{exch2} package is an extension to the original cubed |
| 20 |
sphere exchanges to allow more flexible domain decomposition and |
sphere topological configuration that allows more flexible domain |
| 21 |
parallelization. Cube faces (subdomains) may be divided into whatever |
decomposition and parallelization. Cube faces (also called |
| 22 |
number of tiles that divide evenly into the grid point dimensions of |
subdomains) may be divided into any number of tiles that divide evenly |
| 23 |
the subdomain. Furthermore, the individual tiles may be run on |
into the grid point dimensions of the subdomain. Furthermore, the |
| 24 |
separate processors in different combinations, and whether exchanges |
individual tiles may be run on separate processors in different |
| 25 |
between particular tiles occur between different processors is |
combinations, and whether exchanges between particular tiles occur |
| 26 |
determined at runtime. |
between different processors is determined at runtime. This |
| 27 |
|
flexibility provides for manual load balancing across a relatively |
| 28 |
|
arbitrary number of processors. |
| 29 |
|
|
| 30 |
The exchange parameters are declared in |
The exchange parameters are declared in |
| 31 |
\filelink{pkg/exch2/W2\_EXCH2\_TOPOLOGY.h}{pkg-exch2-W2_EXCH2_TOPOLOGY.h} |
\filelink{pkg/exch2/W2\_EXCH2\_TOPOLOGY.h}{pkg-exch2-W2_EXCH2_TOPOLOGY.h} |
| 32 |
and assigned in |
and assigned in |
| 33 |
\filelink{pkg/exch2/w2\_e2setup.F}{pkg-exch2-w2_e2setup.F}, both in |
\filelink{pkg/exch2/w2\_e2setup.F}{pkg-exch2-w2_e2setup.F}. The |
| 34 |
the \texttt{pkg/exch2} directory. The validity of the cube topology |
validity of the cube topology depends on the \texttt{SIZE.h} file as |
| 35 |
depends on the \texttt{SIZE.h} file as detailed below. Both files are |
detailed below. Both files are generated by Matlab scripts in ?? |
| 36 |
generated by Matlab scripts and should not be edited. The default |
check these in already! and should not be edited. The default files |
| 37 |
files provided in the release set up a cube sphere arrangement of six |
provided in the release configure a cubed sphere arrangement of six |
| 38 |
tiles, one per subdomain, each with 32x32 grid points, running on a |
tiles, one per subdomain, each with 32$\times$32 grid points, all |
| 39 |
single processor. |
running on a single processor. Pregenerated examples of these files |
| 40 |
|
with alternate topologies are provided in ??. |
| 41 |
|
|
| 42 |
|
\subsection{Invoking exch2} |
| 43 |
|
|
| 44 |
|
To use exch2 with the cubed sphere, the following conditions must be met: |
| 45 |
|
|
| 46 |
|
- the exch2 package is included when \texttt{genmake2} is run. The |
| 47 |
|
easiest way to do this is to add the line \texttt{exch2} to the |
| 48 |
|
\texttt{profile.conf} file -- see Section \ref{sect:buildingCode} |
| 49 |
|
for general details. \\ |
| 50 |
|
|
| 51 |
|
- an example of \texttt{W2\_EXCH2\_TOPOLOGY.h} and |
| 52 |
|
\texttt{w2\_e2setup.F} must reside in a directory containing code |
| 53 |
|
linked when \texttt{genmake2} runs. The safest place to put these |
| 54 |
|
is the directory indicated in the \texttt{-mods=DIR} command line |
| 55 |
|
modifier (typically \texttt{../code}), or the build directory. The |
| 56 |
|
default versions of these files reside in \texttt{pkg/exch2}, but |
| 57 |
|
they should be left untouched to avoid breaking configurations other |
| 58 |
|
than the one you intend to modify.\\ |
| 59 |
|
|
| 60 |
|
- files containing grid parameters, named |
| 61 |
|
\texttt{tile}xxx\texttt{.mitgrid} where xxx is \texttt{001} through |
| 62 |
|
\texttt{006}, must be in the working directory when the MITgcm |
| 63 |
|
executable is run. These files are provided in the example |
| 64 |
|
experiments for cubed sphere configurations with 32$\times$32 cube |
| 65 |
|
sides and are non-trivial to generate -- please contact MITgcm |
| 66 |
|
support if you want to generate files for other configurations. |
| 67 |
|
This is lame. ?? \\ |
| 68 |
|
|
| 69 |
|
As of the time of writing the following examples use exch2 and may be |
| 70 |
|
used for guidance: |
| 71 |
|
|
| 72 |
|
\begin{verbatim} |
| 73 |
|
verification/adjust_nlfs.cs-32x32x1 |
| 74 |
|
verification/adjustment.cs-32x32x1 |
| 75 |
|
verification/aim.5l_cs |
| 76 |
|
verification/global_ocean.cs32x15 |
| 77 |
|
verification/hs94.cs-32x32x5 |
| 78 |
|
\end{verbatim} |
| 79 |
|
|
| 80 |
|
|
| 81 |
|
|
| 82 |
|
|
| 83 |
|
\subsection{Generating Topology Files} |
| 84 |
|
|
| 85 |
\subsection{Key Variables} |
\subsection{Key Variables} |
| 86 |
|
|
| 98 |
\texttt{NTILES}, and the maximum number of neighbors of any tiles by |
\texttt{NTILES}, and the maximum number of neighbors of any tiles by |
| 99 |
\texttt{MAX\_NEIGHBOURS}. These parameters are used for defining the |
\texttt{MAX\_NEIGHBOURS}. These parameters are used for defining the |
| 100 |
size of the various one and two dimensional arrays that store tile |
size of the various one and two dimensional arrays that store tile |
| 101 |
parameters indexed to the tile number. |
parameters indexed to the tile number.\\ |
| 102 |
|
|
| 103 |
The scalar parameters \varlink{exch2\_domain\_nxt}{exch2_domain_nxt} |
The scalar parameters \varlink{exch2\_domain\_nxt}{exch2_domain_nxt} |
| 104 |
and \varlink{exch2\_domain\_nyt}{exch2_domain_nyt} express the number |
and \varlink{exch2\_domain\_nyt}{exch2_domain_nyt} express the number |