[cig-commits] r16894 - in short/3D/PyLith/trunk/doc/install: . Cluster_CIT-garuda

brad at geodynamics.org brad at geodynamics.org
Thu Jun 3 21:56:55 PDT 2010


Author: brad
Date: 2010-06-03 21:56:55 -0700 (Thu, 03 Jun 2010)
New Revision: 16894

Modified:
   short/3D/PyLith/trunk/doc/install/Cluster_CIT-garuda.txt
   short/3D/PyLith/trunk/doc/install/Cluster_CIT-garuda/sample.bash.tools
   short/3D/PyLith/trunk/doc/install/README
Log:
Added installation instructions for garuda.

Modified: short/3D/PyLith/trunk/doc/install/Cluster_CIT-garuda/sample.bash.tools
===================================================================
--- short/3D/PyLith/trunk/doc/install/Cluster_CIT-garuda/sample.bash.tools	2010-06-04 03:28:24 UTC (rev 16893)
+++ short/3D/PyLith/trunk/doc/install/Cluster_CIT-garuda/sample.bash.tools	2010-06-04 04:56:55 UTC (rev 16894)
@@ -44,7 +44,7 @@
 export PETSC_ARCH=${TOOLS_FORMAT}_opt
 
 # PyLith development version
-export PYLITHDEV_DIR=/home/baagaard/pylith-dev/${TOOLS_FORMAT}
-export LD_LIBRARY_PATH=${PYLITHDEV_DIR}/lib:${LD_LIBRARY_PATH}
-export PYTHONPATH=${PYLITHDEV_DIR}/lib/python${PYTHON_VERSION}/site-packages:${PYTHONPATH}
-PATH=${PYLITHDEV_DIR}/bin:${PATH}
+export PYLITH_DIR=/home/baagaard/pylith-dev/${TOOLS_FORMAT}
+export LD_LIBRARY_PATH=${PYLITH_DIR}/lib:${LD_LIBRARY_PATH}
+export PYTHONPATH=${PYLITH_DIR}/lib/python${PYTHON_VERSION}/site-packages:${PYTHONPATH}
+PATH=${PYLITH_DIR}/bin:${PATH}

Modified: short/3D/PyLith/trunk/doc/install/Cluster_CIT-garuda.txt
===================================================================
--- short/3D/PyLith/trunk/doc/install/Cluster_CIT-garuda.txt	2010-06-04 03:28:24 UTC (rev 16893)
+++ short/3D/PyLith/trunk/doc/install/Cluster_CIT-garuda.txt	2010-06-04 04:56:55 UTC (rev 16894)
@@ -1,29 +1,311 @@
-Python
-  http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tgz
+======================================================================
+INSTRUCTIONS FOR INSTALLING PYLITH ON AN INTEL CLUSTER
+======================================================================
 
-cppunit
+These installation instructions assume suitable C/C++ and Fortran
+compilers have been installed along with MPI. MPI on clusters is often
+hardware dependent and should be installed by system
+administrators. We also assume that GNU autoconf tools and subversion
+have been installed.
 
-proj.4
+We install development versions of the CIG software. Installing using
+source tarballs is easy, simply replace downloading from the source
+repository and running autoreconf with downloading and unpacking the
+tarball.
 
-FIAT
+To make things easier, I create environment variables TOOLS_DIR,
+PYLITH_DIR, TOOLS_FORMAT, and PYTHON_VERSION. The TOOLS_FORMAT variable
+makes it easier to maintain multiple copies of packages built with
+different options (e.g., different compilers and different levels of
+optimization). Note that the python version should match the version
+of Python you will be using. If you don't know the version of python,
+run "python --version".
 
-swig
+See the files in the Cluster_CIT-garduda directory for the settings
+used to setup the environment variables using the bash shell. The
+$TOOLS_FORMAT environment variable is used to differentiate between
+packages built with different compilers and/or different optimization
+settings. In this case, TOOLS_FORMAT is intel-10.1. Because this is a
+cluster the tools are built for production runs using
+high-optimization level. You should setup your environment BEFORE
+building the packages.
 
-pythia
+Source files
 
-netcdf
+  Source files are placed under $HOME/src/PACKAGE.
 
-numpy
+Build directories
 
-spatialdata
+  Packages supporting building in separate directories are built in
+  $HOME/scratch/build/$TOOLS_FORMAT.
 
-mercurial
+Install directorires
 
-PETSc
+  Packages are installed in $HOME/tools/$TOOLS_FORMAT. PyLith is
+  installed in $HOME/pylith-dev/$TOOLS_FORMAT since we may want both
+  the development version and stable releases of PyLith installed.
 
