| 977 |
routines must be activated at compile time. Currently MPI libraries are |
routines must be activated at compile time. Currently MPI libraries are |
| 978 |
invoked by |
invoked by |
| 979 |
specifying the appropriate options file with the |
specifying the appropriate options file with the |
| 980 |
\begin{verbatim}-of\end{verbatim} flag when running the {\em genmake2} |
{\tt-of} flag when running the {\em genmake2} |
| 981 |
script, which generates the Makefile for compiling and linking MITgcm. |
script, which generates the Makefile for compiling and linking MITgcm. |
| 982 |
(Previously this was done by setting the {\em ALLOW\_USE\_MPI} and |
(Previously this was done by setting the {\em ALLOW\_USE\_MPI} and |
| 983 |
{\em ALWAYS\_USE\_MPI} flags in the {\em CPP\_EEOPTIONS.h} file.) More |
{\em ALWAYS\_USE\_MPI} flags in the {\em CPP\_EEOPTIONS.h} file.) More |
| 984 |
detailed information about the use of {\em genmake2} for specifying |
detailed information about the use of {\em genmake2} for specifying |
| 985 |
local compiler flags is located in section 3 ??\\ |
local compiler flags is located in section \ref{sect:genmake}.\\ |
| 986 |
|
|
| 987 |
|
|
| 988 |
\fbox{ |
\fbox{ |
| 989 |
\begin{minipage}{4.75in} |
\begin{minipage}{4.75in} |
| 990 |
|
Directory: {\em tools/build\_options}\\ |
| 991 |
File: {\em tools/genmake2} |
File: {\em tools/genmake2} |
| 992 |
\end{minipage} |
\end{minipage} |
| 993 |
} \\ |
} \\ |
| 1006 |
in the file {\em SIZE.h}. The parameter {\em mf} specifies that a text file |
in the file {\em SIZE.h}. The parameter {\em mf} specifies that a text file |
| 1007 |
called ``mf'' will be read to get a list of processor names on |
called ``mf'' will be read to get a list of processor names on |
| 1008 |
which the sixty-four processes will execute. The syntax of this file |
which the sixty-four processes will execute. The syntax of this file |
| 1009 |
is specified by the MPI distribution |
is specified by the MPI distribution. |
| 1010 |
\\ |
\\ |
| 1011 |
|
|
| 1012 |
\fbox{ |
\fbox{ |
| 1057 |
Allocation of processes to tiles in controlled by the routine |
Allocation of processes to tiles in controlled by the routine |
| 1058 |
{\em INI\_PROCS()}. For each process this routine sets |
{\em INI\_PROCS()}. For each process this routine sets |
| 1059 |
the variables {\em myXGlobalLo} and {\em myYGlobalLo}. |
the variables {\em myXGlobalLo} and {\em myYGlobalLo}. |
| 1060 |
These variables specify (in index space) the coordinate |
These variables specify in index space the coordinates |
| 1061 |
of the southern most and western most corner of the |
of the southernmost and westernmost corner of the |
| 1062 |
southern most and western most tile owned by this process. |
southernmost and westernmost tile owned by this process. |
| 1063 |
The variables {\em pidW}, {\em pidE}, {\em pidS} and {\em pidN} |
The variables {\em pidW}, {\em pidE}, {\em pidS} and {\em pidN} |
| 1064 |
are also set in this routine. These are used to identify |
are also set in this routine. These are used to identify |
| 1065 |
processes holding tiles to the west, east, south and north |
processes holding tiles to the west, east, south and north |
| 1068 |
communication routines. The above does not hold when the |
communication routines. The above does not hold when the |
| 1069 |
exch2 package is used -- exch2 sets its own parameters to |
exch2 package is used -- exch2 sets its own parameters to |
| 1070 |
specify the global indices of tiles and their relationships |
specify the global indices of tiles and their relationships |
| 1071 |
to each other. See exch2 docs for details??. |
to each other. See the documentation on the exch2 package |
| 1072 |
|
(\ref{sec:exch2}) for |
| 1073 |
|
details. |
| 1074 |
\\ |
\\ |
| 1075 |
|
|
| 1076 |
\fbox{ |
\fbox{ |
| 1096 |
describes the information that is held and used. |
describes the information that is held and used. |
| 1097 |
|
|
| 1098 |
\begin{enumerate} |
\begin{enumerate} |
| 1099 |
\item {\bf Tile-tile connectivity information} For each tile the WRAPPER |
\item {\bf Tile-tile connectivity information} |
| 1100 |
sets a flag that sets the tile number to the north, south, east and |
For each tile the WRAPPER |
| 1101 |
|
sets a flag that sets the tile number to the north, |
| 1102 |
|
south, east and |
| 1103 |
west of that tile. This number is unique over all tiles in a |
west of that tile. This number is unique over all tiles in a |
| 1104 |
configuration. Except when using the exch2 package, |
configuration. Except when using the cubed sphere and the exch2 package, |
| 1105 |
the number is held in the variables {\em tileNo} |
the number is held in the variables {\em tileNo} |
| 1106 |
( this holds the tiles own number), {\em tileNoN}, {\em tileNoS}, |
( this holds the tiles own number), {\em tileNoN}, {\em tileNoS}, |
| 1107 |
{\em tileNoE} and {\em tileNoW}. A parameter is also stored with each tile |
{\em tileNoE} and {\em tileNoW}. A parameter is also stored with each tile |
| 1125 |
(see figure \ref{fig:communication_primitives}). The routine |
(see figure \ref{fig:communication_primitives}). The routine |
| 1126 |
{\em ini\_communication\_patterns()} is responsible for setting the |
{\em ini\_communication\_patterns()} is responsible for setting the |
| 1127 |
communication mode values for each tile. |
communication mode values for each tile. |
|
\\ |
|
| 1128 |
|
|
| 1129 |
When using the cubed sphere configuration with the exch2 package, the |
When using the cubed sphere configuration with the exch2 package, the |
| 1130 |
relationships between tiles and their communication methods are set |
relationships between tiles and their communication methods are set |
| 1131 |
by the package in other variables. See the exch2 docs for details.?? |
by the package in other variables. See the exch2 package documentation |
| 1132 |
|
(\ref{sec:exch2} for details. |
| 1133 |
|
|
| 1134 |
|
|
| 1135 |
|
|