386 lines
15 KiB
TeX
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}
|