/[MITgcm]/manual/s_getstarted/text/getting_started.tex
ViewVC logotype

Diff of /manual/s_getstarted/text/getting_started.tex

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

revision 1.22 by edhill, Wed Mar 24 20:53:12 2004 UTC revision 1.24 by edhill, Fri Apr 9 15:06:18 2004 UTC
# Line 666  the one experiment: Line 666  the one experiment:
666  \end{verbatim}  \end{verbatim}
667    
668    
669    \subsection{Using \texttt{genmake2}}
 \subsection{Using \textit{genmake2}}  
670  \label{sect:genmake}  \label{sect:genmake}
671    
672  To compile the code, first use the program \texttt{genmake2} (located  To compile the code, first use the program \texttt{genmake2} (located
673  in the \textit{tools} directory) to generate a Makefile.  in the \texttt{tools} directory) to generate a Makefile.
674  \texttt{genmake2} is a shell script written to work with all  \texttt{genmake2} is a shell script written to work with all
675  ``sh''--compatible shells including bash v1, bash v2, and Bourne.  ``sh''--compatible shells including bash v1, bash v2, and Bourne.
676  Internally, \texttt{genmake2} determines the locations of needed  Internally, \texttt{genmake2} determines the locations of needed
677  files, the compiler, compiler options, libraries, and Unix tools.  It  files, the compiler, compiler options, libraries, and Unix tools.  It
678  relies upon a number of ``optfiles'' located in the {\em  relies upon a number of ``optfiles'' located in the
679    tools/build\_options} directory.  \texttt{tools/build\_options} directory.
680    
681  The purpose of the optfiles is to provide all the compilation options  The purpose of the optfiles is to provide all the compilation options
682  for particular ``platforms'' (where ``platform'' roughly means the  for particular ``platforms'' (where ``platform'' roughly means the
# Line 828  The most important command-line options Line 827  The most important command-line options
827      ``-standarddirs'' option)      ``-standarddirs'' option)
828    \end{itemize}    \end{itemize}
829        
830    \item[\texttt{--mpi}] This option enables certain MPI features (using
831      CPP \texttt{\#define}s) within the code and is necessary for MPI
832      builds (see Section \ref{sect:mpi-build}).
833      
834  \item[\texttt{--make=/path/to/gmake}] Due to the poor handling of  \item[\texttt{--make=/path/to/gmake}] Due to the poor handling of
835    soft-links and other bugs common with the \texttt{make} versions    soft-links and other bugs common with the \texttt{make} versions
836    provided by commercial Unix vendors, GNU \texttt{make} (sometimes    provided by commercial Unix vendors, GNU \texttt{make} (sometimes
# Line 840  The most important command-line options Line 843  The most important command-line options
843    a Bourne, POSIX, or compatible) shell.  The syntax in these    a Bourne, POSIX, or compatible) shell.  The syntax in these
844    circumstances is:    circumstances is:
845    \begin{center}    \begin{center}
846      \texttt{/bin/sh genmake2 -bash=/bin/sh [...options...]}      \texttt{\%  /bin/sh genmake2 -bash=/bin/sh [...options...]}
847    \end{center}    \end{center}
848    where \texttt{/bin/sh} can be replaced with the full path and name    where \texttt{/bin/sh} can be replaced with the full path and name
849    of the desired shell.    of the desired shell.
# Line 848  The most important command-line options Line 851  The most important command-line options
851  \end{description}  \end{description}
852    
853    
854    \subsection{Building with MPI}
855    \label{sect:mpi-build}
856    
857    Building MITgcm to use MPI libraries can be complicated due to the
858    variety of different MPI implementations available, their dependencies
859    or interactions with different compilers, and their often ad-hoc
860    locations within file systems.  For these reasons, its generally a
861    good idea to start by finding and reading the documentation for your
862    machine(s) and, if necessary, seeking help from your local systems
863    administrator.
864    
865    The steps for building MITgcm with MPI support are:
866    \begin{enumerate}
867      
868    \item Determine the locations of your MPI-enabled compiler and/or MPI
869      libraries and put them into an options file as described in Section
870      \ref{sect:genmake}.  One can start with one of the examples in:
871      \begin{rawhtml} <A
872        href="http://mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm/tools/build_options/">
873      \end{rawhtml}
874      \begin{center}
875        \texttt{MITgcm/tools/build\_options/}
876      \end{center}
877      \begin{rawhtml} </A> \end{rawhtml}
878      such as \texttt{linux\_ia32\_g77+mpi\_cg01} or
879      \texttt{linux\_ia64\_efc+mpi} and then edit it to suit the machine at
880      hand.  You may need help from your user guide or local systems
881      administrator to determine the exact location of the MPI libraries.
882      If libraries are not installed, MPI implementations and related
883      tools are available including:
884      \begin{itemize}
885      \item \begin{rawhtml} <A
886          href="http://www-unix.mcs.anl.gov/mpi/mpich/">
887        \end{rawhtml}
888        MPICH
889        \begin{rawhtml} </A> \end{rawhtml}
890    
891      \item \begin{rawhtml} <A
892          href="http://www.lam-mpi.org/">
893        \end{rawhtml}
894        LAM/MPI
895        \begin{rawhtml} </A> \end{rawhtml}
896    
897      \item \begin{rawhtml} <A
898          href="http://www.osc.edu/~pw/mpiexec/">
899        \end{rawhtml}
900        MPIexec
901        \begin{rawhtml} </A> \end{rawhtml}
902      \end{itemize}
903      
904    \item Build the code with the \texttt{genmake2} \texttt{-mpi} option
905      (see Section \ref{sect:genmake}) using commands such as:
906    {\footnotesize \begin{verbatim}
907      %  ../../../tools/genmake2 -mods=../code -mpi -of=YOUR_OPTFILE
908      %  make depend
909      %  make
910    \end{verbatim} }
911      
912    \item Run the code with the appropriate MPI ``run'' or ``exec''
913      program provided with your particular implementation of MPI.
914      Typical MPI packages such as MPICH will use something like:
915    \begin{verbatim}
916      %  mpirun -np 4 -machinefile mf ./mitgcmuv
917    \end{verbatim}
918      Sightly more complicated scripts may be needed for many machines
919      since execution of the code may be controlled by both the MPI
920      library and a job scheduling and queueing system such as PBS,
921      LoadLeveller, Condor, or any of a number of similar tools.  A few
922      example scripts (those used for our \begin{rawhtml} <A
923        href="http://mitgcm.org/testing.html"> \end{rawhtml}regular
924      verification runs\begin{rawhtml} </A> \end{rawhtml}) are available
925      at:
926      \begin{rawhtml} <A
927        href="http://mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm_contrib/test_scripts/">
928      \end{rawhtml}
929      {\footnotesize \tt
930        http://mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm\_contrib/test\_scripts/ }
931      \begin{rawhtml} </A> \end{rawhtml}
932    
933    \end{enumerate}
934    
935    
936    
937  \section{Running the model}  \section{Running the model}
938  \label{sect:runModel}  \label{sect:runModel}
939    
940  If compilation finished succesfuully (section \ref{sect:buildModel})  If compilation finished succesfuully (section \ref{sect:buildingCode})
941  then an executable called {\em mitgcmuv} will now exist in the local  then an executable called \texttt{mitgcmuv} will now exist in the
942  directory.  local directory.
943    
944  To run the model as a single process (ie. not in parallel) simply  To run the model as a single process (ie. not in parallel) simply
945  type:  type:

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.24

  ViewVC Help
Powered by ViewVC 1.1.22