Installation - eth-cscs/DLA-interface GitHub Wiki
Dependencies
- BLAS/LAPACK
- MPI
- ScaLAPACK
- Parsec/DPlasma (Optional)
Cmake options:
BLAS / LAPACK
BLAS and LAPACK can be configured in 3 ways setting DLA_LAPACK_TYPE
"Compiler"
: The compiler already link with the correct libraries."MKL"
: MKL located inMKL_ROOT
(or env variableMKLROOT
if not defined) is used."Custom"
: Link the libraries specified byDLA_BLAS_LAPACK_LIB
.
For the MKL case the following options apply:
MKL_THREADING
:"Sequential"
"GNU OpenMP"
(Default)"Intel OpenMP"
(Default with Apple)
MPI
Options:
TEST_RUNNER
The command used to run the tests. (e.g. mpirun, srun, ...)TEST_RUNNER_NP_OPT
The name of the option used to specify the number of ranks.DLA_ALL_TESTS_USE_RUNNER
defaultOFF
: IfON
single rank tests are invoked withTEST_RUNNER
too.
If compiler wrappers which include mpi are used (e.g. mpicc
and mpicxx
, Cray's cc
and CC
)
no libraries and include paths are added and the following default are used:
TEST_RUNNER = mpirun
TEST_RUNNER_NP_OPT = -n
Otherwise FindMPI
is used to finde the MPI libraries, and the following defaults are used:
TEST_RUNNER = ${MPIEXEC}
TEST_RUNNER_NP_OPT = ${MPIEXEC_NUMPROC_FLAG}
Scalapack
ScaLAPACK can be configured in 3 ways setting DLA_SCALAPACK_TYPE
"Compiler"
: The compiler already link with the correct libraries"MKL"
: MKL ScaLAPACK is used (Only ifDLA_LAPACK_TYPE="MKL"
as well)."Custom"
: Link the libraries specified byDLA_SCALAPACK_LIB
For the MKL case the MPI interface has to be defined iwith MKL_MPI_TYPE
as well:
"IntelMPI"
: Supports IntelMPI, MPICH, MVAPICH"OpenMPI"
: Supports OpenMPI
Parsec/DPlasma
PARSEC_DIR
has to point to the directory where ParsecConfig.cmake
is,
e.g. <parsec_install_prefix>/lib/cmake
.
Parsec has to be configured to build DPlasma (Need COREBLAS from Plasma-2.8.0), and the option PARSEC_WITH_DEVEL_HEADERS=ON
should be set.
Other options
DLA_WITH_FORTRAN
defaultON
(OFF
if ScaLAPACK is not available): IfON
builds the fortran iso C interface. (Only available if ScaLAPACK is enabled)DLA_PRINT_DEBUG_INFO
defaultOFF
: IfON
prints some extra debug informations. (E.g. thread binding.)DLA_PRINT_DEBUG_CALL_PARAM
defaultOFF
: IfON
DLA interface routines print the call arguments.DLA_COVERAGE_TEST
defaultOFF
: IfON
enables coverage test (Requires GCC). The library is built with the--coverage
flags and enablesmake coverage
which make the coverage test summary with lcov.
Testing
make test
execute unit tests to check the correctnes of the installation.
Coverage testing
To run the coverage test:
- Configure the library with
DLA_COVERAGE_TEST=ON
- Build the library and the tests:
make
- Execute the unit tests:
make test
- Generate the summary:
make coverage