Skip to content
Ilja edited this page Nov 2, 2015 · 14 revisions

Introduction

The following is a sequence of commands and their explanations of how to install PAMHD. The commands should be copied and pasted into a terminal. It is assumed that each command succeeds, if not you should probably not continue with the rest of the commands and instead figure out why the command failed. If you don't want to wait for every command to finish to see whether it succeeded you can start a new shell with e.g. bash -e, which will exit at the first error, and copy & paste all commands into the shell. You can request help by creating a new issue at https://github.com/nasailja/pamhd/issues/new.

These instruction require that git and mercurial are installed. A C++11 compiler is also required such as GCC-4.7 or later. Also make sure that $HOME/bin is in your PATH environment variable and $HOME/lib is in your LD_LIBRARY_PATH environment variable (for example in bash do a echo "export LD_LIBRARY_PATH=$HOME/lib:$LD_LIBRARY_PATH" >> $HOME/.bashrc, similarly for PATH and then log out and log back in).

Installing prerequisites

As all of the prerequisites are not available in package repositories these instructions install them all into your home directory. This also allows better control of the versions to download/install. If a package is available via the system's package manager you can edit paths to the install location of the package in the makefile (default is to use the paths in makefiles/homedir).

Header-only prerequisites

If you've downloaded these before you can use git pull or hg update in each directory respectively to update to newest version instead of downloading everything again.

mkdir -p $HOME/libraries
cd $HOME/libraries
git clone https://github.com/fmihpc/dccrg.git
git clone https://github.com/marcel-goldschen-ohm/EigenLab.git
hg clone https://bitbucket.org/eigen/eigen
git clone https://github.com/nasailja/gensimcell.git
git clone https://github.com/louisdx/cxx-prettyprint.git
git clone https://github.com/nasailja/phiprof.git
git clone https://github.com/nasailja/background_B.git

Prerequisites requiring compilation

muparserx

cd $HOME
git clone https://github.com/beltoforion/muparserx.git
cd muparserx
make CC=c++ CFLAGS='-O3 -std=c++11'
cp bin/libmuparserx.a $HOME/lib/
cp parser/*.h $HOME/include/
make clean
cd ..

cubature

cd $HOME
wget http://ab-initio.mit.edu/cubature/cubature-1.0.2.tgz
tar xf cubature-1.0.2.tgz
cd cubature-1.0.2
cc pcubature.c -c -O3
ar rcs $HOME/lib/libpcubature.a pcubature.o
cp cubature.h $HOME/include/
cd ..
rm -rf cubature-1.0.2

Zoltan

cd $HOME
wget http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions/zoltan_distrib_v3.8.tar.gz
tar xf zoltan_distrib_v3.8.tar.gz 2> /dev/null
mkdir zoltan-build
cd zoltan-build
../Zoltan_v3.8/configure --prefix=$HOME --enable-mpi --with-mpi-compilers --with-gnumake --with-id-type=ullong
make
make install
cd ..
rm -rf zoltan-build Zoltan_v3.8

Boost

cd $HOME
wget http://freefr.dl.sourceforge.net/project/boost/boost/1.57.0/boost_1_57_0.tar.bz2
tar xf boost_1_57_0.tar.bz2
cd boost_1_57_0
./bootstrap.sh
echo "using mpi ;" >> ./tools/build/src/user-config.jam
./b2
./b2 --prefix=$HOME install
cd ..
rm -rf boost_1_57_0

Open MPI

Some versions of Open MPI are known not to work, check the README file in the root directory of PAMHD. If you don't have a supported version of MPI, install one into your home directory:

cd $HOME
wget http://www.open-mpi.org/software/ompi/v1.8/downloads/openmpi-1.8.2.tar.bz2
tar xf openmpi-1.8.2.tar.bz2
cd openmpi-1.8.2
./configure --prefix=$HOME --enable-mpi-fortran=no
make
make install

PAMHD (and DCCRG) require a few libraries that must be compiled. As the required libraries are the same for both PAMHD and DCCRG follow the instructions on the DCCRG wiki for installing the prerequisites. First download the packages as instructed at https://github.com/fmihpc/dccrg/wiki/Install then install the libraries into your home directory as instructed at https://github.com/fmihpc/dccrg/wiki/Homedir. If you're on a supercomputer instructions for it might be listed at the bottom of the Install page.

Installing PAMHD

Download PAMHD:

cd $HOME
git clone https://github.com/nasailja/pamhd.git

and compile it running (GNU) make from the PAMHD root directory:

cd pamhd
make

Optionally select another environment to compile for:

make ENVIRONMENT_MAKEFILE=makefiles/macosx_macports_llvm

The makefiles directory houses all environment dependent makefiles, if none correspond to your environment request a new one by creating an issue at https://github.com/nasailja/pamhd/issues/new