Skip to content

{bio}[foss/2025b] GROMACS v2025.3 w/ CUDA 12.9.1#25215

Merged
bedroge merged 4 commits into
easybuilders:developfrom
FelixBangerter:20260205111352_new_pr_GROMACS20253
Apr 24, 2026
Merged

{bio}[foss/2025b] GROMACS v2025.3 w/ CUDA 12.9.1#25215
bedroge merged 4 commits into
easybuilders:developfrom
FelixBangerter:20260205111352_new_pr_GROMACS20253

Conversation

@FelixBangerter
Copy link
Copy Markdown

(created using eb --new-pr)

@github-actions github-actions Bot added 2025b issues & PRs related to 2025b common toolchains update labels Feb 5, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 5, 2026

Updated software GROMACS-2025.3-foss-2025b-CUDA-12.9.1.eb

Diff against GROMACS-2024.4-foss-2024a.eb

easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2024a.eb

diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2024a.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.3-foss-2025b-CUDA-12.9.1.eb
index 7e6bd8a4cc..c7ca058f94 100644
--- a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2024a.eb
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.3-foss-2025b-CUDA-12.9.1.eb
@@ -15,7 +15,8 @@
 # License::   MIT/GPL
 
 name = 'GROMACS'
-version = '2024.4'
+version = '2025.3'
+versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://www.gromacs.org'
 description = """
@@ -23,13 +24,12 @@ GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
 Newtonian equations of motion for systems with hundreds to millions of
 particles.
 
-This is a CPU only build, containing both MPI and threadMPI binaries
-for both single and double precision.
+This is a GPU enabled build, containing both MPI and threadMPI binaries.
 
 It also contains the gmxapi extension for the single precision MPI build.
 """
 
