hypre/docs/dev_install.tex
2001-11-21 20:50:53 +00:00

386 lines
15 KiB
TeX

%==========================================================================
\chapter{Installation}
\label{Installation}
There are three types of \hypre{} installations that are updated and
maintained by members of the Scalable Linear Solvers project:
\begin{enumerate}
\item The "alpha" installation (designated by an "a" in the version number):
\begin{itemize}
\item intended to give users access to relatively recent changes.
\item updated somewhat frequently.
\item may be relatively unstable.
\item three old installations are retained.
\item installed on:
\begin{itemize}
\item CASC Sun workstation cluster
\item CASC Linux workstation cluster
\end{itemize}
\end{itemize}
\item The "beta" installation (designated by an "b" in the version number):
\begin{itemize}
\item intended to give users access to relatively recent changes.
\item intended to give users consistent access across several platforms.
\item may be relatively unstable.
\item three old installations are retained.
\item installed on:
\begin{itemize}
\item CASC Sun workstation cluster
\item CASC Linux workstation cluster
\item Compass Compaq cluster
\item TeraCluster Compaq cluster
\item Linux TeraCluster Compaq cluster
\item Blue-Pacific
\item Forest DEC cluster (classified)
\item Blue(Sky)-Pacific (classified)
\item White (classified)
\end{itemize}
\end{itemize}
\item The general release installation:
\begin{itemize}
\item intended to give users consistent access across several platforms.
\item updated less frequently than internal installation.
\item should be relatively stable.
\item three old installations are retained.
\item installed on:
\begin{itemize}
\item CASC Sun workstation cluster
\item CASC Linux workstation cluster
\item Compass Compaq cluster
\item TeraCluster Compaq cluster
\item Linux TeraCluster Compaq cluster
\item Blue-Pacific
\item Forest DEC cluster (classified)
\item Blue(Sky)-Pacific (classified)
\item White (classified)
\end{itemize}
\end{itemize}
\end{enumerate}
Two mailing list are available to inform users of the hypre
linear solver library when new releases become available.
Announcements about general releases made on the `hypre-announce'
mailing list, and announcements about beta releases are made on the
`hypre-beta-announce' list.
Subscriptions to either mailing list is handled throught the LLNL
Majordomo list server, Majordomo@lists.llnl.gov.i To add yourself
to a mailing list, send mail to <Majordomo@list.llnl.gov> with
the following command in the body of the email message:
subscribe hypre-announce
or
subscribe hypre-beta-announce
%==========================================================================
\section{Installation Procedures}
\label{Installation Procedures}
The installation is broken down into 2 parts:
\begin{itemize}
\item building the distribution (tar file)
\item installation
\end{itemize}
Build the \hypre{} distribution:
\begin{enumerate}
\item Set the version number in \file{utilities/HYPRE\_utilities.h}.
The version number, by convension, use the following syntax `M.mm.rr'.
Where the `M' is the major release number, `mm' is the minor
relases number, and the `rr' an update number. Alpha, and Beta
releases are denoted by the following sytanx `M.nn.rra' for
alpha releases, and `M.nn.rrb' for beta releases. The version
number is used for the name of the release creation and is used
in the tar file name and root directory for the distribution.
\item Create a symbolic tag for the current version
of the cvs repository. To create a generat release enter:
\kbd{cvs rtag -b VM-nn-rr linear\_solvers}. Note that a
general release requires that the cvs rtag branch option.
Version numbers are mapped into a valid rtag branch name by the
following conversion, `VM-nn-rr', note: the leading (capital)
`V' and the version number separated with `-' replacing
the `.'s. This convension will over come the strict cvs
tag name restrictions (e.g., begin with a letter, and no `.'s).
The version information during the install will be derived
from the main trunk archive using the information in the
file \file{utilites/HYPRE\_utilites.h}. Alpha, and Beta releases
are denoted by the following sytanx `VM-nn-rra' for alpha
releases, and `VM-nn-rrb' for beta releases. An alpha or
beta release do not make branches in the repository. For a beta
release the command would be similar to:
\kbd{cvs rtag VM-nn-rrb linear\_solvers}. Optionally, an rtag
can be made relative to a date or time. For example set the
rtag relative to last midnight enter:
\kbd{cvs rtag -D 0:0 VM-nn-rrb linear\_solvers}.
\item The distribution is created with the \kbd{mkdist}
Bourne-shell script located in the tools directory of the
\hypre{} repository. Typing \kbd{mkdist -help} will give
general usage info. Enter: \kbd{mkdist VM-nn-rr}. This checks
out the rtag version (step 2 above) from the repository,
reorganizes the file structure, build the documentation,
and creates the tar file \file{hypre-M.nn.rr.tar.gz}.
\end{enumerate}
Installing the \hypre{} distribution:
\begin{enumerate}
\item Copy the tar file \file{hypre-M.nn.rr.tar.gz} to the
appropriate systems, and locations for the install. For non-CASC
machines there are two install locations:
\begin{itemize}
\item \file{/usr/gapps/hypre/}\textit{canonical system name}
\item \file{/usr/casc/hypre/}\textit{canonical system name}
\end{itemize}
The \textit{canonical system name} is determined by
\kbd{config.guess}. The appropriate directory is found using
the command:
\begin{itemize}
\item \file{/usr/gapps/hypre/`/usr/gapps/hypre/config.guess`}
\item \file{/usr/casc/hypre/`/usr/gapps/hypre/config.guess`}
\end{itemize}
The user's of \hypre{} needn't deal with these details for the
Non-CASC systems, because the \file{/usr/apps/hypre} directory
will automatically be linked to the appropate hypre system
installation.
Copying the tar file on to an SCF machine requires going through
File Interchange System (FIS) see:
http://www-lc.llnl.gov:6336/dynaweb/LCdocs/fis/
\item Run the Bourne-shell install script kbd{mklibs} located in
the tools directory of the \hypre{} repository, a copy also
exist at the root level of the hypre install directory. Typing
kbd{mklibs -help} will provide usage information. Executing
kbd{mklibs} will untar the distribution, and build the hypre
libraries. The untaring of the distribution, creates a directory
\file{hypre-M.nn.rr} which contains the following subdirectories:
\begin{itemize}
\item \file{bin} contains hypre utilities
\item \file{docs} PostScript, and HTML documentation
\item \file{src} source code
\end{itemize}
The build process will create these directories:
\begin{itemize}
\item \file{debug} debug compiled lib, and include subdirectories
\item \file{include} include files
\item \file{lib} optimized compiled libraries
\end{itemize}
At a minimum an optimized and a debugged version of the library will
be generated. Optionally, OpenMP versions of the libraries will
be built and installed in a \file{threads}, and \file{threads/debug}
directory, assuming the target system supports OpenMP. The
user will see this located at: \file{/usr/apps/hypre/hypre-M.nn.rr}.
kbd{mklibs} script has an optional third argument kbd{install} which
will symbolically link the distribution to the `common' user
accessable directories, depending on the installion type
specified. Typical command to build a general distribution:\linebreak
kbd{mklibs -g hypre-M.nn.rr.tar.gz install}\linebreak
The results of this build would create the following links:\linebreak
\file{/usr/apps/hypre/bin -> /usr/gapps/hypre/.../hypre-M.nn.rr/bin}\linebreak
\file{/usr/apps/hypre/debug -> /usr/gapps/hypre/.../hypre-M.nn.rr/debug}\linebreak
\file{/usr/apps/hypre/docs -> /usr/gapps/hypre/.../hypre-M.nn.rr/docs}\linebreak
\file{/usr/apps/hypre/include -> /usr/gapps/hypre/.../hypre-M.nn.rr/include}\linebreak
\file{/usr/apps/hypre/lib -> /usr/gapps/hypre/.../hypre-M.nn.rr/lib}\linebreak
\file{/usr/apps/hypre/src -> /usr/gapps/hypre/.../hypre-M.nn.rr/src}\linebreak
\file{/usr/apps/hypre/threads -> /usr/gapps/hypre/.../hypre-M.nn.rr/threads}\linebreak
\file{/usr/apps/hypre/alpha -> /usr/gapps/hypre/.../hypre-M.nn.rr}\linebreak
\file{/usr/apps/hypre/beta -> /usr/gapps/hypre/.../hypre-M.nn.rr}\linebreak
A beta install command of:\linebreak
kbd{mklibs -b hypre-M.nn.rrb.tar.gz install}\linebreak
Would create the following links:\linebreak
\file{/usr/apps/hypre/alpha -> /usr/gapps/hypre/.../hypre-M.nn.rrb}\linebreak
\file{/usr/apps/hypre/beta -> /usr/gapps/hypre/.../hypre-M.nn.rrb}\linebreak
An alpha type install command of:\linebreak
kbd{mklibs -a hypre-M.nn.rra.tar.gz install}\linebreak
Would create the following links:\linebreak
\file{/usr/apps/hypre/alpha -> /usr/gapps/hypre/.../hypre-M.nn.rra}\linebreak
Note: in general, alpha releases are only released on CASC systems.
\end{enumerate}
%==========================================================================
\section{Installation Example}
\label{Installation Example}
The following is an example session creating a beta distribution:
\begin{ttfamily}
\begin{mdseries}
\linebreak
\$ \textbf{pwd}\linebreak
/home/hypre\linebreak
\$ \textbf{cvs checkout linear\_solvers}\linebreak
\begin{verbatim}
U linear_solvers/CHANGELOG
U linear_solvers/COPYRIGHT_and_DISCLAIMER
. . .
U linear_solvers/utilities/utilities.h
U linear_solvers/utilities/version
\end{verbatim}
\$ \textbf{cvs history -T}\linebreak
\begin{verbatim}
T 2000-10-12 20:27 +0000 treadway linear_solvers [V1-3-1b:A]
T 2001-01-11 20:58 +0000 treadway linear_solvers [V1-4-0b:A]
. . .
T 2001-07-27 16:57 +0000 treadway linear_solvers [V1-6-0:A]
T 2001-08-24 20:26 +0000 treadway linear_solvers [V1-7-0a:A]
\end{verbatim}
\$ \textbf{vi linear\_solvers/utilities/HYPRE\_utilities.h}\linebreak
\begin{verbatim}
. . .
#define HYPRE_Version() "HYPRE 1.7.0a $Date$ Compiled: " __DATE__ " " __TIME__
. . .
\end{verbatim}
\begin{bfseries}
\begin{verbatim}
#define HYPRE_Version() "HYPRE 1.7.0b $Date$ Compiled: " __DATE__ " " __TIME__}
\end{verbatim}
\end{bfseries}
"linear\_solvers/utilities/HYPRE\_utilities.h" 60 lines, 1570 characters\linebreak
\$ \textbf{cvs commit linear\_solvers/utilities/HYPRE\_utilities.h}\linebreak
\textbf{beta release 1.7.0b}\linebreak
\begin{verbatim}
CVS: ----------------------------------------------------------------------
CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in linear_solvers/utilities
CVS:
CVS: Modified Files:
CVS: HYPRE_utilities.h
CVS: ----------------------------------------------------------------------
~
""/tmp/cvsAAABga42v" 9 lines, 345 characters
Checking in linear_solvers/utilities/HYPRE_utilities.h;
/home/casc/repository/linear_solvers/utilities/HYPRE_utilities.h,v <-- HYPRE\_utilities.h
new revision: 2.2; previous revision: 2.1
done
\end{verbatim}
\$ \textbf{linear\_solvers/utilities/version -number}\linebreak
1.5.0b\linebreak
\$ \textbf{cvs rtag V1-7-0b linear\_solvers}\linebreak
\$ \textbf{./mkdist V1-7-0b}\linebreak
\begin{verbatim}
U linear_solvers/CHANGELOG
U linear_solvers/COPYRIGHT_and_DISCLAIMER
. . .
U linear_solvers/utilities/utilities.h
U linear_solvers/utilities/version
checking the hostname... perrin
checking the architecture... solaris
. . .
creating hypre-1.7.0b.tar file ...
\end{verbatim}
\$ \textbf{ls -l hypre-1.7*}\linebreak
\begin{verbatim}
-rw-rw-r-- 1 treadway treadway 1532225 Nov 13 07:32 hypre-1.7.0b.tar.gz
hypre-1.7.0b:
total 20
-rw-rw---- 1 treadway treadway 4384 Nov 13 07:32 CHANGELOG
-rw-rw---- 1 treadway treadway 1645 Nov 13 07:32 COPYRIGHT_and_DISCLAIMER
drwxrwxr-x 2 treadway treadway 512 Nov 13 07:32 bin
drwxrwxr-x 4 treadway treadway 512 Nov 13 07:32 docs
drwxrwxr-x 27 treadway treadway 1024 Nov 13 07:32 src
\end{verbatim}
\$ \textbf{scp hypre-1.7.0b.tar.gz blue:/usr/gapps/hypre}\linebreak
\$ \textbf{scp hypre-1.7.0b.tar.gz blue:/usr/casc/hypre}\linebreak
\$ \textbf{ftp fis}\linebreak
\begin{verbatim}
Connected to fis.llnl.gov.
220- NOTICE TO USERS
220-This is a Federal computer system and is the property of the
. . .
220 reebok.llnl.gov FTP server (Version LLNL-22 built 08/13/01 07:32:54) ready.
Name (fis:treadway):
331 Password required for treadway.
Password:
230 User treadway logged in.
\end{verbatim}
ftp> \textbf{cd TO}\linebreak
250 CWD command successful.\linebreak
ftp> \textbf{binary}\linebreak
200 Type set to I.\linebreak
ftp> \textbf{put hypre-1.7.0b.tar.gz}\linebreak
200 PORT command successful.\linebreak
150 Opening BINARY mode data connection for hypre-1.7.0b.tar.gz.\linebreak
226 Transfer complete.\linebreak
local: hypre-1.7.0b.tar.gz remote: hypre-1.7.0b.tar.gz\linebreak
1663281 bytes sent in 0.49 seconds (3342.89 Kbytes/s)\linebreak
ftp> \textbf{quit}\linebreak
221 Goodbye.\linebreak
\$ \textbf{ssh blue}\linebreak
. . .\linebreak
\$ \textbf{cd /usr/gapps/hypre/`/usr/gapps/hypre/config.guess`}\linebreak
\$ \textbf{ls}\linebreak
\begin{verbatim}
AUTOTEST hypre-1.2.0.tar.gz hypre-1.7.0a
STLport-4.0 hypre-1.3.1b hypre-1.7.0a.tar.gz
alpha hypre-1.4.0b include
beta hypre-1.4.0b.tar.gz lib
bin hypre-1.5.0b src
debug hypre-1.5.0b.tar.gz threads
docs hypre-1.6.0
hypre-1.2.0 hypre-1.6.0.tar.gz
\end{verbatim}
\$ \textbf{cp ../hypre-1.7.0b.tar.gz .}\linebreak
\$ \textbf{../mklibs -b hypre-1.7.0b.tar.gz}\linebreak
\begin{verbatim}
checking the hostname... blue
checking the architecture... aix
. . .
Very-cleaning FEI_mv ...
Very-cleaning test ...
\end{verbatim}
\$ \textbf{ls}\linebreak
\begin{verbatim}
AUTOTEST hypre-1.2.0.tar.gz hypre-1.7.0a
STLport-4.0 hypre-1.3.1b hypre-1.7.0a.tar.gz
alpha hypre-1.4.0b hypre-1.7.0b
beta hypre-1.4.0b.tar.gz hypre-1.7.0b.tar.gz
bin hypre-1.5.0b include
debug hypre-1.5.0b.tar.gz lib
docs hypre-1.6.0 src
hypre-1.2.0 hypre-1.6.0.tar.gz threads
\end{verbatim}
\$ \textbf{ls hypre-1.7.0b}\linebreak
\begin{verbatim}
CHANGELOG debug src
COPYRIGHT_and_DISCLAIMER docs threads
README include
bin lib
\end{verbatim}
\$ \textbf{ls beta/lib}\linebreak
libHYPRE\_DistributedMatrix.a\linebreak
libHYPRE\_DistributedMatrixPilutSolver.a\linebreak
libHYPRE\_Euclid.a\linebreak
libHYPRE\_FEI.a\linebreak
libHYPRE\_IJ\_mv.a\linebreak
libHYPRE\_LSI.a\linebreak
libHYPRE\_MatrixMatrix.a\linebreak
libHYPRE\_ParaSails.a\linebreak
libHYPRE\_blas.a\linebreak
libHYPRE\_parcsr\_ls.a\linebreak
libHYPRE\_parcsr\_mv.a\linebreak
libHYPRE\_seq\_mv.a\linebreak
libHYPRE\_sstruct\_ls.a\linebreak
libHYPRE\_sstruct\_mv.a\linebreak
libHYPRE\_struct\_ls.a\linebreak
libHYPRE\_struct\_mv.a\linebreak
libHYPRE\_superlu.a\linebreak
libHYPRE\_utilities.a\linebreak
libkrylov.a\linebreak
\$ \linebreak
\end{mdseries}
\end{ttfamily}