--- manual/s_software/text/sarch.tex 2003/08/07 18:27:52 1.10 +++ manual/s_software/text/sarch.tex 2004/01/28 20:27:54 1.13 @@ -1,4 +1,4 @@ -% $Header: /home/ubuntu/mnt/e9_copy/manual/s_software/text/sarch.tex,v 1.10 2003/08/07 18:27:52 edhill Exp $ +% $Header: /home/ubuntu/mnt/e9_copy/manual/s_software/text/sarch.tex,v 1.13 2004/01/28 20:27:54 afe Exp $ This chapter focuses on describing the {\bf WRAPPER} environment within which both the core numerics and the pluggable packages operate. The description @@ -661,6 +661,12 @@ computation is performed concurrently over as many processes and threads as there are physical processors available to compute. +An exception to the the use of {\em bi} and {\em bj} in loops arises in the +exchange routines used when the exch2 package is used with the cubed +sphere. In this case {\em bj} is generally set to 1 and the loop runs from +1,{\em bi}. Within the loop {\em bi} is used to retrieve the tile number, +which is then used to reference exchange parameters. + The amount of computation that can be embedded a single loop over {\em bi} and {\em bj} varies for different parts of the MITgcm algorithm. Figure \ref{fig:bibj_extract} shows a code extract @@ -929,7 +935,7 @@ File: {\em eesupp/inc/MAIN\_PDIRECTIVES2.h}\\ File: {\em model/src/THE\_MODEL\_MAIN.F}\\ File: {\em eesupp/src/MAIN.F}\\ -File: {\em tools/genmake}\\ +File: {\em tools/genmake2}\\ File: {\em eedata}\\ CPP: {\em TARGET\_SUN}\\ CPP: {\em TARGET\_DEC}\\ @@ -968,45 +974,20 @@ of controlling and coordinating the start up of a large number (hundreds and possibly even thousands) of copies of the same program, MPI is used. The calls to the MPI multi-process startup -routines must be activated at compile time. This is done -by setting the {\em ALLOW\_USE\_MPI} and {\em ALWAYS\_USE\_MPI} -flags in the {\em CPP\_EEOPTIONS.h} file.\\ +routines must be activated at compile time. Currently MPI libraries are +invoked by +specifying the appropriate options file with the +\begin{verbatim}-of\end{verbatim} flag when running the {\em genmake2} +script, which generates the Makefile for compiling and linking MITgcm. +(Previously this was done by setting the {\em ALLOW\_USE\_MPI} and +{\em ALWAYS\_USE\_MPI} flags in the {\em CPP\_EEOPTIONS.h} file.) More +detailed information about the use of {\em genmake2} for specifying +local compiler flags is located in section 3 ??\\ -\fbox{ -\begin{minipage}{4.75in} -File: {\em eesupp/inc/CPP\_EEOPTIONS.h}\\ -CPP: {\em ALLOW\_USE\_MPI}\\ -CPP: {\em ALWAYS\_USE\_MPI}\\ -Parameter: {\em nPx}\\ -Parameter: {\em nPy} -\end{minipage} -} \\ - -Additionally, compile time options are required to link in the -MPI libraries and header files. Examples of these options -can be found in the {\em genmake} script that creates makefiles -for compilation. When this script is executed with the {bf -mpi} -flag it will generate a makefile that includes -paths for search for MPI head files and for linking in -MPI libraries. For example the {\bf -mpi} flag on a - Silicon Graphics IRIX system causes a -Makefile with the compilation command -Graphics IRIX system \begin{verbatim} -mpif77 -I/usr/local/mpi/include -DALLOW_USE_MPI -DALWAYS_USE_MPI -\end{verbatim} -to be generated. -This is the correct set of options for using the MPICH open-source -version of MPI, when it has been installed under the subdirectory -/usr/local/mpi. -However, on many systems there may be several -versions of MPI installed. For example many systems have both -the open source MPICH set of libraries and a vendor specific native form -of the MPI libraries. The correct setup to use will depend on the -local configuration of your system.\\ \fbox{ \begin{minipage}{4.75in} -File: {\em tools/genmake} +File: {\em tools/genmake2} \end{minipage} } \\ \paragraph{\bf Execution} The mechanics of starting a program in @@ -1083,7 +1064,10 @@ processes holding tiles to the west, east, south and north of this process. These values are stored in global storage in the header file {\em EESUPPORT.h} for use by -communication routines. +communication routines. The above does not hold when the +exch2 package is used -- exch2 sets its own parameters to +specify the global indices of tiles and their relationships +to each other. \\ \fbox{