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

This page discusses issues related to configuring, building, and installing the ParMT software.

Prerequisites

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

Configuring with CMake

Two configuration examples are presented which use the GCC and Intel compilers. As it is assumed the user will be on Intel hardware both examples use the Intel performance libraries.

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

where the Intel Performance libraries (MKL and IPP) are to be used as denoted by PARMT_USE_INTEL.

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 \
-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