-toolchain = {'name': 'foss', 'version': '2024a'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 toolchainopts = {'openmp': True, 'usempi': True}
 
 source_urls = [
@@ -40,28 +40,31 @@ sources = [SOURCELOWER_TAR_GZ]
 patches = [
     'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch',
     'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch',
-    'GROMACS-2024.1_workaround-arm-sve512.patch',
+    'GROMACS-2025.2_workaround-arm-sve512.patch',
 ]
 checksums = [
-    {'gromacs-2024.4.tar.gz': 'ac618ece2e58afa86b536c5a2c4fcb937f0760318f12d18f10346b6bdebd86a8'},
+    {'gromacs-2025.3.tar.gz': '8bdfca0268f3f10a7ca3c06e59b62f73ea02420c67211c0ff3912f32d7833c65'},
     {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
      '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
     {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
      '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
-    {'GROMACS-2024.1_workaround-arm-sve512.patch': '0dfa82a9425322d2b2c250d698ac2065f8c0ce0143df0057e7ec21686d60e5f7'},
+    {'GROMACS-2025.2_workaround-arm-sve512.patch':
+     'e62e075ee9328f647954365edd7979ea79e6f1d7a3b84834a2aae546cf74772c'},
 ]
 
 builddependencies = [
-    ('CMake', '3.29.3'),
-    ('scikit-build-core', '0.11.1'),
+    ('CMake', '4.0.3'),
+    ('scikit-build-core', '0.11.5'),
+    ('pybind11', '3.0.0'),
 ]
 
 dependencies = [
-    ('Python', '3.12.3'),
-    ('SciPy-bundle', '2024.05'),
-    ('networkx', '3.4.2'),
-    ('mpi4py', '4.0.1'),
-    ('pybind11', '2.12.0'),
+    ('CUDA', '12.9.1', '', SYSTEM),
+    ('UCX-CUDA', '1.19.0', versionsuffix),
+    ('Python', '3.13.5'),
+    ('SciPy-bundle', '2025.07'),
+    ('networkx', '3.5'),
+    ('mpi4py', '4.1.0'),
 ]
 
 # be a bit more forgiving w.r.t. timeouts for GROMACS test suite,
@@ -80,7 +83,7 @@ exts_list = [
         'source_tmpl': 'gromacs-%s.tar.gz' % _gmxapi_source_version,
         'start_dir': 'python_packaging/gmxapi',
         'checksums': [
-            {'gromacs-2024.4.tar.gz': 'ac618ece2e58afa86b536c5a2c4fcb937f0760318f12d18f10346b6bdebd86a8'},
+            {'gromacs-2025.3.tar.gz': '8bdfca0268f3f10a7ca3c06e59b62f73ea02420c67211c0ff3912f32d7833c65'},
             {'GROMACS-2024.1-fix-gmxapi-version.patch':
                 'df30b21352a26d8e01d693e2822db0ea45015c23f900a6ceb68522d44e6e790c'},
         ],
Diff against GROMACS-2021.0-foss-2023a-20250409-constant-pH-CUDA-12.1.1-PLUMED.eb

easybuild/easyconfigs/g/GROMACS/GROMACS-2021.0-foss-2023a-20250409-constant-pH-CUDA-12.1.1-PLUMED.eb

diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2021.0-foss-2023a-20250409-constant-pH-CUDA-12.1.1-PLUMED.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.3-foss-2025b-CUDA-12.9.1.eb
index 6f868a8215..c7ca058f94 100644
--- a/easybuild/easyconfigs/g/GROMACS/GROMACS-2021.0-foss-2023a-20250409-constant-pH-CUDA-12.1.1-PLUMED.eb
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.3-foss-2025b-CUDA-12.9.1.eb
@@ -1,60 +1,93 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
+#                                 Ghent University / The Francis Crick Institute
+# Authors::
+# * Wiktor Jurkowski <wiktor.jurkowski@gmail.com>
+# * Fotis Georgatos <fotis@cern.ch>
+# * George Tsouloupas <g.tsouloupas@cyi.ac.cy>
+# * Kenneth Hoste <kenneth.hoste@ugent.be>
+# * Adam Huffman <adam.huffman@crick.ac.uk>
+# * Ake Sandgren <ake.sandgren@hpc2n.umu.se>
+# * J. Sassmannshausen <Crick HPC team>
+# * Dugan Witherick <dugan.witherick@warwick.ac.uk>
+# * Christoph Siegert <christoph.siegert@uni-leipzig.de>
+# License::   MIT/GPL
+
 name = 'GROMACS'
-version = '2021.0'
-_date = '-20250409'
-local_commit = '28807b11'
-_cuda_suffix = '-CUDA-%(cudaver)s'
-versionsuffix = f'{_date}-constant-pH{_cuda_suffix}-PLUMED'
-# fork is from v2021.0-beta1, SOVERSION = 6.0.0
-
-homepage = 'https://gitlab.com/gromacs-constantph'
-description = """
-GROMACS constant pH
+version = '2025.3'
+versionsuffix = '-CUDA-%(cudaver)s'
 
+homepage = 'https://www.gromacs.org'
+description = """
 GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
 Newtonian equations of motion for systems with hundreds to millions of
 particles.
 
-This is preliminary version of the GROMACS constant pH code.
-The modified force fields needed for constnat pH.
+This is a GPU enabled build, containing both MPI and threadMPI binaries.
+
+It also contains the gmxapi extension for the single precision MPI build.
 """
 
-toolchain = {'name': 'foss', 'version': '2023a'}
-# Currently, separate PME ranks are not supported with MPI
-toolchainopts = {'openmp': True, 'usempi': False}
+toolchain = {'name': 'foss', 'version': '2025b'}
+toolchainopts = {'openmp': True, 'usempi': True}
 
-source_urls = ['https://gitlab.com/gromacs-constantph/constantph/-/archive/']
-sources = [{
-    'download_filename': '%s.tar.gz' % local_commit,
-    'filename': '%%(name)s-%%(version)s-%s.tar.gz' % local_commit,
-}]
+source_urls = [
+    'https://ftp.gromacs.org/pub/gromacs/',
+    'ftp://ftp.gromacs.org/pub/gromacs/',
+]
+sources = [SOURCELOWER_TAR_GZ]
 patches = [
-    'GROMACS-2021.0-20250409-constant-pH_enable-CUDA-12.1.1.patch',
+    'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch',
+    'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch',
+    'GROMACS-2025.2_workaround-arm-sve512.patch',
 ]
 checksums = [
-    {'GROMACS-2021.0-28807b11.tar.gz': '88548354e02c872052f2fa662eab5f111421706cb0ea264e94af19e7274d0f78'},
-    {'GROMACS-2021.0-20250409-constant-pH_enable-CUDA-12.1.1.patch':
-     'f1bf5026b92aea6e6ca1265d75aa42976cfa9cf480e6ee5168e935d4380aab3e'},
+    {'gromacs-2025.3.tar.gz': '8bdfca0268f3f10a7ca3c06e59b62f73ea02420c67211c0ff3912f32d7833c65'},
+    {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
+     '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
+    {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
+     '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
+    {'GROMACS-2025.2_workaround-arm-sve512.patch':
+     'e62e075ee9328f647954365edd7979ea79e6f1d7a3b84834a2aae546cf74772c'},
 ]
 
 builddependencies = [
-    ('CMake', '3.26.3'),
-    ('Doxygen', '1.9.7'),
+    ('CMake', '4.0.3'),
+    ('scikit-build-core', '0.11.5'),
+    ('pybind11', '3.0.0'),
 ]
+
 dependencies = [
-    ('CUDA', '12.1.1', '', SYSTEM),
-    ('PLUMED', '2.9.0'),
+    ('CUDA', '12.9.1', '', SYSTEM),
+    ('UCX-CUDA', '1.19.0', versionsuffix),
+    ('Python', '3.13.5'),
+    ('SciPy-bundle', '2025.07'),
+    ('networkx', '3.5'),
+    ('mpi4py', '4.1.0'),
 ]
 
-start_dir = 'gromacs-constantph'
+# be a bit more forgiving w.r.t. timeouts for GROMACS test suite,
+# see also https://gitlab.com/gromacs/gromacs/-/issues/5062
+configopts = "-DGMX_TEST_TIMEOUT_FACTOR=3"
 
-plumed = 'patch'
-ignore_plumed_version_check = True
+exts_defaultclass = 'PythonPackage'
 
-# Disable installing the Python gmxapi bindings - python 3.11 not supported
-python_pkg = False
+_gmxapi_source_version = version
 
-# Code is not sufficiently covered with tests and some standard GROMACS test might be broken.
-# Thus, make check might end up with errors
-runtest = False
+exts_list = [
+    ('gmxapi', '0.5.0a1', {
+        'patches': ['GROMACS-2024.1-fix-gmxapi-version.patch'],
+        'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' +
+                          '-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ',
+        'source_tmpl': 'gromacs-%s.tar.gz' % _gmxapi_source_version,
+        'start_dir': 'python_packaging/gmxapi',
+        'checksums': [
+            {'gromacs-2025.3.tar.gz': '8bdfca0268f3f10a7ca3c06e59b62f73ea02420c67211c0ff3912f32d7833c65'},
+            {'GROMACS-2024.1-fix-gmxapi-version.patch':
+                'df30b21352a26d8e01d693e2822db0ea45015c23f900a6ceb68522d44e6e790c'},
+        ],
+    }),
+]
 
 moduleclass = 'bio'
Diff against GROMACS-2025.2-lmpflf-2025b.eb

easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-lmpflf-2025b.eb

diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-lmpflf-2025b.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.3-foss-2025b-CUDA-12.9.1.eb
index 2d358f5be2..c7ca058f94 100644
--- a/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-lmpflf-2025b.eb
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.3-foss-2025b-CUDA-12.9.1.eb
@@ -15,7 +15,8 @@
 # License::   MIT/GPL
 
 name = 'GROMACS'
-version = '2025.2'
+version = '2025.3'
+versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://www.gromacs.org'
 description = """
@@ -23,13 +24,12 @@ GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
 Newtonian equations of motion for systems with hundreds to millions of
 particles.
 
-This is a CPU only build, containing both MPI and threadMPI binaries
-for both single and double precision.
+This is a GPU enabled build, containing both MPI and threadMPI binaries.
 
 It also contains the gmxapi extension for the single precision MPI build.
 """
 
-toolchain = {'name': 'lmpflf', 'version': '2025b'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 toolchainopts = {'openmp': True, 'usempi': True}
 
 source_urls = [
@@ -41,17 +41,15 @@ patches = [
     'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch',
     'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch',
     'GROMACS-2025.2_workaround-arm-sve512.patch',
-    'GROMACS-2025.2_fix-sample_restraint-mpich-launch.patch',
 ]
 checksums = [
-    {'gromacs-2025.2.tar.gz': '0df09f9d45a99ef00e66b9baa9493a27e906813763a3b6c7672217c66b43ea11'},
+    {'gromacs-2025.3.tar.gz': '8bdfca0268f3f10a7ca3c06e59b62f73ea02420c67211c0ff3912f32d7833c65'},
     {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
      '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
     {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
      '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
-    {'GROMACS-2025.2_workaround-arm-sve512.patch': 'e62e075ee9328f647954365edd7979ea79e6f1d7a3b84834a2aae546cf74772c'},
-    {'GROMACS-2025.2_fix-sample_restraint-mpich-launch.patch':
-     'a910ec50cf296a6bdf8e5d425617d54c13b4ef049b61196487d7dc8a8f674e2c'},
+    {'GROMACS-2025.2_workaround-arm-sve512.patch':
+     'e62e075ee9328f647954365edd7979ea79e6f1d7a3b84834a2aae546cf74772c'},
 ]
 
 builddependencies = [
@@ -61,6 +59,8 @@ builddependencies = [
 ]
 
 dependencies = [
+    ('CUDA', '12.9.1', '', SYSTEM),
+    ('UCX-CUDA', '1.19.0', versionsuffix),
     ('Python', '3.13.5'),
     ('SciPy-bundle', '2025.07'),
     ('networkx', '3.5'),
@@ -83,7 +83,7 @@ exts_list = [
         'source_tmpl': 'gromacs-%s.tar.gz' % _gmxapi_source_version,
         'start_dir': 'python_packaging/gmxapi',
         'checksums': [
-            {'gromacs-2025.2.tar.gz': '0df09f9d45a99ef00e66b9baa9493a27e906813763a3b6c7672217c66b43ea11'},
+            {'gromacs-2025.3.tar.gz': '8bdfca0268f3f10a7ca3c06e59b62f73ea02420c67211c0ff3912f32d7833c65'},
             {'GROMACS-2024.1-fix-gmxapi-version.patch':
                 'df30b21352a26d8e01d693e2822db0ea45015c23f900a6ceb68522d44e6e790c'},
         ],

@FelixBangerter
Copy link
Copy Markdown
Author

Test report by @FelixBangerter
SUCCESS
Build succeeded for 1 out of 1 (total: 37 mins 42 secs) (1 easyconfigs in total)
genoa-hopper-02.clusterurz - Linux AlmaLinux 8.9, x86_64, AMD EPYC 9554 64-Core Processor, Python 3.6.8
See https://gist.github.com/FelixBangerter/32c32f53eaea31986066ae6515f83b74 for a full test report.

@FelixBangerter
Copy link
Copy Markdown
Author

Note, the contirbuted EasyConfig includes the patch introduced in PR #25188, so this PR should be merged first since the included patch is used in the updated EasyConfig here.

@bedroge
Copy link
Copy Markdown
Contributor

bedroge commented Apr 22, 2026

@boegelbot please test @ jsc-zen3-a100

@boegelbot
Copy link
Copy Markdown
Collaborator

@bedroge: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=25215 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_25215 --ntasks=8 --partition=jsczen3g --gres=gpu:1 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 10264

Test results coming soon (I hope)...

Details

- notification for comment with ID 4295863769 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

Comment thread easybuild/easyconfigs/g/GROMACS/GROMACS-2025.3-foss-2025b-CUDA-12.9.1.eb Outdated
@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (total: 36 mins 17 secs) (1 easyconfigs in total)
jsczen3g1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.7, x86_64, AMD EPYC-Milan Processor (zen3), 1 x NVIDIA NVIDIA A100 80GB PCIe, 590.48.01, Python 3.9.25
See https://gist.github.com/boegelbot/0dcdd32632f1db3eaf1ab3e996d28bef for a full test report.

@bedroge
Copy link
Copy Markdown
Contributor

bedroge commented Apr 23, 2026

Test report by @bedroge
SUCCESS
Build succeeded for 1 out of 1 (total: 26 mins 24 secs) (1 easyconfigs in total)
l40sgpu1 - Linux AlmaLinux 8.10 (Cerulean Leopard), x86_64, Intel(R) Xeon(R) Gold 6240R CPU @ 2.40GHz, 1 x NVIDIA NVIDIA L40S, 575.57.08, Python 3.13.4
See https://gist.github.com/bedroge/e0827486dc9ee7a43d97f5c8fc565e5d for a full test report.

@bedroge
Copy link
Copy Markdown
Contributor

bedroge commented Apr 23, 2026

Test report by @bedroge
SUCCESS
Build succeeded for 1 out of 1 (total: 19 mins 44 secs) (1 easyconfigs in total)
rtx6000gpu3 - Linux AlmaLinux 8.10 (Cerulean Leopard), x86_64, AMD EPYC 9575F 64-Core Processor, 1 x NVIDIA NVIDIA RTX PRO 6000 Blackwell Server Edition, 595.45.04, Python 3.13.4
See https://gist.github.com/bedroge/b60860ff02835a06849f0a1da2011266 for a full test report.

@bedroge
Copy link
Copy Markdown
Contributor

bedroge commented Apr 23, 2026

Test report by @bedroge
SUCCESS
Build succeeded for 1 out of 1 (total: 35 mins 25 secs) (1 easyconfigs in total)
v100v2gpu16 - Linux AlmaLinux 8.10 (Cerulean Leopard), x86_64, Intel(R) Xeon(R) Gold 6150 CPU @ 2.70GHz, 1 x NVIDIA Tesla V100-PCIE-32GB, 560.35.05, Python 3.13.4
See https://gist.github.com/bedroge/0ce24111eff06e4c5ab0183910d81b32 for a full test report.

Copy link
Copy Markdown
Contributor

@bedroge bedroge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm. I did find a small issue when building this on top of EESSI for compute capability 12.0f, where it cuts off the f suffix: see EESSI/software-layer#1482 (comment). But this is a minor thing, and I'm working on a patch, which I'll add in a follow-up PR.

@bedroge bedroge added this to the next release (5.3.1?) milestone Apr 24, 2026
@bedroge
Copy link
Copy Markdown
Contributor

bedroge commented Apr 24, 2026

Going in, thanks @FelixBangerter!

@bedroge bedroge merged commit b1620bd into easybuilders:develop Apr 24, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2025b issues & PRs related to 2025b common toolchains update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants