Use the standard cmake build procedure:
mkdir build; cd build
cmake -G "Unix Makefiles" [OPTIONS] .. && make
Replace [OPTIONS]
with desired cmake options for your build.
The library adds the following additional switches to control what is being built:
-DSCHWARZ_BUILD_BENCHMARKING={ON, OFF}
Builds some example benchmarks. Default isON
-DSCHWARZ_BUILD_METIS={ON, OFF}
Builds with support for theMETIS
partitioner. User needs to provide the path to the installation of theMETIS
library inMETIS_DIR
, preferably as an environment variable. Default isOFF
-DSCHWARZ_BUILD_CHOLMOD={ON, OFF}
Builds with support for theCHOLMOD
module from the Suitesparse library. User needs to set an environment variableCHOLMOD_DIR
to the path containing theCHOLMOD
installation. Default isOFF
-DSCHWARZ_BUILD_CUDA={ON, OFF}
Builds with CUDA support. Though Ginkgo provides most of the required CUDA support, we do need to link to CUDA for explicit setting of GPU affinities, some custom gather and scatter operations. Default isOFF
.-DSCHWARZ_BUILD_CLANG_TIDY={ON, OFF}
Builds with support forclang-tidy
Default isOFF
-DSCHWARZ_BUILD_DEALII={ON, OFF}
Builds with support for the finite element librarydeal.ii
Default isOFF
-DSCHWARZ_WITH_HWLOC={ON, OFF}
Builds with support for the hardware locality library used for binding hardware.hwloc
is distributed as a part of the Open-MPI project. Default isON
-DSCHWARZ_DEVEL_TOOLS={ON, OFF}
Builds with some developer tools support. Default isON
. In particular usesgit-cmake-format
to automatically format the source files withclang-format
.
-
If you are having CUDA problems and you are not using CUDA, then feel free to switch the CUDA module off with
-DSCHWARZ_BUILD_CUDA=off
. -
Installing CHOLMOD can be a bit annoying. TODO add some details on fixing Suitesparse compilation.
-
When doing merge commits it is possible that make format does not work. You can run
cmake -DSCHWARZ_DEVEL_TOOLS=OFF ..
to temporarily switch off the formatting. Please switch it on again when committing normally.