[cig-commits] r5268 - mc/3D/CitcomS/trunk/doc/manual

leif at geodynamics.org leif at geodynamics.org
Tue Nov 14 17:14:49 PST 2006


Author: leif
Date: 2006-11-14 17:14:49 -0800 (Tue, 14 Nov 2006)
New Revision: 5268

Modified:
   mc/3D/CitcomS/trunk/doc/manual/citcoms.lyx
Log:
Updated the installation chapter.


Modified: mc/3D/CitcomS/trunk/doc/manual/citcoms.lyx
===================================================================
--- mc/3D/CitcomS/trunk/doc/manual/citcoms.lyx	2006-11-15 00:29:16 UTC (rev 5267)
+++ mc/3D/CitcomS/trunk/doc/manual/citcoms.lyx	2006-11-15 01:14:49 UTC (rev 5268)
@@ -1,4 +1,4 @@
-#LyX 1.4.3 created this file. For more info see http://www.lyx.org/
+#LyX 1.4.2 created this file. For more info see http://www.lyx.org/
 \lyxformat 245
 \begin_document
 \begin_header
@@ -1340,27 +1340,38 @@
 \end_layout
 
 \begin_layout Section
-Before You Begin
+System Requirements
 \end_layout
 
-\begin_layout Subsection
-Tools
+\begin_layout Standard
+Installation of CitComS.py requires the following:
 \end_layout
 
-\begin_layout Standard
-Installation of CitComS.py requires the following system tools:
+\begin_layout Itemize
+A C compiler
 \end_layout
 
 \begin_layout Itemize
-Python 2.3 or greater
+An MPI library
 \end_layout
 
 \begin_layout Itemize
-A C compiler
+Python 2.3 or greater
 \end_layout
 
 \begin_layout Standard
-Users familiar with older versions of CitComS may prefer to install only
+MPI installations are typically configured for a particular compiler, and
+ provide a special wrapper command to invoke the right compiler.
+ Therefore, the choice of MPI implementation often determines which C compiler
+ to use.
+\end_layout
+
+\begin_layout Quote
+
+\series bold
+Note:
+\series default
+ Users familiar with older versions of CitComS may prefer to install only
  the legacy CitComS tools, 
 \family typewriter
 CitcomSFull
@@ -1369,84 +1380,109 @@
 \family typewriter
 CitcomSRegional
 \family default
-, and forgo use of the Pyre framework.
- This process requires only a C compiler.
+, and forgo use of Python and the Pyre framework.
+ This process requires only a C compiler and an MPI library.
+ For more information, see 
+\begin_inset LatexCommand \ref{sec:Installing-without-Pyre}
+
+\end_inset
+
+, later in this chapter.
 \end_layout
 
-\begin_layout Section
-Dependencies
+\begin_layout Standard
+Optionally, CitcomS can be configured to use a parallel HDF5 library.
+ See 
+\begin_inset LatexCommand \ref{sec:HDF5-Configuration}
+
+\end_inset
+
+.
 \end_layout
 
+\begin_layout Subsection
+C Compiler
+\end_layout
+
 \begin_layout Standard
-CitcomS.py requires the following packages:
+On Unix or Linux systems, there is a high likelyhood that a useable C compiler
+ is already installed.
+ To check, type 
+\family typewriter
+cc
+\family default
+ at the shell prompt:
 \end_layout
 
-\begin_layout Itemize
-Pythia 0.8.1.x.
+\begin_layout LyX-Code
+$ cc
 \end_layout
 
-\begin_layout Itemize
-An MPI library
+\begin_layout LyX-Code
+cc: no input files
 \end_layout
 
-\begin_layout Itemize
-(Optional) the Parallel HDF5 library
+\begin_layout LyX-Code
+$
 \end_layout
 
 \begin_layout Standard
-For more information, see Section 
-\begin_inset LatexCommand \ref{sec:Installing-without-Pyre}
+On Linux, if the 
+\family typewriter
+cc
+\family default
+ command is not found, install GCC using the package manager for your distributi
+on.
+\end_layout
 
