-
Notifications
You must be signed in to change notification settings - Fork 307
enhance GROMACS easyblock to improve control over PLUMED support (native vs. patching) #3984
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
|
Wouldn't it make more sense to use, e.g., |
|
I quite like the idea of introducing a setting As far as I can tell, the plan is for GROMACS to gradually support most PLUMED use-cases via their native API. GROMACS 2025 with a limited native PLUMED-API was just the first step into that direction. PLUMED's own description of their gromacs-2025.0 patch is:
I think the setting that requires the most thought is I argue that easybuild should use the least-invasive method, which means choosing Since their 2020 release, GROMACS validates the checksum of the release during the build-process and will modify the GROMACS version string if the checksum does not match the official release. Overall
And to serve the needs of users who will need the latest PLUMED features which are not yet supported by the native PLUMED API, we can provide modules with |
|
Commit 82a0da5 addresses @jhmeinke 's comments. New logic is now:
|
|
Thanks for the update! I agree, the tricky part is If I hadn't come across this thread, I would have been wondering why some of our users are complaining about their simulations with GROMACS and PLUMED not working as expected anymore. I would use patching as the default behavior when |
|
I did some digging:
Overall it appears that the classic PLUMED patches for GROMACS seem to have been discontinued in favor of the native GROMACS interface to PLUMED. There is probably some functionality that is lost for now, even with PLUMED 2.10's patches for GROMACS 2025. @jhmeinke if you feel it's necessary, I could change the code to default to applying the patches for GROMACS 2025 and maybe even 2026 (the PR 4622 that didn't make it into GROMACS 2025 hasn't been merged for 2026 either). But I suspect that starting with GROMACS 2027 we can default to the native interface and any possible patches would only be to activate bleeding-edge functionality. On the PLUMED users mailing list, the lead-developer of PLUMED has mentioned, that the group is still using GROMACS 2022 internally. |
GROMACS 2025 was released on Feb 11, 2025. Changing EB's default behavior of whether to apply patches or use GROMACS' native PLUMED support would be surprising to users. Changing the default with the yet unreleased GROMACS 2026 is safer. In any case PLUMED patches for GROMACS 2025 and newer are based on GROMACS' native support, which means that some PLUMED features that were available with older GROMACS releases are not supported until GROMACS' MDModule and the plugin mechansims have caught up again. See also discussion in easybuilders#3984
|
@jhmeinke in e2df627 I've upped the GROMACS version from which point Since even the patches for gromacs-2025.0 are based on GROMACS' native support, there seem to be certain PLUMED modes that aren't supported with very recent versions of GROMACS anyway (e.g. Hamiltonian Replica Exchange MD (H-REMD)). |
GROMACS 2025 was released on Feb 11, 2025. Changing EB's default behavior of whether to apply patches or use GROMACS' native PLUMED support would be surprising to users. Changing the default with the yet unreleased GROMACS 2026 is safer. In any case PLUMED patches for GROMACS 2025 and newer are based on GROMACS' native support, which means that some PLUMED features that were available with older GROMACS releases are not supported until GROMACS' MDModule and the plugin mechansims have caught up again. See also discussion in easybuilders#3984
|
Thanks @ostueker ! I think this is a good way to move forward. |
GROMACS 2025 was released on Feb 11, 2025. Changing EB's default behavior of whether to apply patches or use GROMACS' native PLUMED support would be surprising to users. Changing the default with the yet unreleased GROMACS 2026 is safer. In any case PLUMED patches for GROMACS 2025 and newer are based on GROMACS' native support, which means that some PLUMED features that were available with older GROMACS releases are not supported until GROMACS' MDModule and the plugin mechansims have caught up again. See also discussion in easybuilders#3984
Since GROMACS 2025 one can compile GROMACS with a PLUMED interface without patching it by setting CMake option
-DGMX_USE_PLUMED=ON.Applying PLUMED patches to GROMACS 2025 is still possible in order to get the latest PLUMED functionality.
This PR adds a fourth option
'patch'to the extra-optionplumed.plumed = None(default) auto detects whether PLUMED is available and do the same asplumed = Trueplumed = Truesets-DGMX_USE_PLUMED=ONfor GROMACS >= 2025 or try to patch GROMACS with PLUMED's patches for older (<=2024.x) versions (depends whether the loaded version has patches for that version of GROMACSplumed = 'patch'will try to patch GROMACS with PLUMED's patches regardless of the GROMACS versionplumed = Falsewill disable PLUMED functionality, even if it is found (neither apply patches nor set-DGMX_USE_PLUMED=OFFfor GROMACS >=2025<edit>improved logic is here</edit>I think that's the best of both worlds. It behaves like before for older GROMACS releases (before 2025) and takes the minimal-invasive route (avoiding to patch) when set to
Noneor.True