HM3 build system requires cmake >= 3.0 and python >= 2.7. To generate the documentation doxygen is required.
For compiling HM3, a standard compliant C++14 compiler with support for a few language extensions (OpenMP, pragma once, zero-variadic-macro-arguments) is required. Only clang tip-of-trunk is currently tested. HM3 depends on the following external libraries:
For compiling the ParaView plugins the compiled sources of ParaView are needed.
Run ./aux/configure.py -h to get a description of the different build modes,
build options, and targets available. In a nutshell:
make tests # Builds and runs all tests.
make vis # Builds the visualization tools.
make fmt # Reformats all source code files.
make cov # Builds, run tests with coverage analysis, and generates report.
make site # Builds the website.
Is the only modern compiler that works find in both on Cray and IBM supercomputers and has OpenMP support.
Only the following header-only libraries are used:
These should be fetched automatically from github in the future.
All relevant proprietary MPI implementations are MPICH derivatives (Cray, IBM, Intel, and MVAPICH, and at the end of the day, one will use one of them).
MPICH coverage of the current MPI standard is larger, and recent MPI standards are implemented there faster.
MPICH has good (and bug-free) support for MPI_THREAD_MULTIPLE.
MPICH has static checking of MPI data-types when used in combination with clang.
Note: OpenMPI is not tested but it should work just fine.