Gromacs on Ubuntu 24.04.10 LTS

GROMACS version: 2021.5
GROMACS modification: No
Hi there!
I’m having trouble installing GROMACS on the LTS version of Ubuntu 24. It seems the issue might be related to CUDA drivers and the compatible compilers, GCC and G++.
I’ll provide my system configuration and the errors displayed below:

nvidia-smi

Fri Nov 8 17:50:09 2024
±----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.03 Driver Version: 560.35.03 CUDA Version: 12.6 |
|-----------------------------------------±-----------------------±---------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3080 Ti Off | 00000000:01:00.0 On | N/A |
| 32% 47C P8 37W / 350W | 378MiB / 12288MiB | 0% Default |
| | | N/A |
±----------------------------------------±-----------------------±---------------------+

±----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 2336 G /usr/lib/xorg/Xorg 124MiB |
| 0 N/A N/A 2623 G /usr/bin/gnome-shell 25MiB |
| 0 N/A N/A 3425 G …irefox/4793/usr/lib/firefox/firefox 0MiB |
| 0 N/A N/A 4530 G /usr/bin/nautilus 17MiB |
| 0 N/A N/A 44973 G nvidia-settings 0MiB |
±----------------------------------------------------------------------------------------+

For the installation commands I added one flag for a previous error at the 27% of the "Building CXX object " but it stopped at 71% this time.

cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=CUDA -DGMX_CUDA_TARGET_SM=86

[ 69%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/correlationfunctions/crosscorr.cpp.o
[ 69%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/correlationfunctions/expfit.cpp.o
[ 69%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/correlationfunctions/gmx_lmcurve.cpp.o
[ 69%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/correlationfunctions/integrate.cpp.o
[ 71%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/correlationfunctions/manyautocorrelation.cpp.o
[ 71%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/correlationfunctions/polynomials.cpp.o
[ 71%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/statistics/statistics.cpp.o
[ 71%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/analysisdata/abstractdata.cpp.o
[ 71%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/analysisdata/analysisdata.cpp.o
[ 71%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/analysisdata/arraydata.cpp.o
[ 71%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/analysisdata/dataframe.cpp.o
In file included from /home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/analysisdata/dataframe.h:49,
from /home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/analysisdata/dataframe.cpp:44:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:126:5: error: ‘uint64_t’ does not name a type
126 | uint64_t flags_;
| ^~~~~~~~
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:1:1: note: ‘uint64_t’ is defined in header ‘’; did you forget to ‘#include ’?
+++ |+#include
1 | /*
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In constructor ‘gmx::FlagsTemplate::FlagsTemplate()’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:73:23: error: class ‘gmx::FlagsTemplate’ does not have any field named ‘flags_’
73 | FlagsTemplate() : flags_(0) {}
| ^~~~~~
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In constructor ‘gmx::FlagsTemplate::FlagsTemplate(FlagType)’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:75:36: error: class ‘gmx::FlagsTemplate’ does not have any field named ‘flags_’
75 | FlagsTemplate(FlagType flag) : flags_(flag) {}
| ^~~~~~
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In member function ‘bool gmx::FlagsTemplate::test(FlagType) const’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:83:46: error: ‘flags_’ was not declared in this scope; did you mean ‘flag’?
83 | bool test(FlagType flag) const { return (flags_ & flag) != 0; }
| ^~~~~~
| flag
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In member function ‘void gmx::FlagsTemplate::clearAll()’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:85:23: error: ‘flags_’ was not declared in this scope
85 | void clearAll() { flags_ = 0; }
| ^~~~~~
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In member function ‘void gmx::FlagsTemplate::set(FlagType)’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:87:31: error: ‘flags_’ was not declared in this scope; did you mean ‘flag’?
87 | void set(FlagType flag) { flags_ |= flag; }
| ^~~~~~
| flag
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In member function ‘void gmx::FlagsTemplate::clear(FlagType)’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:89:33: error: ‘flags_’ was not declared in this scope; did you mean ‘flag’?
89 | void clear(FlagType flag) { flags_ &= ~flag; }
| ^~~~~~
| flag
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In member function ‘gmx::FlagsTemplate gmx::FlagsTemplate::operator|(const gmx::FlagsTemplate&) const’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:106:40: error: ‘flags_’ was not declared in this scope
106 | return FlagsTemplate(flags_ | other.flags_);
| ^~~~~~
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In member function ‘gmx::FlagsTemplate& gmx::FlagsTemplate::operator|=(const gmx::FlagsTemplate&)’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:111:9: error: ‘flags_’ was not declared in this scope
111 | flags_ |= other.flags_;
| ^~~~~~
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In member function ‘gmx::FlagsTemplate gmx::FlagsTemplate::operator&(const gmx::FlagsTemplate&) const’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:117:40: error: ‘flags_’ was not declared in this scope
117 | return FlagsTemplate(flags_ & other.flags_);
| ^~~~~~
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In member function ‘gmx::FlagsTemplate gmx::FlagsTemplate::operator~() const’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:120:81: error: ‘flags_’ was not declared in this scope
120 | FlagsTemplate operator~() const { return FlagsTemplate(~flags_); }
| ^~~~~~
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h: In constructor ‘gmx::FlagsTemplate::FlagsTemplate(long unsigned int)’:
/home/masisrodriguez/Downloads/gromacs-2021.5/src/gromacs/utility/flags.h:124:51: error: class ‘gmx::FlagsTemplate’ does not have any field named ‘flags_’
124 | explicit FlagsTemplate(unsigned long flags) : flags_(flags) {}
| ^~~~~~
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/build.make:7195: src/gromacs/CMakeFiles/libgromacs.dir/analysisdata/dataframe.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:4433: src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

I would be really grateful if someone can lend me a hand!!
Thanks!!

Marcos

Hi!

A related question was answered in another threads: New Intel icx and icpx compilers | use of undeclared identifier 'getenv' - #4 by al42and

You should modify src/gromacs/utility/flags.h by adding a new line containing #include <cstdint> at the top of the file, between #define GMX_UTILITY_FLAGS_H and namespace gmx.

Better yet, use newer GROMACS which has this issue fixed, like 2024.4. The 2021.x series is not supported, and newer versions have better performance and less bugs.

1 Like

Thanks a lot Andrey!! I will try this adjustment and suggest we all move to the version of GROMACS you mentioned!!