+\begin_layout Standard
+The Mac OS X version of GCC is included in a software development suite
+ called Xcode.
+ Xcode is available as a free download at the 
+\begin_inset LatexCommand \htmlurl[Apple Developer Connection]{http://developer.apple.com/}
+
 \end_inset
 
 .
 \end_layout
 
 \begin_layout Subsection
-Compilers
+MPI Library
 \end_layout
 
 \begin_layout Standard
-On all supported systems, C and C++ compilers are readily available.
- If you are using GCC, you need version 3 or later.
+CitcomS requires a library which implements the MPI standard (either version
+ 1 or 2).
+ Several free, open-source implementations of MPI are available.
 \end_layout
 
-\begin_layout Subsection
-MPI
-\end_layout
-
 \begin_layout Standard
-MPICH is a freely available, portable implementation of MPI.
- For more information, visit the 
-\begin_inset LatexCommand \htmlurl[MPICH home page]{www-unix.mcs.anl.gov/mpi/mpich}
+A popular choice is 
+\begin_inset LatexCommand \htmlurl[MPICH]{http://www-unix.mcs.anl.gov/mpi/mpich/}
 
 \end_inset
 
 .
+ Installing MPICH from source involves walking through the standard GNU
+ build procedure (
+\family typewriter
+configure && make && make install
+\family default
+).
 \end_layout
 
-\begin_layout Quote
+\begin_layout Standard
+Linux users may have a prebuilt MPI package available for their distribution.
+ On Mac OS X, the Fink package manager offers a prepackaged version of 
+\begin_inset LatexCommand \htmlurl[LAM/MPI]{http://www.lam-mpi.org/}
 
-\series bold
-Note for Mac OS X Users
-\series default
-: You will need Xcode, which is freely available from 
-\begin_inset LatexCommand \htmlurl[Apple]{developer.apple.com}
-
 \end_inset
 
-.
- Instead of using MPICH, you will probably want to use 
-\begin_inset LatexCommand \htmlurl[LAM/MPI]{www.lam-mpi.org}
+; so if you have 
+\begin_inset LatexCommand \htmlurl[Fink]{http://fink.sourceforge.net/}
 
 \end_inset
 
-.
- LAM/MPI is available as a Fink package; if you have 
-\begin_inset LatexCommand \htmlurl[Fink]{fink.sourceforge.net}
-
-\end_inset
-
  installed, simply enter the following command from a Terminal window to
  install LAM/MPI:
 \end_layout
@@ -1455,34 +1491,157 @@
 $ fink install lammpi lammpi-dev
 \end_layout
 
+\begin_layout Subsubsection*
+MPI C Compiler Command
+\end_layout
+
+\begin_layout Standard
+Once you have an MPI library installed, make sure its C complier command
+ is on your PATH.
+ Unfortunately, the name of this command varies from one MPI implementation
+ to the next.
+ The CitcomS configuration script searches for the following MPI C command
+ names:
+\end_layout
+
+\begin_layout LyX-Code
+mpicc hcc mpcc mpcc_r mpxlc cmpicc
+\end_layout
+
 \begin_layout Subsection
 Python
 \end_layout
 
 \begin_layout Standard
-You can download Python from the 
-\begin_inset LatexCommand \htmlurl[Python website]{www.python.org}
+Your system may already have a suitable Python interpreter installed.
+ To check, type the 'python' command:
+\end_layout
 
+\begin_layout LyX-Code
+$ python -V
+\end_layout
+
+\begin_layout LyX-Code
+Python 2.3.4
+\end_layout
+
+\begin_layout Standard
+Mac OS X 10.3 and later ships with a suitable version of Python preinstalled.
+ If you're using an older version of Mac OS X, or for more information in
+ general, see 
+\begin_inset LatexCommand \htmlurl[Python on the Mac]{http://www.python.org/download/mac/}
+
 \end_inset
 
-.
- If your system is running a recent release of Linux or Mac OS X, chances
- are you already have a suitable Python interpreter installed.
- To check, type the 'python' command:
+ at the Python web site.
 \end_layout
 
+\begin_layout Standard
+On Linux, simply install the binary system package available for your distributi
+on.
+ Be sure to select the Python development package (typically called 
+\family typewriter
+python-dev
+\family default
+) in addition to the core Python package -- even if you don't plan on doing
+ any Python software development.
+ The development package contains the Python include files, which are necessary
+ for building CitcomS.
+\end_layout
+
+\begin_layout Standard
+If you are working on a cluster and 
+\family typewriter
+python
+\family default
+ is too old, try poking around a little.
+ Sometimes multiple versions of Python are installed on the same system:
+\end_layout
+
 \begin_layout LyX-Code
 $ python -V
 \end_layout
 
 \begin_layout LyX-Code
-Python 2.3.4
+Python 2.2.3
 \end_layout
 
 \begin_layout LyX-Code
+$ which python
+\end_layout
 
+\begin_layout LyX-Code
+/usr/bin/python
 \end_layout
 
+\begin_layout LyX-Code
+$ ls /usr/bin/python*
+\end_layout
+
+\begin_layout LyX-Code
+/usr/bin/python /usr/bin/python2 /usr/bin/python2.2
+\end_layout
+
+\begin_layout LyX-Code
+/usr/bin/python24 /usr/bin/python2.4
+\end_layout
+
+\begin_layout LyX-Code
+$
+\end_layout
+
+\begin_layout Standard
+In the above scenario, it is useful to create an alias to the newer Python:
+\end_layout
+
+\begin_layout LyX-Code
+$ cd ~/bin
+\end_layout
+
+\begin_layout LyX-Code
+$ ln -s /usr/bin/python2.4 python
+\end_layout
+
+\begin_layout LyX-Code
+$ cd
+\end_layout
+
+\begin_layout LyX-Code
+$ hash -r
+\end_layout
+
+\begin_layout LyX-Code
+$ which python
+\end_layout
+
+\begin_layout LyX-Code
+~/bin/python
+\end_layout
+
+\begin_layout LyX-Code
+$ python -V
+\end_layout
+
+\begin_layout LyX-Code
+Python 2.4.1
+\end_layout
+
+\begin_layout LyX-Code
+$
+\end_layout
+
+\begin_layout Standard
+If absolutely necessary, one can easily build Python from source using a
+ C compiler.
+ You can download Python from the 
+\begin_inset LatexCommand \htmlurl[Python website]{www.python.org}
+
+\end_inset
+
+.
+ 
+\end_layout
+
 \begin_layout Section
 Downloading and Unpacking Source
 \end_layout
@@ -1541,31 +1700,35 @@
 \family typewriter
 cd
 \family default
-) to the directory containing the CitComS source and type .
+) to the directory containing the CitComS source
 \family typewriter
-/configure
-\family default
- to configure the package for your system
+.
 \newline
 
 \newline
+$ cd CitcomS-2.1.0
+\end_layout
 
+\begin_layout Enumerate
+Type .
 \family typewriter
-$ cd CitcomS-2.1.0
+/configure
 \family default
+ to configure the package for your system
+\family typewriter
+.
+\newline
 
 \newline
-
-\family typewriter
 $ ./configure
 \end_layout
 
 \begin_layout Enumerate
-Type '
+Type 
 \family typewriter
 make
 \family default
-' to build the package.
+ to build the package.
 \family typewriter
 
 \newline
@@ -1574,25 +1737,93 @@
 $ make
 \end_layout
 
-\begin_layout Enumerate
-Become 
+\begin_layout Standard
+If you are content to run CitcomS from the build directory, then you are
+ done.
+ Upon successful completion, the 
 \family typewriter
+make
+\family default
+ command creates a script called 
+\family typewriter
+citcoms
+\family default
+ in the top-level build directory (the directory in which you ran 
+\family typewriter
+make
+\family default
+); this is the script you will use to run CitcomS.
+ You may wish to add the directory containing the 
+\family typewriter
+citcoms
+\family default
+ script to your 
+\family typewriter
+PATH
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+For more details about 
+\family typewriter
+configure
+\family default
+, see the Configuration section below.
+\end_layout
+
+\begin_layout Subsubsection
+Installing to a Secondary Location
+\end_layout
+
+\begin_layout Standard
+Optionally, after building CitcomS, you can install it to a secondary location
+ using the 
+\family typewriter
+make install
+\family default
+ command.
+\end_layout
+
+\begin_layout Quotation
+
+\series bold
+Note:
+\series default
+ The following is not recommended if you plan on modifying the CitcomS source.
+\end_layout
+
+\begin_layout Standard
+By default, CitcomS is configured to install under 
+\family typewriter
+/usr/local
+\family default
+, which requires that you become 
+\family typewriter
 root
 \family default
- and type 
+ before issuing the 
 \family typewriter
 make install
 \family default
- to install CitComS.
-\newline
+ command.
+\end_layout
 
-\newline
+\begin_layout LyX-Code
 
 \family typewriter
 $ su
-\newline
+\end_layout
+
+\begin_layout LyX-Code
+
+\family typewriter
 Password:
-\newline
+\end_layout
+
+\begin_layout LyX-Code
+
+\family typewriter
 # make install
 \end_layout
 
@@ -1629,57 +1860,37 @@
 \end_layout
 
 \begin_layout Standard
-For more details about 
+The above commands will install CitcomS under 
 \family typewriter
-configure
+$HOME/cig
 \family default
-, see the Configuration section below.
-\end_layout
-
-\begin_layout Quote
-
-\series bold
-NOTE:
-\series default
- If you install as an ordinary user using 
-\family typewriter
---prefix=PREFIX
-\family default
- be mindful of the fact that you may have to set various environment variables
- in order for CitComS to function properly under the given 
-\family typewriter
-PREFIX
-\family default
 .
- First, you will want to add 
+ Afterwards, you may wish to add 
 \family typewriter
 PREFIX/bin
 \family default
- to your 
+ (
 \family typewriter
-PATH.
-
+$HOME/cig/bin
 \family default
- You may need or want to add 
+, in this example) to your 
 \family typewriter
-PREFIX/lib/python2.3/site-packages
+PATH
 \family default
- to your 
-\family typewriter
-PYTHONPATH
-\family default
 .
- (Change the path name accordingly if your python is not of version 2.3.x.)
- Finally, on some obscure Unix systems, you may need to add 
+\end_layout
+
+\begin_layout Standard
+After running 
 \family typewriter
-PREFIX/lib
+make install
 \family default
- to your 
+, you may -- if desired -- run 
 \family typewriter
-LD_LIBRARY_PATH
+make clean
 \family default
- (or equivalent).
- 
+ in the build directory to save disk space.
+ You are also free to delete the source/build directory altogether.
 \end_layout
 
 \begin_layout Section
@@ -1699,19 +1910,11 @@
 Makefile
 \family default
  in each source directory of the package.
- It also generates one or more 
+ It also generates a 
 \family typewriter
-portinfo
-\family default
- header files, which contain system-dependent definitions (
-\family typewriter
-portinfo
-\family default
- is equivalent to 
-\family typewriter
 config.h
 \family default
- in other open-source software packages).
+ header file, which contains system-dependent definitions.
  
 \end_layout
 
@@ -1732,9 +1935,54 @@
 \family default
  is unable to guess the value a certain parameter, you may have to specify
  the correct value by hand.
+\end_layout
+
+\begin_layout Quote
+
+\series bold
+Important:
+\series default
+ If the 
+\family typewriter
+configure
+\family default
+ script fails, and you don't know what went wrong, examine the log file
  
+\family typewriter
+config.log
+\family default
+.
+ This file contains a detailed transcript of all the checks 
+\family typewriter
+configure
+\family default
+ performed.
+ Most importantly, it includes the error output (if any) from your compiler.
+ When seeking help for 
+\family typewriter
+configure
+\family default
+ failures on the 
+\begin_inset LatexCommand \htmlurl[CIG Mantle Convection Mailing List]{cig-mc at geodynamics.org}
+
+\end_inset
+
+, please send 
+\family typewriter
+config.log
+\family default
+ as an attachment.
 \end_layout
 
+\begin_layout Standard
+The 
+\family typewriter
+configure
+\family default
+ script will automatically check for needed Python dependencies, and, if
+ necessary, download them from the Internet.
+\end_layout
+
 \begin_layout Subsection
 Configure Usage
 \end_layout
@@ -1778,7 +2026,7 @@
 \end_layout
 
 \begin_layout LyX-Code
-$ ./configure CXX=icpc # compile C++ using the Intel compiler
+$ ./configure CC=icc # use the Intel compiler
 \end_layout
 
 \begin_layout Standard
@@ -1893,7 +2141,14 @@
 \begin_inset Text
 
 \begin_layout Standard
-C compiler command
+C compiler command.
+ This is usually set to the name of an MPI wrapper command.
+ See Section 
+\begin_inset LatexCommand \ref{sec:MPI-Configuration}
+
+\end_inset
+
+ for details and examples.
 \end_layout
 
 \end_inset
@@ -1904,56 +2159,44 @@
 \begin_inset Text
 
 \begin_layout Standard
-CXX
+CPPFLAGS
 \end_layout
 
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_layout Standard
-C++ compiler command
+C preprocessor flags; e.g., 
+\family typewriter
+-I<dir>
+\family default
+ if you have headers in a nonstandard directory.
 \end_layout
 
 \end_inset
 </cell>
 </row>
-<row topline="true" bottomline="true">
+<row topline="true">
 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_layout Standard
-MPICC
+LDFLAGS
 \end_layout
 
-\begin_layout Standard
-MPICXX
-\end_layout
-
-\begin_layout Standard
-MPIINCLUDES
-\end_layout
-
-\begin_layout Standard
-MPILIBS
-\end_layout
-
 \end_inset
 </cell>
-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
 \begin_inset Text
 
 \begin_layout Standard
-These variables collectively specify how to build MPI programs.
- The variables MPICC and MPICXX specify compiler commands; MPIINCLUDES specifies
- preprocessor flags, and MPILIBS specifies linker flags.
- See Section 
-\begin_inset LatexCommand \ref{sec:MPI-Configuration}
-
-\end_inset
-
- for details and examples.
+linker flags; e.g., 
+\family typewriter
+-L<dir>
+\family default
+ if you have libraries in a nonstandard directory.
 \end_layout
 
 \end_inset
@@ -1984,73 +2227,90 @@
 \family typewriter
 configure
 \family default
- will search for MPI wrappers (such as
+ will search for a C compiler using your 
 \family typewriter
- mpicxx/mpic++
+PATH
 \family default
- and 
+ environment variable.
+ It prefers MPI wrapper commands (such as
 \family typewriter
-mpicc
+ mpicc
 \family default
-) using your PATH environment variable.
- You may specify MPI wrappers manually using the variables MPICC and MPICXX.
- If found, the wrappers will be used to compile MPI-related source, and
- CC and CXX will default to underlying C/C++ compiler commands (e.g., CC will
- default to the result of 
+) to ordinary compiler commands (such as 
 \family typewriter
-mpicc -compile_info
+cc
 \family default
- if you are using MPICH).
- You may also set CC and CXX manually.
- The commands specified by CXX and CC are used to compile ordinary C/C++
- source, and for linking shared libraries.
+ or 
+\family typewriter
+gcc
+\family default
+).
+ You may specify the compiler command name manually using the 
+\family typewriter
+CC
+\family default
+ variable:
 \end_layout
 
-\begin_layout Subsubsection
-Manually Specifying MPI Wrappers
-\end_layout
-
 \begin_layout LyX-Code
-$ ./configure 
-\backslash
-
+$ ./configure CC=/opt/mpich-1.2.6/bin/mpicc
 \end_layout
 
-\begin_layout LyX-Code
-MPICC=/opt/mpich-1.2.6/bin/mpicc 
-\backslash
-
-\end_layout
-
-\begin_layout LyX-Code
-MPICXX=/opt/mpich-1.2.6/bin/mpicxx
-\end_layout
-
 \begin_layout Standard
-If MPI wrappers are not found, 
+The 
 \family typewriter
 configure
 \family default
- will set MPICC and MPICXX to CC and CXX, respectively (i.e., the same commands
- used to build ordinary C/C++ source).
- Then, configure will attempt to find 
+ script will test for the presence of the MPI header (
 \family typewriter
 mpi.h
 \family default
- and an MPI library in the standard locations (e.g., 
+) and an MPI library using the C compiler command.
+ If 
 \family typewriter
+CC
+\family default
+ is set to an MPI wrapper command such as 
+\family typewriter
+mpicc
+\family default
+, and/or the MPI header and library files are installed in a standard location
+ (i.e., 
+\family typewriter
 /usr/include
 \family default
  and 
 \family typewriter
 /usr/lib
 \family default
-) using the ordinary compiler.
- In this scenario, if your MPI header files and libraries are installed
- in a non-standard location, you must specify MPIINCLUDES and MPILIBS, so
- that the compiler can find the MPI header files and libraries.
+), these 
+\family typewriter
+configure
+\family default
+ tests should succeed without difficulty.
 \end_layout
 
+\begin_layout Standard
+But if CC is set to an ordinary compiler command name (e.g., 
+\family typewriter
+cc
+\family default
+ or 
+\family typewriter
+gcc
+\family default
+) and MPI is installed in a non-standard location, you must manually specify
+ 
+\family typewriter
+CPPFLAGS
+\family default
+ and 
+\family typewriter
+LDFLAGS
+\family default
+, so that the compiler can find the MPI header files and libraries.
+\end_layout
+
 \begin_layout Subsubsection
 Manually Specifying MPI 
 \family typewriter
@@ -2070,13 +2330,13 @@
 \end_layout
 
 \begin_layout LyX-Code
-MPIINCLUDES="-I/opt/mpich-1.2.6/include" 
+CPPFLAGS="-I/opt/mpich-1.2.6/include" 
 \backslash
 
 \end_layout
 
 \begin_layout LyX-Code
-MPILIBS="-L/opt/mpich-1.2.6/lib -lmpich"
+LDFLAGS="-L/opt/mpich-1.2.6/lib -lmpich"
 \end_layout
 
 \begin_layout Subsubsection
@@ -2104,61 +2364,40 @@
 \end_layout
 
 \begin_layout LyX-Code
-CXX=icpc 
+CPPFLAGS="-I/opt/mpich-1.2.6/include" 
 \backslash
 
 \end_layout
 
 \begin_layout LyX-Code
-MPIINCLUDES="-I/opt/mpich-1.2.6/include" 
-\backslash
-
+LDFLAGS="-L/opt/mpich-1.2.6/lib -lmpich"
 \end_layout
 
-\begin_layout LyX-Code
-MPILIBS="-L/opt/mpich-1.2.6/lib -lmpich"
-\end_layout
-
 \begin_layout Standard
-Some words of caution when specifying the MPI configuration:
-\end_layout
-
-\begin_layout Itemize
-Specifying MPI commands and flags in general-purpose 
+Note that it may be necessary to specify the name of the MPI library itself
+ in 
 \family typewriter
-configure
+LDFLAGS
 \family default
- variables (such as CC, CXX, CPPFLAGS, and LDFLAGS) may work on some systems,
- but is not recommended unless you happen to have a shared version of the
- MPI library installed on your system (
+ using the 
 \family typewriter
-libmpich.so
+-l
 \family default
- or 
-\family typewriter
-libmpi.so
-\family default
-).
+ compiler option.
+ If a library name is not given -- or if the given option doesn't work --
  
-\end_layout
-
-\begin_layout Itemize
-If you explicitly specify both MPICXX and CXX, CXX will be used to compile
- all C++ source; MPICXX is invoked merely to determine the correct values
- for MPIINCLUDES and MPILIBS (if necessary).
- Likewise, if you explicitly specify both MPICC and CC, CC will be used
- to compile all C source; MPICC will only be used to determine the MPI flags.
-\end_layout
-
-\begin_layout Itemize
-Configuring CitComS with a different C++ compiler than was used to configure
- your MPI library may cause link errors.
- However, the 
 \family typewriter
 configure
 \family default
- script attempts to detect this scenario and automatically work around the
- problem for you.
+ will automatically try linking using 
+\family typewriter
+-lmpi
+\family default
+ and, if that fails, 
+\family typewriter
+-lmpich
+\family default
+.
 \end_layout
 
 \begin_layout Section
@@ -2347,123 +2586,53 @@
 
 \begin_layout Standard
 If you are installing CitComS on a cluster with a batch system, you can
- configure CitComS such that the Pyre-based command 
+ configure Pyre such that the 
 \family typewriter
 citcoms
 \family default
- automatically submits jobs to the batch queue.
- CitComS contains support for the LSF, PBS, and Globus batch systems.
+ command automatically submits jobs to the batch queue.
+ Pyre contains support for the LSF, PBS, and Globus batch systems.
 \end_layout
 
 \begin_layout Standard
-The 
+The command to submit a batch job depends upon the particular batch system
+ used.
+ Further, the command used in a batch script to launch an MPI program varies
+ from one cluster to the next.
+ This command can vary between two clusters, even if the clusters use the
+ same batch system! On some systems, 
 \family typewriter
-configure
-\family default
- script searches for the 
-\family typewriter
-bsub
-\family default
-, 
-\family typewriter
-qsub
-\family default
-, and 
-\family typewriter
-globusrun
-\family default
- batch commands.
- If one of these is found, CitComS is configured to use the corresponding
- batch system (LSF, PBS, and Globus, respectively) instead of launching
- MPI jobs directly using 
-\family typewriter
 mpirun
 \family default
-.
- Run 
-\family typewriter
-./configure --help
-\family default
- for information on how to configure the batch system parameters manually.
-\end_layout
-
-\begin_layout Standard
-The proper commands to use in a batch script varies from one cluster to
- the next.
- On some systems, 
-\family typewriter
-mpirun
-\family default
  is invoked directly from the batch script.
  On others, a special wrapper is used instead.
- Therefore, after successfully installing CitComS, you must edit the following
- XML configuration file: 
 \end_layout
 
-\begin_layout LyX-Code
-PREFIX/etc/CitcomS/CitcomS.pml
+\begin_layout Standard
+Properly configured, Pyre can handle job submission automatically, insulating
+ users from the details of the batch system and the site configuration.
+ This feature has the most value when the system administrator installs
+ a global Pyre configuration file on the cluster, for the benefit of all
+ users, and all Pyre-based applications.
 \end_layout
 
 \begin_layout Standard
-where PREFIX is the directory under which you installed CitComS (default
+For more information on configuring Pyre for your batch system, see the
  
-\family typewriter
-/usr/local
-\family default
-).
- Edit the defaults as appropriate for your system.
- For example, if you are using LSF, first verify that CitComS is configured
- to use LSF: 
-\end_layout
+\begin_inset LatexCommand \url[Pythia page]{http://www.geodynamics.org/cig/software/packages/cs/pythia/}
 
-\begin_layout LyX-Code
-<property name="launcher">lsf</property>
-\end_layout
+\end_inset
 
-\begin_layout Standard
-Next, edit the LSF section: 
-\end_layout
-
-\begin_layout LyX-Code
-<component name="lsf"> 
-\end_layout
-
-\begin_layout LyX-Code
-      <property name="command">mpijob mpirun</property>
-\end_layout
-
-\begin_layout LyX-Code
-      <property name="batch-command">bsub</property> 
-\end_layout
-
-\begin_layout LyX-Code
-</component>
-\end_layout
-
-\begin_layout Standard
-In particular, set the 
+ on the CIG web site.
+ You may find the 
 \family typewriter
-command
+--scheduler.dry
 \family default
- property to the correct command for launching MPI jobs from a batch script
- on your system.
- For example:
-\end_layout
-
-\begin_layout LyX-Code
-<property name="command">pam -g 1 gmmpirun_wrapper</property>
-\end_layout
-
-\begin_layout Standard
-You may find the 
-\family typewriter
---launcher.dry
-\family default
  option useful while debugging the batch system configuration: 
 \end_layout
 
 \begin_layout LyX-Code
-citcoms --launcher.dry
+citcoms --scheduler.dry
 \end_layout
 
 \begin_layout Standard
@@ -2498,12 +2667,12 @@
 
 \begin_layout Standard
 The only system requirements for this configuration are an MPI library and
- a decent C compiler.
- The final 
+ a C compiler.
+ The 
 \family typewriter
-make install
+make 
 \family default
- step will install two command-line tools: 
+command will build two command-line tools, 
 \family typewriter
 CitcomSFull
 \family default
@@ -2511,7 +2680,7 @@
 \family typewriter
 CitcomSRegional
 \family default
-.
+, for running the full solver and the regional solver, respectively.
 \end_layout
 
 \begin_layout Section
@@ -2553,7 +2722,7 @@
 \end_layout
 
 \begin_layout Standard
-First you must have a Subversion client installed.
+First, you must have a Subversion client installed.
  To check, type 
 \family typewriter
 svn
@@ -2623,46 +2792,45 @@
 \end_layout
 
 \begin_layout Standard
-Like the release version, the development version depends upon Pythia v0.8.
- In addition, the development version also depends upon a package called
- Exchanger.
- Unless you plan to build only the legacy CitComS tools (see Section 
-\begin_inset LatexCommand \ref{sec:Installing-without-Pyre}
+This will create the local directory 
+\family typewriter
+CitcomS
+\family default
+ (if it doesn't already exist) and fill it with the latest CitcomS source
+ from the CIG software repository.
+\end_layout
 
-\end_inset
-
- earlier in this chapter), you will need to check out the Pythia and Exchanger
- packages as well.
- Like CitComS, Exchanger is available from the 
-\begin_inset LatexCommand \htmlurl[Geodynamics website]{www.geodynamics.org}
-
-\end_inset
-
+\begin_layout Standard
+The CitcomS directory thus created is called a 
+\emph on
+working copy
+\emph default
 .
- For convenience, Pythia is also available from the 
-\begin_inset LatexCommand \htmlurl[Geodynamics website]{www.geodynamics.org}
-
-\end_inset
-
-.
- To check out Pythia and Exchanger, use the following commands:
+ To merge the lastest changes into an existing working copy, use the 
+\family typewriter
+svn update
+\family default
+ command:
 \end_layout
 
 \begin_layout LyX-Code
-(TODO: update this description)$ svn checkout svn://geodynamics.org/cig/vendor/py
-thia/v0.8 pythia-0.8 
+$ cd CitcomS
 \end_layout
 
 \begin_layout LyX-Code
-$ svn checkout svn://geodynamics.org/cig/cs/Exchanger/trunk Exchanger
+$ svn update
 \end_layout
 
+\begin_layout Standard
+This will preserve any local changes you have made to your working copy.
+\end_layout
+
 \begin_layout Subsection
 Generating the GNU Build System
 \end_layout
 
 \begin_layout Standard
-Your working directory should now contain three subdirectories:
+Your working directory should now contain a fresh checkout of CitcomS:
 \end_layout
 
 \begin_layout LyX-Code
@@ -2670,26 +2838,13 @@
 \end_layout
 
 \begin_layout LyX-Code
-CitcomS Exchanger pythia-0.8
+CitcomS
 \end_layout
 
-\begin_layout Standard
-Each of the three packages must be configured and built separately, in the
- following order:
+\begin_layout LyX-Code
+$
 \end_layout
 
-\begin_layout Enumerate
-pythia-0.8
-\end_layout
-
-\begin_layout Enumerate
-Exchanger
-\end_layout
-
-\begin_layout Enumerate
-CitComS
-\end_layout
-
 \begin_layout Standard
 But before you can run 
 \family typewriter
@@ -2702,13 +2857,13 @@
 , you must generate the necessary files using the GNU tools.
  The easiest way to do this is to run 
 \family typewriter
-autoreconf -i 
+autoreconf -i
 \family default
 :
 \end_layout
 
 \begin_layout LyX-Code
-$ cd pythia-0.8
+$ cd CitcomS
 \end_layout
 
 \begin_layout LyX-Code
@@ -2716,72 +2871,14 @@
 \end_layout
 
 \begin_layout LyX-Code
-$ ./configure --prefix=$HOME/cig
+$ ./configure
 \end_layout
 
 \begin_layout LyX-Code
 $ make
 \end_layout
 
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
 \begin_layout Standard
-Then, repeat this process for Exchanger and CitComS:
-\end_layout
-
-\begin_layout LyX-Code
-$ cd ../Exchanger
-\end_layout
-
-\begin_layout LyX-Code
-$ autoreconf -i
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --prefix=$HOME/cig
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout LyX-Code
-$ # set PYTHONPATH  
-\family roman
-[so that CitComS can find the newly installed Exchanger]
-\end_layout
-
-\begin_layout LyX-Code
-$ export PYTHONPATH=$HOME/cig/lib/python2.3/site-packages:$PYTHONPATH
-\end_layout
-
-\begin_layout LyX-Code
-$ cd ../CitcomS
-\end_layout
-
-\begin_layout LyX-Code
-$ autoreconf -i
-\end_layout
-
-\begin_layout LyX-Code
-$ ./configure --prefix=$HOME/cig
-\end_layout
-
-\begin_layout LyX-Code
-$ make
-\end_layout
-
-\begin_layout LyX-Code
-$ make install
-\end_layout
-
-\begin_layout Standard
 The 
 \family typewriter
 autoreconf



More information about the cig-commits mailing list