-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
Below is a list of dependencies. It is strongly recommended to use vendor BLAS/LAPACK and MPI where available.
- CMake v2.6
- A C11 compiler
- Message Passing Interface
- Intel Performance Primitives
- LAPACK(E) and (C)BLAS. If using Intel then the MKL should be used instead of the libraries available through a package manager. If using IBM Power architecture then the ESSL library should be used.
- The high performance self describing file format HDF5. This build will likely require zlib.
- The initializing parser library iniparser
- ISTI's scientific computing library ISCL. This must have been compiled with GeographicLib
- ISTI's signals processing library ISPL
- The 1D global earth travel-times library to iaspei-tau
- The SAC input/output library sacio
- The Computer Programs in Seismology library libcps
- The C moment tensor manipulation library compearth
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.
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
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.