Skip to content

[QuantumESPRESSO] [package list]

QuantumESPRESSO/7.5-cpeCray-25.09-rocm (QuantumESPRESSO-7.5-cpeCray-25.09-rocm.eb)

Install with the EasyBuild-user module:

eb QuantumESPRESSO-7.5-cpeCray-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 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'

[QuantumESPRESSO] [package list]