Description
CP2K is a package for atomistic simulations of solid state, liquid, molecular, and biological systems offering a wide range of computational methods with the mixed Gaussian and plane waves approaches.
More information about CP2K and the documentation are found on https://www.cp2k.org/
Availability
CP2K is freely available for all users under the GNU General Public License (GPL).
Modules
The CP2K module depends on intel/2021.2 (Lise) or on intel/2022.2 (Emmy).
CP2K is an MPI-parallel application. You can use either mpirun or srun as the job starter for CP2K. If you use the mpirun command, then you need to load the corresponding impi or openmpi modules before loading the CP2K module. Also CPU and/or GPU pinning should be carefully carried out with mpirun.
CP2K Version | Modulefile | Requirement | Support | CPU/GPU | Lise/Emmy |
---|---|---|---|---|---|
2022.2 | cp2k/2022.2 |
| libint, fftw3, libxc, elpa, scalapack, cosma, xsmm, spglib, mkl, sirius, libvori and libbqb | / | / |
2023.1 | cp2k/2023.1 |
| Lise: libint, fftw3, libxc, elpa, scalapack, cosma, xsmm, spglib, mkl, sirius, libvori and libbqb. Emmy: libint, fftw3, libxc, elpa, scalapack, cosma, xsmm, spglib, mkl and sirius. | / | / |
2023.1 | cp2k/2023.1 |
| libint, fftw3, libxc, elpa, elpa_nvidia_gpu, scalapack, cosma, xsmm, dbcsr_acc, spglib, mkl, sirius, offload_cuda, spla_gemm, m_offloading, libvdwxc | / | / |
Example Jobscripts
#!/bin/bash #SBATCH --time 12:00:00 #SBATCH --nodes=1 #SBATCH --ntasks-per-node=24 #SBATCH --cpus-per-task=4 #SBATCH --time=06:00:00 #SBATCH --job-name=cp2k export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} module load intel/2021.2 impi/2021.7.1 cp2k/2023.1 srun cp2k.psmp input > output
#!/bin/bash #SBATCH --time 12:00:00 #SBATCH --nodes=1 #SBATCH --ntasks-per-node=24 #SBATCH --cpus-per-task=4 #SBATCH --time=06:00:00 #SBATCH --job-name=cp2k export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} module load intel/2022.2 impi/2021.6 cp2k/2023.1 srun cp2k.psmp h2o_f36.inp > output
Depending on the problem size, it may happen that the code stops with a segmentation fault due to insufficient stack size or due to threads exceeding their stack space. To circumvent this, we recommend inserting in the jobscript:
export OMP_STACKSIZE=512M ulimit -s unlimited