/[MITgcm]/manual/s_software/text/sarch.tex
ViewVC logotype

Diff of /manual/s_software/text/sarch.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.7 by cnh, Thu Feb 28 19:32:20 2002 UTC revision 1.11 by afe, Wed Jan 28 19:33:04 2004 UTC
# Line 4  This chapter focuses on describing the { Line 4  This chapter focuses on describing the {
4  both the core numerics and the pluggable packages operate. The description  both the core numerics and the pluggable packages operate. The description
5  presented here is intended to be a detailed exposition and contains significant  presented here is intended to be a detailed exposition and contains significant
6  background material, as well as advanced details on working with the WRAPPER.  background material, as well as advanced details on working with the WRAPPER.
7  The tutorial sections of this manual (see Chapters  The tutorial sections of this manual (see sections
8  \ref{chap:tutorialI}, \ref{chap:tutorialII} and \ref{chap:tutorialIII})  \ref{sect:tutorials}  and \ref{sect:tutorialIII})
9  contain more succinct, step-by-step instructions on running basic numerical  contain more succinct, step-by-step instructions on running basic numerical
10  experiments, of varous types, both sequentially and in parallel. For many  experiments, of varous types, both sequentially and in parallel. For many
11  projects simply starting from an example code and adapting it to suit a  projects simply starting from an example code and adapting it to suit a
# Line 97  and operating systems. This allows numer Line 97  and operating systems. This allows numer
97  \resizebox{!}{4.5in}{\includegraphics{part4/fit_in_wrapper.eps}}  \resizebox{!}{4.5in}{\includegraphics{part4/fit_in_wrapper.eps}}
98  \end{center}  \end{center}
99  \caption{  \caption{
100  Numerical code is written too fit within a software support  Numerical code is written to fit within a software support
101  infrastructure called WRAPPER. The WRAPPER is portable and  infrastructure called WRAPPER. The WRAPPER is portable and
102  can be specialized for a wide range of specific target hardware and  can be specialized for a wide range of specific target hardware and
103  programming environments, without impacting numerical code that fits  programming environments, without impacting numerical code that fits
# Line 120  uniprocessor and multi-processor Sun sys Line 120  uniprocessor and multi-processor Sun sys
120  (UMA) and non-uniform memory access (NUMA) designs. Significant work has also  (UMA) and non-uniform memory access (NUMA) designs. Significant work has also
121  been undertaken on x86 cluster systems, Alpha processor based clustered SMP  been undertaken on x86 cluster systems, Alpha processor based clustered SMP
122  systems, and on cache-coherent NUMA (CC-NUMA) systems from Silicon Graphics.  systems, and on cache-coherent NUMA (CC-NUMA) systems from Silicon Graphics.
123  The MITgcm code, operating within the WRAPPER, is also used routinely used on  The MITgcm code, operating within the WRAPPER, is also routinely used on
124  large scale MPP systems (for example T3E systems and IBM SP systems). In all  large scale MPP systems (for example T3E systems and IBM SP systems). In all
125  cases numerical code, operating within the WRAPPER, performs and scales very  cases numerical code, operating within the WRAPPER, performs and scales very
126  competitively with equivalent numerical code that has been modified to contain  competitively with equivalent numerical code that has been modified to contain
# Line 661  Within a {\em bi}, {\em bj} loop Line 661  Within a {\em bi}, {\em bj} loop
661  computation is performed concurrently over as many processes and threads  computation is performed concurrently over as many processes and threads
662  as there are physical processors available to compute.  as there are physical processors available to compute.
663    
664    An exception to the the use of {\em bi} and {\em bj} in loops arises in the
665    exchange routines used when the exch2 package is used with the cubed
666    sphere.  In this case {\em bj} is generally set to 1 and the loop runs from
667    1,{\em bi}.  Within the loop {\em bi} is used to retrieve the tile number,
668    which is then used to reference exchange parameters.
669    
670  The amount of computation that can be embedded  The amount of computation that can be embedded
671  a single loop over {\em bi} and {\em bj} varies for different parts of the  a single loop over {\em bi} and {\em bj} varies for different parts of the
672  MITgcm algorithm. Figure \ref{fig:bibj_extract} shows a code extract  MITgcm algorithm. Figure \ref{fig:bibj_extract} shows a code extract
# Line 781  The global domain size is again ninety g Line 787  The global domain size is again ninety g
787  forty grid points in y. The two sub-domains in each process will be computed  forty grid points in y. The two sub-domains in each process will be computed
788  sequentially if they are given to a single thread within a single process.  sequentially if they are given to a single thread within a single process.
789  Alternatively if the code is invoked with multiple threads per process  Alternatively if the code is invoked with multiple threads per process
790  the two domains in y may be computed on concurrently.  the two domains in y may be computed concurrently.
791  \item  \item
792  \begin{verbatim}  \begin{verbatim}
793        PARAMETER (        PARAMETER (
# Line 817  by the application code. The startup cal Line 823  by the application code. The startup cal
823  WRAPPER is shown in figure \ref{fig:wrapper_startup}.  WRAPPER is shown in figure \ref{fig:wrapper_startup}.
824    
825  \begin{figure}  \begin{figure}
826    {\footnotesize
827  \begin{verbatim}  \begin{verbatim}
828    
829         MAIN           MAIN  
# Line 845  WRAPPER is shown in figure \ref{fig:wrap Line 852  WRAPPER is shown in figure \ref{fig:wrap
852    
853    
854  \end{verbatim}  \end{verbatim}
855    }
856  \caption{Main stages of the WRAPPER startup procedure.  \caption{Main stages of the WRAPPER startup procedure.
857  This process proceeds transfer of control to application code, which  This process proceeds transfer of control to application code, which
858  occurs through the procedure {\em THE\_MODEL\_MAIN()}.  occurs through the procedure {\em THE\_MODEL\_MAIN()}.
# Line 927  File: {\em eesupp/inc/MAIN\_PDIRECTIVES1 Line 935  File: {\em eesupp/inc/MAIN\_PDIRECTIVES1
935  File: {\em eesupp/inc/MAIN\_PDIRECTIVES2.h}\\  File: {\em eesupp/inc/MAIN\_PDIRECTIVES2.h}\\
936  File: {\em model/src/THE\_MODEL\_MAIN.F}\\  File: {\em model/src/THE\_MODEL\_MAIN.F}\\
937  File: {\em eesupp/src/MAIN.F}\\  File: {\em eesupp/src/MAIN.F}\\
938  File: {\em tools/genmake}\\  File: {\em tools/genmake2}\\
939  File: {\em eedata}\\  File: {\em eedata}\\
940  CPP:  {\em TARGET\_SUN}\\  CPP:  {\em TARGET\_SUN}\\
941  CPP:  {\em TARGET\_DEC}\\  CPP:  {\em TARGET\_DEC}\\
# Line 982  Parameter:  {\em nPy} Line 990  Parameter:  {\em nPy}
990    
991  Additionally, compile time options are required to link in the  Additionally, compile time options are required to link in the
992  MPI libraries and header files. Examples of these options  MPI libraries and header files. Examples of these options
993  can be found in the {\em genmake} script that creates makefiles  can be found in the {\em genmake2} script that creates makefiles
994  for compilation. When this script is executed with the {bf -mpi}  for compilation. When this script is executed with the {bf -mpi}
995  flag it will generate a makefile that includes  flag it will generate a makefile that includes
996  paths for search for MPI head files and for linking in  paths for search for MPI head files and for linking in
# Line 1004  local configuration of your system.\\ Line 1012  local configuration of your system.\\
1012    
1013  \fbox{  \fbox{
1014  \begin{minipage}{4.75in}  \begin{minipage}{4.75in}
1015  File: {\em tools/genmake}  File: {\em tools/genmake2}
1016  \end{minipage}  \end{minipage}
1017  } \\  } \\
1018  \paragraph{\bf Execution} The mechanics of starting a program in  \paragraph{\bf Execution} The mechanics of starting a program in
# Line 1424  sequence shown in section \ref{sect:call Line 1432  sequence shown in section \ref{sect:call
1432    
1433  WRAPPER layer.  WRAPPER layer.
1434    
1435    {\footnotesize
1436  \begin{verbatim}  \begin{verbatim}
1437    
1438         MAIN           MAIN  
# Line 1451  WRAPPER layer. Line 1460  WRAPPER layer.
1460         |--THE_MODEL_MAIN   :: Numerical code top-level driver routine         |--THE_MODEL_MAIN   :: Numerical code top-level driver routine
1461    
1462  \end{verbatim}  \end{verbatim}
1463    }
1464    
1465  Core equations plus packages.  Core equations plus packages.
1466    
1467    {\footnotesize
1468  \begin{verbatim}  \begin{verbatim}
1469  C  C
1470  C  C
# Line 1792  C    |-COMM_STATS     :: Summarise inter Line 1803  C    |-COMM_STATS     :: Summarise inter
1803  C                     :: events.  C                     :: events.
1804  C  C
1805  \end{verbatim}  \end{verbatim}
1806    }
1807    
1808  \subsection{Measuring and Characterizing Performance}  \subsection{Measuring and Characterizing Performance}
1809    

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22