problems across gromacs versions 2023-2025

78 views
Skip to first unread message

jamesm...@gmail.com

unread,
Apr 9, 2025, 1:06:41 PMApr 9
to PLUMED users
I am trying to use any plumed with any gromacs for multi walker metadynamics over MPI with multidir and have been having problems since our systems were updated to Alma 9. 

I am using openmpi 2.0.1 and was initially using gcc 9.1 but am now using gcc 11.4.1 in case that helps.

I have tried plumed 2.9.1 with gromacs 2023. plumed 2.9.3 with gromacs 2024.3 and plumed 2.5.7 with gromacs 2018.8, and they are all giving me the following error with copies for the different MPI ranks

Program:     gmx mdrun, version 2023-plumed_2.9.1
Source file: src/gromacs/mdrun/legacymdrunoptions.cpp (line 177)
MPI rank:    0 (out of 4)

Fatal error:
Plumed is not available. Check your PLUMED_KERNEL variable.

My PLUMED_KERNEL variable is fine, so that's not the problem and I am able to run plumed commands like sum_hills without any problems. 

$ echo $PLUMED_KERNEL
/lmb/home/jkrieger/bin/plumed-2.9.1-install_openmpi2_gcc9/lib/libplumedKernel.so
$ ldd $PLUMED_KERNEL
        linux-vdso.so.1 (0x00007ffed6961000)
        libstdc++.so.6 => /public/gcc/9_1_0/lib64/libstdc++.so.6 (0x00007f9fb2a1d000)
        libfftw3.so.3 => /lib64/libfftw3.so.3 (0x00007f9fb2617000)
        libgsl.so.23 => /lib64/libgsl.so.23 (0x00007f9fb2186000)
        libgslcblas.so.0 => /lib64/libgslcblas.so.0 (0x00007f9fb1f47000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f9fb1d2f000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f9fb1b2b000)
        liblapack.so.3 => /lib64/liblapack.so.3 (0x00007f9fb128a000)
        libblas.so.3 => /lib64/libblas.so.3 (0x00007f9fb1036000)
        libmpi.so.20 => /public/EM/OpenMPI/openmpi-2.0.1/build/lib/libmpi.so.20 (0x00007f9fb0d57000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f9fb09d5000)
        libgomp.so.1 => /public/gcc/9_1_0/lib64/libgomp.so.1 (0x00007f9fb079f000)
        libgcc_s.so.1 => /public/gcc/9_1_0/lib64/libgcc_s.so.1 (0x00007f9fb0587000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9fb0367000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f9faff91000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f9fb392d000)
        libgfortran.so.5 => /public/gcc/9_1_0/lib64/libgfortran.so.5 (0x00007f9fafb06000)
        libopen-rte.so.20 => /net/nfs1/public/EM/OpenMPI/openmpi-2.0.1/build/lib/libopen-rte.so.20 (0x00007f9faf887000)
        libopen-pal.so.20 => /net/nfs1/public/EM/OpenMPI/openmpi-2.0.1/build/lib/libopen-pal.so.20 (0x00007f9faf5a1000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f9faf399000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f9faf195000)
        libquadmath.so.0 => /public/gcc/9_1_0/lib/../lib64/libquadmath.so.0 (0x00007f9faef4f000)

When I run gromacs without the -plumed plumed.dat, that's also fine.

I saw there was a problem with recent gromacs versions with plumed that seems to be fixed in the 2025 release branch on gitlab (https://gitlab.com/gromacs/gromacs/-/merge_requests/4966), so I also tried using that and I am then having problems patching and compiling gromacs after patching. I think plumed 2.9.3 doesn't actually work with gromacs 2025, which isn't that surprising. I was seeing things with the make breaking because of undefined variables, such as the error handling variable being changes in the domain decomp check for whether certain methods were compatible with the GPU. 

I am now trying the plumed2 master from github, but I would appreciate if anyone has any advice.

Many thanks
James



jamesm...@gmail.com

unread,
Apr 9, 2025, 1:19:38 PMApr 9
to PLUMED users
ok, I couldn't install the plumed2 master because of a problem with cython

plumed_force_cython=yes
importing cython
Compiling plumed.pyx because it changed.
[1/1] Cythonizing plumed.pyx

Error compiling Cython file:
------------------------------------------------------------
...
         safe.flags=flags
         cplumed.plumed_error_init(&error)
         nothrow.ptr=&error
         nothrow.handler=cplumed.plumed_error_set
         # see https://github.com/plumed/plumed2/pull/1129#issuecomment-2410867829
         with cython.nogil():
                   ^
------------------------------------------------------------

plumed.pyx:190:20: The nogil directive takes one compile-time boolean argument
Traceback (most recent call last):
  File "setup.py", line 133, in <module>
    ext_modules=cythonize(ext_modules,language_level=3)
  File "/lmb/home/jkrieger/anaconda3/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1102, in cythonize
    cythonize_one(*args)
  File "/lmb/home/jkrieger/anaconda3/lib/python3.8/site-packages/Cython/Build/Dependencies.py", line 1225, in cythonize_one
    raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: plumed.pyx
make[1]: *** [Makefile:16: all] Error 1
make[1]: Leaving directory '/lmb/home/jkrieger/bin/plumed2-master-src-and-build/python'
make: *** [Makefile:23: all] Error 2

jamesm...@gmail.com

unread,
Apr 9, 2025, 1:31:18 PMApr 9
to PLUMED users
I have added a pull request https://github.com/plumed/plumed2/pull/1241 that seems to fix the cython issue, and my plumed master installation has now succeeded.

James Krieger

unread,
Apr 9, 2025, 1:58:54 PMApr 9
to plumed...@googlegroups.com
ok, I managed to install gromacs 2025 release from gitlab patched with plumed2-master from github (with my cython nogil fix), and I still get the same error.

Any help would be greatly appreciated!

Many thanks and best regards
James

--
You received this message because you are subscribed to a topic in the Google Groups "PLUMED users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/plumed-users/UeDJMURJFvs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to plumed-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/plumed-users/008a0b81-790f-496b-a7f5-10ff2a478709n%40googlegroups.com.

Giovanni Bussi

unread,
Apr 9, 2025, 3:38:33 PMApr 9
to plumed...@googlegroups.com
When you install plumed there should be a file called $prefix/lib/plumed/plumed-runtime ($prefix is where you installed it).

This executable should mimic what GROMACS does when loading PLUMED, in the sense that if you do

PLUMED_KERNEL=/set/proper/path.so
plumed-runtime --help

It will load plumed and work.

Can you double check if this fails as well? This would be a way to reproduce the problem with only PLUMED.

Thanks

Giovanni

--
You received this message because you are subscribed to the Google Groups "PLUMED users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to plumed-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/plumed-users/69facb1c-3348-469f-b141-820d2a2f18efn%40googlegroups.com.

James Krieger

unread,
Apr 10, 2025, 4:23:31 AMApr 10
to plumed...@googlegroups.com
Thanks Giovanni,

This works fine unfortunately.

Best wishes
James

(base) [jkrieger@fmg49 ~]$ ~/bin/plumed2-master-install/lib/plumed/plumed-runtime --help
+++ Loading the PLUMED kernel runtime +++
+++ PLUMED_KERNEL="libplumedKernel.so" +++
Usage: plumed [options] [command] [command options]
  plumed [command] -h|--help: to print help for a specific command
Options:
  [help|-h|--help]          : to print this help
  [--is-installed]          : fails if plumed is not installed
  [--has-mpi]               : fails if plumed is running without MPI
  [--has-dlopen]            : fails if plumed is compiled without dlopen
  [--load LIB]              : loads a shared object (typically a plugin library)
  [--standalone-executable] : tells plumed not to look for commands implemented as scripts
Commands:
  plumed benchmark : run a calculation with a fixed trajectory to find bottlenecks in PLUMED
  plumed completion : dump a function usable for programmable completion
  plumed driver : analyze trajectories with plumed
  plumed driver-float : analyze trajectories with plumed (single precision version)
  plumed gen_example : construct an example for the manual that users can interact with
  plumed gen_json : print out a json file that contains the pluemd syntax
  plumed gentemplate : print out a template input for a particular action
  plumed info : provide informations about plumed
  plumed kt : print out the value of kT at a particular temperature
  plumed manual : print out a description of the keywords for an action in html
  plumed pdbrenumber : Modify atom numbers in a PDB, possibly using hybrid-36 coding
  plumed pesmd : Langevin dynamics on PLUMED energy landscape
  plumed plotswitch : (no description available)
  plumed show_graph : generate a graph showing how data flows through a PLUMED action set
  plumed simplemd : run lj code
  plumed sum_hills : sum the hills with  plumed
  plumed newcv : create a new collective variable from a template
  plumed config : inquire plumed about how it was configure
  plumed patch : patch an MD engine
  plumed partial_tempering : scale parameters in a gromacs topology to implement solute or partial tempering
  plumed mklib : compile one or more *.cpp files into a shared library
  plumed vim2html : convert plumed input file to colored html using vim syntax
  plumed selector : create lists of serial atom numbers

You received this message because you are subscribed to a topic in the Google Groups "PLUMED users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/plumed-users/UeDJMURJFvs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to plumed-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/plumed-users/CAPLm8ZKZ7De4-9cv1J85hTPFRbHrbxc%3D1EQvfh1r_v01puy%2BFA%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages