Build from Source
CP2K uses the CMake build system, which detects dependencies and controls the compilation process. The dependencies have to be installed in advance, either manually or through a package manager like Spack.
Dependencies
At a minimum CP2K requirements a modern C and Fortran compiler,
DBCSR, BLAS, and LAPACK. For parallel builds it also needs at
least MPI and ScaLAPACK. To list all available build options run cmake -LH. Detailed descriptions
of most build options can be found in the technologies section:
Example
CMake is typically run out-of-tree in a seperate build/ directory. The following example builds
CP2K with CUDA acceleration for Nvidia A100 GPUs and a few optional dependencies:
cd <CP2K_REPOSITORY>
mkdir build/
cmake -S . -B build \
-GNinja \
-DCP2K_USE_LIBXC=ON \
-DCP2K_USE_LIBINT2=ON \
-DCP2K_USE_SPGLIB=ON \
-DCP2K_USE_ELPA=ON \
-DCP2K_USE_SPLA=ON \
-DCP2K_USE_SIRIUS=ON \
-DCP2K_USE_COSMA=ON \
-DCP2K_USE_ACCEL=CUDA -DCP2K_WITH_GPU=A100
cmake --build build -j 32
Others Build Options
-GNinjaGenerates Ninja build files instead of GNU Makefiles.-DCMAKE_BUILD_TYPE=DebugEnables debug settings, recommended for development.-DBUILD_SHARED_LIBS=OFFDisables shared libraries.-DCMAKE_POSITION_INDEPENDENT_CODE=OFFDisables position-independent code.-DCP2K_USE_EVERYTHING=ONEnables all dependencies.-DCP2K_ENABLE_CONSISTENCY_CHECKS=ONOnly used for testing.-DCP2K_USE_CRAY_PM_ENERGYEnables power monitoring on Cray systems.-DCP2K_USE_CRAY_PM_ACCEL_ENERGYEnables power monitoring of accelerators on Cray systems.