--- manual/s_software/text/sarch.tex 2001/11/13 20:13:55 1.6 +++ manual/s_software/text/sarch.tex 2003/08/07 18:27:52 1.10 @@ -1,10 +1,20 @@ -% $Header: /home/ubuntu/mnt/e9_copy/manual/s_software/text/sarch.tex,v 1.6 2001/11/13 20:13:55 adcroft Exp $ +% $Header: /home/ubuntu/mnt/e9_copy/manual/s_software/text/sarch.tex,v 1.10 2003/08/07 18:27:52 edhill Exp $ -In this chapter we describe the software architecture and -implementation strategy for the MITgcm code. The first part of this -chapter discusses the MITgcm architecture at an abstract level. In the second -part of the chapter we described practical details of the MITgcm implementation -and of current tools and operating system features that are employed. +This chapter focuses on describing the {\bf WRAPPER} environment within which +both the core numerics and the pluggable packages operate. The description +presented here is intended to be a detailed exposition and contains significant +background material, as well as advanced details on working with the WRAPPER. +The tutorial sections of this manual (see sections +\ref{sect:tutorials} and \ref{sect:tutorialIII}) +contain more succinct, step-by-step instructions on running basic numerical +experiments, of varous types, both sequentially and in parallel. For many +projects simply starting from an example code and adapting it to suit a +particular situation +will be all that is required. +The first part of this chapter discusses the MITgcm architecture at an +abstract level. In the second part of the chapter we described practical +details of the MITgcm implementation and of current tools and operating system +features that are employed. \section{Overall architectural goals} @@ -87,7 +97,7 @@ \resizebox{!}{4.5in}{\includegraphics{part4/fit_in_wrapper.eps}} \end{center} \caption{ -Numerical code is written too fit within a software support +Numerical code is written to fit within a software support infrastructure called WRAPPER. The WRAPPER is portable and can be specialized for a wide range of specific target hardware and programming environments, without impacting numerical code that fits @@ -110,7 +120,7 @@ (UMA) and non-uniform memory access (NUMA) designs. Significant work has also been undertaken on x86 cluster systems, Alpha processor based clustered SMP systems, and on cache-coherent NUMA (CC-NUMA) systems from Silicon Graphics. -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 large scale MPP systems (for example T3E systems and IBM SP systems). In all cases numerical code, operating within the WRAPPER, performs and scales very competitively with equivalent numerical code that has been modified to contain @@ -771,7 +781,7 @@ forty grid points in y. The two sub-domains in each process will be computed sequentially if they are given to a single thread within a single process. Alternatively if the code is invoked with multiple threads per process -the two domains in y may be computed on concurrently. +the two domains in y may be computed concurrently. \item \begin{verbatim} PARAMETER ( @@ -807,6 +817,7 @@ WRAPPER is shown in figure \ref{fig:wrapper_startup}. \begin{figure} +{\footnotesize \begin{verbatim} MAIN @@ -835,6 +846,7 @@ \end{verbatim} +} \caption{Main stages of the WRAPPER startup procedure. This process proceeds transfer of control to application code, which occurs through the procedure {\em THE\_MODEL\_MAIN()}. @@ -1414,6 +1426,7 @@ WRAPPER layer. +{\footnotesize \begin{verbatim} MAIN @@ -1441,9 +1454,11 @@ |--THE_MODEL_MAIN :: Numerical code top-level driver routine \end{verbatim} +} Core equations plus packages. +{\footnotesize \begin{verbatim} C C @@ -1782,6 +1797,7 @@ C :: events. C \end{verbatim} +} \subsection{Measuring and Characterizing Performance}