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 |