-nemesis
 
-PyLith
+1. Python (http://www.python.org)
 
+  Download and unpack the tarball.
+    cd $HOME/src/python-2.6.5
+    wget http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tgz
+    tar -zxvf Python-2.6.5.tgz
 
+  Run configure in the build dir.
+    cd $HOME/scratch/build/$TOOLS_FORMAT/python-2.6
+    $HOME/src/python-2.6/Python-2.6.5/configure --prefix=${TOOLS_DIR} --enable-shared CC=icc CXX=icpc CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC"
 
+  Run "make" and "make install".
+    make
+    make install
+
+  Test Python
+    python
+
+  You should get the Python prompt and see the correct version and
+  time of the build.
+
+
+2. cppunit
+
+  Download and unpack the tarball.
+    cd $HOME/src/cppunit-1.12.1
+    wget http://downloads.sourceforge.net/cppunit/cppunit-1.12.1.tar.gz
+    tar -zxvf cppunit-1.12.1.tar.gz
+
+  Run configure in the build dir.
+    cd $HOME/scratch/build/$TOOLS_FORMAT/cppunit-1.12.1
+    $HOME/src/cppunit-1.12.1/cppunit-1.12.1/configure --prefix=${TOOLS_DIR} CC=icc CXX=icpc
+  
+  Run "make" and "make install"
+    make
+    make install
+
+
+3. proj.4
+
+  Download and unpack the tarball and horizontal datum files.
+    cd $HOME/src/proj-4.7.0
+    wget   http://download.osgeo.org/proj/proj-4.7.0.tar.gz
+    wget http://download.osgeo.org/proj/proj-datumgrid-1.5.zip
+    tar -zxvf proj-4.7.0.tar.gz
+    cd proj-4.7.0/nad
+    unzip ../../proj-datumgrid-1.5.zip
+
+  Run configure in the build dir.
+    cd $HOME/scratch/build/$TOOLS_FORMAT/proj-4.7.0
+    $HOME/src/proj-4.7.0/proj-4.7.0/configure --prefix=${TOOLS_DIR} CC=icc CFLAGS="-O3 -fPIC"
+
+  Unpack the datum files in the nad directory of the build.
+    cd nad
+    unzip $HOME/src/proj-4.7.0/proj-datumgrid-1.5.zip
+
+  Run "make" and "make install".
+    make
+    make install
+
+  Make sure the $HOME/tools/$TOOLS_FORMAT/share/proj contrains
+  "conus", "alaska", "nad27", and "nad83" among the other files.
+
+
+4. FIAT (version 0.3.5 is the most recent version known to work)
+
+  Depends on Python.
+
+  Download and unpack the tarball.
+    cd $HOME/src/fiat-0.3.5
+    wget http://www.fenics.org/pub/software/fiat/FIAT-0.3.5.tar.gz
+
+  Install using python.
+    cd FIAT-0.3.5
+    python setup.py install --prefix=$TOOLS_DIR
+
+  Test
+    python
+    import FIAT
+
+
+5. swig
+
+  Depends on Python.
+
+  Download and unpack the tarball.
+    cd $HOME/src/swig-1.3.40
+    wget http://downloads.sourceforge.net/project/swig/swig/swig-1.3.40/swig-1.3.40.tar.gz
+    tar -zxvf swig-1.3.40.tar.gz
+
+  Run configure in the build directory.
+    cd $HOME/scratch/build/$TOOLS_FORMAT/swig-1.3.40
+    $HOME/src/swig-1.3.40/swig-1.3.40/configure --prefix=${TOOLS_DIR} --with-python=`which python` --without-python3 CC=icc CXX=icpc CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC"
+
+  Run "make" and "make install".
+    make
+    make install
+
+
+6. netcdf
+
+  Download and unpack the tarball.
+    cd $HOME/src/netcdf-4.1.1
+    wget http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-4.1.1.tar.gz
+    tar -zxvf netcdf-4.1.1.tar.gz
+
+  Run configure in the build directory.
+    cd $HOME/scratch/build/$TOOLS_FORMAT/netcdf-4.1.1
+    $HOME/src/netcdf-4.1.1/netcdf-4.1.1/configure --prefix=${TOOLS_DIR} --enable-shared CC=icc CXX=icpc FC=ifort F77=ifort CFLAGS="-O2 -fPIC" CXXFLAGS="-O2 -fPIC" FFLAGS="-O2 -fPIC" FCFLAGS="-O2 -fPIC"
+
+  Run "make" and "make install".
+    make
+    make install
+
+
+7. pythia
+
+  Depends on Python.
+
+  Check out pythia from the publicly accessible CIG SVN repository.
+    cd $HOME/src
+    svn co http://geodynamics.org/svn/cig/cs/pythia/trunk pythia
+
+  Install using python.
+    cd pythia
+    python setup.py install --prefix=$TOOLS_DIR
+
+  Test
+    python
+    import pyre
+
+
+8. numpy
+
+  Depends on Python and math libraries.
+
+  Download and unpack the tarball.
+    cd $HOME/src/numpy-1.4.1
+    wget http://downloads.sourceforge.net/project/numpy/NumPy/1.4.1/numpy-1.4.1.tar.gz
+    
+  Edit the site.cfg file to use the Intel MKL library. If you don't
+  have the Intel MKL library, then use the system BLAS/LAPACK. These
+  settings differ among MKL releases.
+    [mkl]
+    library_dirs = /opt/intel/mkl/10.0.1.014/lib/em64t/
+    lapack_libs = mkl_lapack
+    mkl_libs = mkl, guide
+
+  Install using python.
+    cd numpy-1.4.1
+    python setup.py install --prefix=$TOOLS_DIR
+
+  Test
+    python
+    import numpy
+    import numpy.linalg
+
+  Note: If the build or install fails and you change the site.cfg
+  file, then you may need to remove the build directory in
+  $HOME/src/numpy-1.4.1/numpy-1.4.1 before rebuilding to insure the
+  old build files are not used.
+
+
+9. spatialdata
+
+  Depends on Python, SWIG, numpy, pythia, proj.4.
+
+  Check out spatialdata from the publicly accessible CIG SVN repository.
+    cd $HOME/src
+    svn co http://geodynamics.org/svn/cig/cs/spatialdata-0.1/trunk spatialdata-dev
+
+  Run configure in the build dir.
+    cd $HOME/scratch/build/$TOOLS_FORMAT/spatialdata-dev
+    ${HOME}/src/spatialdata/configure  --config-cache  --enable-swig --enable-testing --enable-pythia  --prefix=${TOOLS_DIR}  CPPFLAGS="-I${TOOLS_DIR}/include -DNDEBUG"  LDFLAGS="-L${TOOLS_DIR}/lib " CC=icc CXX=icpc CFLAGS="-O3 -fPIC" CXXFLAGS="-O3 -fPIC"
+
+  Edit libtool to fix Intel build issue.
+    Comment out setting postdep_objects.
+
+  Run "make" and "make install".
+    make
+    make install
+
+  Test
+    make check
+
+
+10. mercurial
+
+  Depends on Python.
+
+  Download and unpack the mercurial tarball.
+    cd $HOME/src/mercurial-1.5.2
+    wget http://mercurial.selenic.com/release/mercurial-1.5.2.tar.gz
+    tar -zxvf mercurial-1.5.2.tar.gz
+
+  Install using python.
+    cd mercurial-1.5.2
+    python setup.py install --prefix=$TOOLS_DIR
+  
+
+11. PETSc
+
+  Depends on MPI, Python, math libraries.
+
+  Checkout the development version of PETSc.
+    cd $HOME/src
+    hg clone http://petsc.cs.iit.edu/petsc/petsc-dev
+    cd petsc-dev/config
+    hg clone http://petsc.cs.iit.edu/petsc/BuildSystem BuildSystem
+
+  Run configure in the *source* directory.
+    cd $HOME/src/petsc-dev
+    config/configure.py --PETSC_ARCH=${TOOLS_FORMAT}_opt --with-debugging=0 --with-clanguage=c++ --with-mpi-compilers=1 --with-shared=1 --with-dynamic=1 --with-64-bit-points=1 --with-large-file-io=1 --with-blas-lib=[/opt/intel/mkl/10.0.1.014/lib/em64t/libmkl.so,/opt/intel/mkl/10.0.1.014/lib/em64t/libguide.so] --with-lapack-lib=/opt/intel/mkl/10.0.1.014/lib/em64t/libmkl_lapack.so --with-lgrind=0 --with-chaco=1 --download-chaco=1 --with-parmetis=1 --download-parmetis=1 --with-sieve=1 --with-boost=1 --download-boost=1 --with-ml=1 --download-ml=1
+
+  Run "make" and "make test"
+    make
+
+  "make test" may fail if the cluster is not setup to run MPI jobs on
+  the login node. However, the code test examples should build.
+
+
+12. nemesis
+
+  Depends on Python, MPI, pythia.
+
+  Check out nemesis from the publicly accessible CIG SVN repository.
+    cd $HOME/src
+    svn co http://geodynamics.org/svn/cig/cs/nemesis/trunk nemesis-dev
+
+  Run configure in the build dir.
+    cd $HOME/scratch/build/$TOOLS_FORMAT/nemesis-dev
+    $HOME/src/nemesis-dev/configure --prefix=${TOOLS_DIR}
+
+ Run "make" and "make install".
+    make
+    make install
+
+  Test
+    nemesis
+    import mpi
+
+  Running nemesis should startup Python. Nemesis is an MPI wrapper around Python.
+  
+ 
+13. PyLith (finally!)
+
+    Depends on all of the above.
+
+    Check out PyLith from the publicly accessible CIG SVN repository.
+    cd $HOME/src
+    svn co http://geodynamics.org/svn/cig/short/3D/PyLith/trunk pylith-dev
+
+  Run configure in the build dir.
+    cd $HOME/scratch/build/$TOOLS_FORMAT/pylith-dev
+    ${HOME}/src/pylith-dev/configure  --config-cache  --enable-swig --enable-testing --enable-cubit --prefix=${PYLITH_DIR}  CPPFLAGS="-I${TOOLS_DIR}/include -NDEBUG"  LDFLAGS="-L${TOOLS_DIR}/lib "  CC=mpicc CXX=mpiCC  CFLAGS="-O3 -fPIC" CXXFLAGS="-O3 -fPIC"
+
+ Run "make" and "make install".
+    make
+    make install
+
+  Test
+    make check
+

Modified: short/3D/PyLith/trunk/doc/install/README
===================================================================
--- short/3D/PyLith/trunk/doc/install/README	2010-06-04 03:28:24 UTC (rev 16893)
+++ short/3D/PyLith/trunk/doc/install/README	2010-06-04 04:56:55 UTC (rev 16894)
@@ -17,7 +17,9 @@
 managers do a poor job of maintaining compatibility across
 packages. For example, some Fink packages use Apple gcc while others
 use Fink gcc (these two versions of gcc are not necessarily
-compatible).
+compatible). On Darwin systems, we recommend using MacPorts as your
+package manager. It builds everything from source and generally does a
+better job of maintaining consistency than Fink.
 
 The particular versions of several packages used in the installation
 instructions vary depending on how when the package was installed and
