Skip to content
This repository was archived by the owner on May 30, 2018. It is now read-only.

Installation

Ben Baker edited this page Dec 18, 2017 · 11 revisions

Prerequisites

Configuring with CMake

Below is a list of dependencies. It is strongly recommended to use vendor BLAS/LAPACK and MPI where available.

Configuring with GCC

After the dependencies have been obtained ParMT can be configured with a script like

#!/bin/sh
cmake ./ \
-DCMAKE_BUILD_TYPE=DEBUG \
-DMPI_C_INCLUDE_PATH=/path/to/mpi/include \
-DMPI_C_LIBRARIES=/pathto/mpi/lib/libmpi.so  \
-DPARMT_USE_INTEL=TRUE \
-DMKL_LIBRARY="/path/to/mkl/lib/intel64_lin/libmkl_intel_lp64.a;/path/to/mkl/lib/intel64_lin/libmkl_core.a;/path/to/mkl/lib/intel64_lin/libmkl_sequential.a" \
-DIPP_LIBRARY="/path/to/ipp/lib/intel64_lin/libipps.so;/path/to/ipp/lib/intel64_lin/libippvm.so;/path/to/ipp/lib/intel64_lin/libippcore.so" \
-DCMAKE_C_FLAGS="-g3 -O2 -Wall -fopenmp -std=gnu11" \
-DCMAKE_CXX_FLAGS="-g3 -O2 -Wall -fopenmp" \
-DCOMPEARTH_INCLUDE_DIR=/path/to/compearth/include \
-DCOMPEARTH_LIBRARY=/path/to/compearth/lib/libcompearth_shared.so \
-DIPP_INCLUDE_DIR=/path/to/ipp/include \
-DMKL_INCLUDE_DIR=/path/to/mkl/include \
-DISCL_LIBRARY=/path/to/libiscl/lib/libiscl_shared.so \
-DISCL_INCLUDE_DIR=/path/to/libiscl/include \
-DISPL_LIBRARY=/path/to/ispl/lib/libispl_shared.so \
-DISPL_INCLUDE_DIR=/path/to/ispl/include \
-DCPS_LIBRARY=/path/to/libcps/lib/libcps_shared.so \
-DCPS_INCLUDE_DIR=/path/to/libcps/include \
-DTTIMES_LIBRARY=/path/to/libttimes/lib/libttimes_shared.so \
-DTTIMES_INCLUDE_DIR=/path/to/libttimes/include \
-DSACIO_INCLUDE_DIR=/path/to/sacio/include \
-DSACIO_LIBRARY=/path/to/sacio/lib/libsacio_shared.so \
-DH5_C_INCLUDE_DIR=/path/to/hdf5/include \
-DH5_LIBRARY=/path/to/hdf5/lib/libhdf5.so \
-DINIPARSER_INCLUDE_DIR=/path/to/iniparser/src \
-DINIPARSER_LIBRARY=/path/to/libiniparser.so.1

Configuring with a commercial compiler

For performance reasons it may be advantageous to use a commercial compiler. For example, the software can be configured using the Intel Compiler suite by modifying the following script

#!/bin/sh
export CC=icc
export CXX=icpc
cmake ./ -DCMAKE_BUILD_TYPE=DEBUG \
-DCMAKE_INSTALL_PREFIX=./ \
-DCMAKE_C_COMPILER=icc \
-DCMAKE_CXX_COMPILER=icpc \
-DMPI_C_INCLUDE_PATH=/path/to/mpi/include \
-DMPI_C_LIBRARIES=/path/to/mpi/lib/libmpi.so \
-DCMAKE_C_FLAGS="-g3 -O2 -qopenmp -Wall -Wextra -Wcomment -Wcheck" \
-DCMAKE_CXX_FLAGS="-g3 -O2 -Wall -qopenmp" \
-DPARMT_USE_INTEL=TRUE \
-DCOMPEARTH_USE_ISCL=TRUE \
-DMKL_LIBRARY="/path/to/mkl/lib/intel64_lin/libmkl_intel_lp64.so;/path/to/mkl/lib/intel64_lin/libmkl_core.so;/path/to/mkl/lib/intel64_lin/libmkl_sequential.so" \
-DIPP_LIBRARY="/path/to/ipp/lib/intel64_lin/libipps.so;/path/to/ipp/lib/intel64_lin/libippvm.so;/path/to/ipp/lib/intel64_lin/libippcore.so" \
-DCOMPEARTH_INCLUDE_DIR=/path/to/compearth/include \
-DCOMPEARTH_LIBRARY=/path/to/compearth/lib/libcompearth_shared.so \
-DIPP_INCLUDE_DIR=/path/to/ipp/include \
-DMKL_INCLUDE_DIR=/path/to/mkl/include \
-DISCL_LIBRARY=/path/to/libiscl/lib/libiscl_shared.so \
-DISCL_INCLUDE_DIR=/path/to/libiscl/include \
-DISPL_LIBRARY=/path/to/ispl/lib/libispl_shared.so \
-DISPL_INCLUDE_DIR=/path/to/ispl/include \
-DCPS_LIBRARY=/path/to/libcps/lib/libcps_shared.so \
-DCPS_INCLUDE_DIR=/path/to/libcps/include \
-DTTIMES_LIBRARY=/path/to/libttimes/lib/libttimes_shared.so \
-DTTIMES_INCLUDE_DIR=/path/to/libttimes/include \
-DSACIO_INCLUDE_DIR=/path/to/sacio/include \
-DSACIO_LIBRARY=/path/to/sacio/lib/libsacio_shared.so \
-DH5_C_INCLUDE_DIR=/path/to/hdf5/include \
-DH5_LIBRARY=/path/to/hdf5/lib/libhdf5.so \
-DINIPARSER_INCLUDE_DIR=/path/to/iniparser/src \
-DINIPARSER_LIBRARY=/path/to/libiniparser.so.1

Building

After successfully configuring the software it can be built by typing

make

in the root source directory. It can be installed by then typing

make install

If Doxygen is available then the developer level documentation can be generated by typing

doxygen Doxyfile

in the root source directory. The resulting files can be viewed with a web-browser.

Clone this wiki locally