Powered by OpenAIRE graph
Found an issue? Give us feedback
ZENODOarrow_drop_down
ZENODO
Presentation . 2026
License: CC BY
Data sources: Datacite
ZENODO
Presentation . 2026
License: CC BY
Data sources: Datacite
versions View all 2 versions
addClaim

Shared-memory parallelism and performance portability in the ESPResSo package for particle- and lattice-based simulations

Authors: Kobayashi, Hideki; Grad, Jean-Noël; Hohenberger, Paul; Holm, Christian; Weeber, Rudolf;

Shared-memory parallelism and performance portability in the ESPResSo package for particle- and lattice-based simulations

Abstract

ESPResSo is an open-source simulation package for soft condensed matter that combines particle-based molecular dynamics and Monte Carlo methods with continuum hydrodynamics to study systems at the intersection of physics, chemistry and process engineering. Examples include colloids, polymers and polyelectrolytes, gels, ferrofluids, and biofilms[1]. Modelling these systems demands efficient, flexible, and extensible software. A defining feature of ESPResSo is its hybrid architecture: a Python front end for model construction and analysis and a C++ core for high-performance kernels. Historically the core has relied on distributed-memory MPI parallelism and selective GPU offloading, but modern HPC nodes with many CPU cores expose limitations of an MPI-only approach – in particular excessive halo communication between processes on the same node and contention when multiple processes share a single GPU. Limiting GPUs to one process per device reduces contention but wastes CPU resources. We address these issues by introducing node-level shared-memory parallelism using the performance-portable Kokkos library[2]. Kokkos lets the same computational kernels target CPU backends (OpenMP, threads) and GPU backends (CUDA) from a single code base. By restructuring short-range non-bonded force calculations and electrostatics solvers to use Kokkos, we enable hybrid execution where processes on the same node share in-memory data structures and intra-node work, thereby reducing halo communication and redundant copies of local data. This approach improves CPU utilization, eliminates much of the node-local MPI traffic, and simplifies GPU offloading by consolidating data movement and execution choices. This, however, comes with the price of requiring changes in the data layout and management of race conditions. We describe our strategy and experience incrementally introducing shared memory parallelism on the node level, while preserving existing MPI-based scaling across nodes. We highlight practical design choices for memory layout, work partitioning, and synchronization for short-range force calculation and an FFT-based electrostatics solver. Initial benchmarks show improved within-node scaling for low core numbers, reduced communication overhead, and removal of GPU contention. Moreover, Kokkos' ability to run largely unchanged code on the CPU and GPU considerably lowers the effort needed to port additional parts of ESPResSo to the GPU, in the future. This will become highly relevant, as the majority of compute in new HPC systems is provided by GPU accelerators. References: [1]: Weeber et al. ESPResSo, a versatile open-source software package for simulating soft matter systems. In Yáñez and Boyd (Eds.), Comprehensive Computational Chemistry, pp. 578–601. Elsevier. doi:10.1016/B978-0-12-821978-2.00103-3[2]: Trott et al. Kokkos 3: Programming model extensions for the exascale era, IEEE Transactions on Parallel and Distributed Systems, 33(4):805–817, 2022, doi:10.1109/TPDS.2021.3097283

Related Organizations
Keywords

HPC, OpenMP, MPI, Cabana, kokkos

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average
Upload OA version
Are you the author of this publication? Upload your Open Access version to Zenodo!
It’s fast and easy, just two clicks!