Installing Chaste on Oxford University Computing Laboratory machines
Last updated September 2013 for Fedora 18.
Where to install
We will install everything to /home/scratch/ as this is a local drive with plenty of space. Make a chaste-libs folder and set its path as an environment variable:
mkdir /home/scratch/chaste-libs export base='/home/scratch/chaste-libs'
ccache directory
By default, ccache is installed and the directory is set to ~/.ccache. As a network location this is very slow! Enter the following lines into a terminal to make a new folder in /home/scratch, delete ~/.ccache if it exists, and redirect it to the new one using a symbolic link.
mkdir /home/scratch/.ccache rm -rf ~/.ccache ln -s /home/scratch/.ccache ~/.ccache
Also, you can add the following to the bottom of your ~/.bashrc to set the ccache directory explicitly:
export CCACHE_DIR=/home/scratch/.ccache
Note that this will cause havoc if you log in to a machine which doesn't have a /home/scratch directory.
Fedora packages
A large number of dependencies are available as packages. Some on this list will already be installed.
sudo yum install scons gcc-gfortran gcc-c++ boost-devel boost-serialization openmpi openmpi-devel valgrind valgrind-openmpi valgrind-devel xerces-c-devel xsd subversion eclipse-subclipse eclipse-cdt eclipse-pydev subversion-javahl vtk-devel python-lxml python-amara python-rdflib python-dateutil
PETSc
The following are slightly modified from the PETSc install instructions in the main install guide, as we might as well use the openmpi we installed earlier. These instructions are for 64-bit machines. This also takes a while! Feel free to use a different version of PETSc, but check on InstallGuides/DependencyVersions first.
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH cd $base wget http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-3.4.2.tar.gz tar xzvf petsc-lite-3.4.2.tar.gz rm -f petsc-lite-3.4.2.tar.gz cd petsc-3.4.2/ export PETSC_DIR=`pwd` export PETSC_ARCH=linux-gnu ./configure --with-mpi-dir=/usr/lib64/openmpi/ --with-clanguage=cxx --with-x=0 --download-f-blas-lapack --download-metis --download-parmetis --download-sundials --download-hypre --download-hdf5
Then, do as it says and run the suggested make command (something like make PETSC_DIR=/home/scratch/chaste-libs/petsc-3.4.2 PETSC_ARCH=linux-gnu all).
We recommend you also make an optimised build.
export PETSC_ARCH=linux-gnu-opt ./configure --with-mpi-dir=/usr/lib64/openmpi/ --with-clanguage=cxx --with-x=0 --download-f-blas-lapack --download-metis --download-parmetis --download-sundials --download-hypre --download-hdf5 --CXXOPTFLAGS="-O3" --COPTFLAGS="-O3" --with-debugging=0
Again, run the suggested make command, and you're done!
Eclipse
When you first run eclipse it will ask you to set the workspace location. Set it to /home/scratch/workspace and let this be the default every time. On the splash screen go straight to the "workbench" by clicking the button at the top-right.
Set preferences:
- Unclick Project -> Build Automatically
- In Window->Preferences:
- Go to General->Editors->Text Editors and select "Insert spaces for tabs". Please make sure you do this'''
- Under C/C++->Code Style->Formatter, select 'BSD/Allman', then Edit... and set the Tab policy to 'Spaces only'. Please make sure you do this''' Alter the name of the Profile (e.g.g to "BSD/Allman Chaste") in order to save it.
- Other options under C/C++->Editor are worth browsing through.
Set up Chaste
- Use these guides to connect Eclipse to the subversion repository and checkout the source code: ChasteGuides/AccessCodeRepository
- You may need to make changes to the hostconfig system if you used different versions or paths to the above. By default computers in the department will automatically pick up python/hostconfig/machines/comlab.py, so if you need to make changes either edit this file, or copy it to python/hostconfig/local.py and make changes there.
- Very often, new users are unable to access the /python/hostconfig/machines directory to get the machines file. If this is you, copy and paste the following into python/hostconfig/local.py manually:
# Configuration for machines following Comlab install guide located at # https://chaste.cs.ox.ac.uk/trac/wiki/InstallGuides/Comlab """Copyright (c) 2005-2013, University of Oxford. All rights reserved. University of Oxford means the Chancellor, Masters and Scholars of the University of Oxford, having an administrative office at Wellington Square, Oxford OX1 2JD, UK. This file is part of Chaste. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Oxford nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ import os chaste_libs = '/home/scratch/chaste-libs' petsc_path = os.path.join(chaste_libs, 'petsc-3.4.2') petsc_build_name = 'linux-gnu' petsc_build_name_profile = 'linux-gnu' petsc_build_name_optimized = 'linux-gnu-opt' use_vtk = True use_cvode = True other_includepaths = ['/usr/include/vtk/'] other_libpaths = ['/usr/lib64/openmpi/lib/', '/usr/lib64/vtk/'] blas_lapack = ['flapack', 'fblas'] other_libraries = ['boost_system', 'boost_serialization', 'boost_filesystem', 'xerces-c', 'hdf5', 'z', 'parmetis', 'metis', 'HYPRE', 'vtkFiltering', 'vtkIO', 'vtkCommon', 'vtksys', 'vtkGraphics', 'sundials_cvode', 'sundials_nvecserial'] tools = {'mpirun': '/usr/lib64/openmpi/bin/mpirun', 'mpicxx': '/usr/lib64/openmpi/bin/mpicxx', 'xsd': 'xsdcxx'} def Configure(prefs, build): DetermineCvodeVersion(os.path.join(petsc_path,petsc_build_name,'include'))
- Happy Chasting!