@@ -29,14 +31,19 @@
 INSTRUCTIONS FOR VARIOUS PLATFORMS
 ======================================================================
 
-In cases where there are multiple instructions for a given platform,
-simply pick the procedure with which you are most comfortable. The
-*.sh files contain the commands to set the environment variables
-within a bash shell for the corresponding platform.
+We recommend setting up your source, build, and install directories as
+in the Cluster_CIT-garuda and Cluster_CIT-pangu examples. These are
+setup for relatively stable installations, whereas most of the other
+examples are setup for development work and testing with multiple
+versions of packages. As a result they are unnecessarily complex for
+most users. The other examples do provide a list of packages that can
+be installed via a package manager on Linux and Darwin systems.
 
 FILE                             PLATFORM
 
-MacBookPro_Aagaard.txt           Intel Mac (Apple gcc 4.0)
+Cluster_CIT-garuda.txt           Intel cluster (Intel compilers)
+Cluster_CIT-pangu.txt            Intel cluster (Intel compilers)
+MacBookPro_Aagaard.txt           Intel Mac (Apple gcc 4.2), MacPorts
 Linux_Fedora8-AMD64_Aagaard.txt  x86_64 machine running Fedora 8 (gcc 4.1.2)
 Cluster_Rocks-4.3-AMD64.txt      x86_64 cluster running Rocks 4.3 (gcc 3.4)
 
@@ -45,12 +52,13 @@
 ======================================================================
 
 Software packages that conform to the GNU build system and use a
-configure script can be built in a different directory from the source
-tree. A notable exception to this is MPICH2, which in most cases must
-be built in the source tree. Building in a directory separate from the
-source tree makes it easy to create builds for different compilers,
-optimization levels, etc. To build in a separate directory, simply run
-the configure script from the directory you wish to use as the
-top-level build directory. Run "make", etc. in the build directory. In
-cases where you need to generate the configure script via autoreconf,
-run "autoreconf -if" in the top-level source directory.
+configure script can usually be built in a different directory from
+the source tree. A notable exception to this is MPICH2, which in most
+cases must be built in the source tree. Building in a directory
+separate from the source tree makes it easy to create builds for
+different compilers, optimization levels, etc. To build in a separate
+directory, simply run the configure script from the directory you wish
+to use as the top-level build directory. Run "make", etc. in the build
+directory. In cases where you need to generate the configure script
+via autoreconf, run "autoreconf -if" in the top-level source
+directory.



More information about the CIG-COMMITS mailing list