Skip to content

[CP2K] [package list]

CP2K/2025.2-cpeGNU-25.09-rocm (CP2K-2025.2-cpeGNU-25.09-rocm.eb)

Install with the EasyBuild-user module:

eb CP2K-2025.2-cpeGNU-25.09-rocm.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider CP2K/2025.2-cpeGNU-25.09-rocm.

EasyConfig:

# contributed by Luca Marsella (CSCS)
# modified for LUMI-G by Peter Larsson
# Updated to version 2024.1 by Radim Janalik (CSCS)
# Update to version 2025.2 and DBCSR patch by Tor Skovsgaard (DeiC)
#
#DOC CP2K 2025.2 release compiled with AMD GPU support enabled for CP2K 
#DOC itself and several of the libraries (SpFFT, SpLA).
easyblock = 'MakeCp'

local_ELPA_version =         '2025.06.001'   # Older version, but as this is what the developers tested with...
local_Libint_CP2K_version  = '2.7.2'
local_libvori_version =      '220621'        # https://brehm-research.de/libvori.php
local_libxc_version        = '7.0.0'
#local_libxsmm_CP2K_version = '1.17+e0c4a23'  # https://github.com/libxsmm/libxsmm/releases - Special commit for CP2K
local_libxsmm_CP2K_version = '1.17'  # https://github.com/libxsmm/libxsmm/releases - Special commit for CP2K
local_spglib_version =       '2.7.0'         # https://github.com/spglib/spglib/tags
local_COSMA_version        = '2.7.0'
local_SPLA_version         = '1.6.1'
local_SpFFT_version        = '1.1.1'
local_GSL_version =          '2.8'           # https://ftp.gnu.org/gnu/gsl/

name =           'CP2K'
version =        '2025.2'
version_suffix = '-rocm'

homepage = 'http://www.cp2k.org/'

whatis = [
    'Description: CP2K is a program to perform atomistic and molecular '
    'simulations of solid state, liquid, molecular and biological systems.'
]

description = """
CP2K is a freely available (GPL) program, written in Fortran 95, to
perform atomistic and molecular simulations of solid state, liquid,
molecular and biological systems. It provides a general framework for
different methods such as e.g. density functional theory (DFT) using a
mixed Gaussian and plane waves approach (GPW), and classical pair and
many-body potentials.

Specifically for 25.09: Do not forget to load lumi-CrayPath after
loading all other modules, or do a similar adaptation to LD_LIBRARY_PATH
to ensure that you get the correct version of MPI, etc., at run-time.
"""

toolchain = {'name': 'cpeGNU', 'version': '25.09'}
toolchain_opts = {'openmp': True, 'usempi': True}

source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/v%(version)s']
sources = [SOURCELOWER_TAR_BZ2]
patches = [
    ('LUMIG-20252.psmp', '%(builddir)s/%(namelower)s-%(version)s/arch'),
    ('CP2K-2025.2-rocm-dbcsr.patch', 1),
]
checksums = [
    {'cp2k-2025.2.tar.bz2':          'c8392a4e123304644ec8d241443796277c6ed7ae977452317e779f3c387c2e19'},
    {'LUMIG-20252.psmp':             'e401553099932a757ed161a266a14eaa40ccf29036cd77ea37ba2d00e633c8d2'},
    {'CP2K-2025.2-rocm-dbcsr.patch': 'ffc2ee1ec5833fc30c68e8e9d885323c18019445e54071cea1d0eddeaae34145'},
]

build_deps = [
    ('buildtools', '%(toolchain_version)s', '', True),
]

deps = [
    ('cray-fftw',   EXTERNAL_MODULE),
    ('cray-hdf5',   EXTERNAL_MODULE),
    ('rocm',        EXTERNAL_MODULE),
    #('ELPA',        local_ELPA_version,        '-rocm'),
    ('ELPA',        local_ELPA_version,        '-CPU'),  # Comment the previous line and uncomment this one if ELPA on GPU is too slow or does not work.
    ('COSMA',       local_COSMA_version,       version_suffix),
    ('SPLA',        local_SPLA_version,        version_suffix),
    ('SpFFT',       local_SpFFT_version,       version_suffix),
    ('GSL',         local_GSL_version,         '-OpenMP'),
#    ('Libint-CP2K', local_Libint_CP2K_version, '-lmax-6'),
    ('Libint-CP2K', local_Libint_CP2K_version),
    ('libvori',     local_libvori_version),
    ('libxc',       local_libxc_version,       '-FHC-KXC'),
    ('libxsmm',     local_libxsmm_CP2K_version),
    ('spglib',      local_spglib_version),
]

build_opts = "ARCH=LUMIG-20252 VERSION=psmp"

files_to_copy = [
    (['./arch/LUMIG-20252.psmp'], 'arch'),
    (['./exe/LUMIG-20252/*'], 'bin'),
    (['./data'], '.'),
    (['./tests'], '.'),
    (['./tools'], '.')
]

sanity_check_paths = {
    'files': ['arch/LUMIG-20252.psmp', 'bin/%(namelower)s.psmp'],
    'dirs': ['data', 'tests'],
}

# set custom CP2K_DATA_DIR
env_mod_extra_vars = {
    'CP2K_DATA_DIR': '%(installdir)s/data'
}

env_mod_category = 'chem'

[CP2K] [package list]