[QuantumESPRESSO] [package list]
QuantumESPRESSO/7.5-cpeCray-25.09-rocm (QuantumESPRESSO-7.5-cpeCray-25.09-rocm.eb)
Install with the EasyBuild-user module:
To access module help after installation and get reminded for which stacks and partitions the module is installed, usemodule spider QuantumESPRESSO/7.5-cpeCray-25.09-rocm.
EasyConfig:
#DOC Rather bare-bones version of Quantum ESPRESSO compiled with OpenMP offload for the LUMI GPUs.
#DOC Note that performance with ROCm 6 is far from optimal. Better performance is expected ones ROCm 7
#DOC becomes available on LUMI.
#DOC Contributed by the [EPICURE project](https://epicure-hpc.eu/).
easyblock = 'ConfigureMake'
local_ROCm_version = '6.4.4'
name = 'QuantumESPRESSO'
version = '7.5'
version_suffix = '-rocm'
homepage = 'https://www.quantum-espresso.org'
whatis = [
'Description: Quantum ESPRESSO is a suite of codes for electronic structure calculations based on DFT, plane wave and pseudopotentials'
]
description = """
Quantum ESPRESSO is an integrated suite of computer codes
for electronic-structure calculations and materials modeling at the nanoscale.
It is based on density-functional theory, plane waves, and pseudopotentials
(both norm-conserving and ultrasoft).
This build uses the OpenMP 5 GPU-offload branch of Quantum ESPRESSO for AMD
GPUs, built with the Cray compiler and GPU-aware MPI on LUMI-G.
"""
# CCE 20.0.0 is associated with the 25.09 CPE.
toolchain = {'name': 'cpeCray', 'version': '25.09'}
toolchain_opts = {'usempi': True, 'openmp': True}
_qe_commit = 'bc526ff9f35bc0e7240b242e6ebd43044355c295'
# Required by:
# make pw
# -> pwlibs
# -> mods/libla
# -> libmbd/libdevx
_mbd_hash = '89a3cc199c0a200c9f0f688c3229ef6b9a8d63bd'
_devxlib_hash = 'a6b89ef77b1ceda48e967921f1f5488d2df9226d'
sources = [
{
'filename': f'q-e-omp-repository-{_qe_commit}.tar.gz',
'extract_cmd': 'mkdir -p %(builddir)s/qe-%(version)s && tar xzvf %s --strip-components=1 -C $_',
'source_urls': [
f'https://gitlab.com/QEF/q-e-omp-repository/-/archive/{_qe_commit}'
],
},
{
'filename': f'mbd-{_mbd_hash}.tar.gz',
'git_config': {
'url': 'https://github.com/libmbd',
'repo_name': 'libmbd',
'commit': _mbd_hash,
'clone_into': 'mbd',
'keep_git_dir': True,
},
'extract_cmd': 'cd qe-%(version)s/external && tar -xvf %s',
},
{
'filename': f'devxlib-{_devxlib_hash}.tar.gz',
'git_config': {
'url': 'https://gitlab.com/max-centre/components',
'repo_name': 'devicexlib',
'commit': _devxlib_hash,
'clone_into': 'devxlib',
'keep_git_dir': True,
},
'extract_cmd': 'cd qe-%(version)s/external && tar -xvf %s',
},
]
checksums = []
build_deps = [
('buildtools', '', '%(toolchain_version)s', True),
]
deps = [
('cray-hdf5-parallel', EXTERNAL_MODULE),
('cray-fftw', EXTERNAL_MODULE),
('rocm', local_ROCm_version, '', SYSTEM),
]
# Match the compiler workaround from the supplied LUMI environment.
pre_configure_opts = (
'export CRAY_CCE_OPT_ARGS="--passes=default<O1>" && '
)
# The same CCE workaround must also be present during compilation.
pre_build_opts = (
'export CRAY_CCE_OPT_ARGS="--passes=default<O1>" && '
)
# Upstream OpenMP-5 GPU configuration for Cray + AMD GPU + GPU-aware MPI.
configure_opts = (
"ARCH=craype "
"CPP='cpp -traditional-cpp' "
"CPPFLAGS='-D__CLOCK_SECONDS' "
"--enable-omp_gpu "
"--enable-omp_mpi_gpu "
"--with-rocm=$EBROOTROCM"
"--with-hdf5=yes "
"--with-scalapack=yes"
)
build_opts = 'pw'
sanity_check_paths = {
'files': ['bin/pw.x'],
'dirs': [''],
}
post_install_cmds = [
'mkdir -p %(installdir)s/share/licenses/%(name)s',
'cd %(start_dir)s && cp License README.md %(installdir)s/share/licenses/%(name)s',
]
env_mod_category = 'chem'