Gmx mdrun is too slow for my cpu

GROMACS version: gromacs-5.1.1
GROMACS modification: No
Hello all, I am Rosa Hawlader, a second year mechanical engineering student at York Univeristy. I am using GROMACS through my Ubuntu terminal to connect molecular dynamics simulations. Currently my simulations are very slow because my CPU can measure timings more accurately than y code in
gmx mdrun was configured to use. I am not aware of how to solve this problem and was given some insights by GROMACS. However, I am a very new user and not sure where to go from here. I have attached the warning to this post. Please let me know if any of you have similar problems you have overcome. Any help is appreciate

d.

Thank you for your time and consideration.

Best regards,
Rosa

Hello,

I checked the image and some things don’t match up.
You say that you are using 5.1.1 (that is severely outdated and I would
recommend against using it), but the image shows that you are
successfully reading a 2020.1 tpr file.
Please make sure what version you are using by checking the terminal
output, so that you are not doing something you didn’t want to.

I guess you are using the version that comes with the Ubuntu packages,
so I will just say that those versions are not intended to be used to
run efficient simulations.

You can get way better acceleration even on your desktop machine by
compiling GROMACS yourself for the architecture you are using it on.
The message you are seeing is just a reminder that your version is not
optimal for your hardware in the end.

Cheers

Paul

Hello Paul,

Thank you for your reply. I have attached a picture of my terminal to this post and as you can see I have gromacs-5.1.1. As for why this is able to read a 2020.1 tpr file, I am not sure as I am very new to GROMACS.

The version information indicates it is a prepackaged binary from the Ubuntu package manager. So you probably installed and used that when you ran GROMACS, which also explains why it is not optimally compiled. It is a generic binary with SSE2 optimization but would run much faster if you actually natively compiled the code on your machine, which supports AVX2_256 SIMD instructions.

I will echo what Paul said - don’t use antiquated (5.1.1) software. If you want better performance, remove the generic Ubuntu version and compile 2020.1 from source.

Thank you for your replies Jale and Paul. I have taken your advice and am trying to install the latest version of Gromacs onto my Ubuntu terminal. However, I am running into some problems. I have attached the picture of the error and a picture of the version of Gromacs that is currently installed in my Ubuntu terminal. Any help is appreciated. Please let me know if you are aware of how to solve this problem.

Your build directory is not a sub directory of the GROMACS source. You have to build from within the source tree.

(My name is Justin by the way :)

Dear Justin,

Thank you for all of your help. I was able to find the build sub directory in gromacs-5.1.1. However, I have made an error during my installation process. My command lines that I have used to update gromacs:

mkdir build
cd build
cmake … -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_GPU=ON -DCMAKE_INSTALL_PREFIX=/opt/gromacs-2020.1/
make check -j
sudo make install

As you can see in the command line I have gmx_gpu = on which I should not have done as I do not have compatible graphics card with cuda installed. Any idea on how I can reverse this process? Any help is appreciated. Thank you for your time.

Best regards,
Rosa

Dear Rosa,

You can change the flag to -DGMX_GPU=OFF and rerun the commands.

A couple of additional comments:

  • In your command list I dont see make, which is part of the usual make; make check; make install trinity. To be honest I dont know how that might have worked haha.

  • The -j parameter of make is used to set the number of jobs tu launch to use for compiling. As the make man page states, if you do not state any number (usually the number of physical cores is a good place to start), there is no limit. It might run, but depending of your hardware configuration it might crash, or it might be slower than with a limited -j parameter.

  • You probably have done so, but just in case, the GROMACS installation guide has a lot of information and useful tips. (as well as examples that I copied to get my gromacs compilation running)

I hope this was helpful
Kind regards

Dear Mikel,

Thank you for your advice. It is greatly appreciated. It seems that I am running into a lot of problems with updating my Gromacs version. I have taken your advice and decided to rerun the command line, except with this time -DGMX_GPU=OFF. However, I am getting an error with the update accessing the CUDA and LibXml2 libraries and directory. I have attached a picture of the error to this post. Please let me know if you are aware of how to solve this problem.

Thank you for your time and understanding.

Best regards,
Rosa

I am happy to help, I have spent my fair amount of time trying to solve similar issues, and it can be agonizing at the beginning :)

From what I see in the picture, you did not run -DGMX_GPU=OFF, you just ommited it. I am guessing that either by default or because it detects your GPU, cmake is trying to use a default -DGMX_GPU=ON setting, but because you dont have CUDA installed it raises an error. CUDA is basically a set of tools that allows programs to use your GPU to compute things. It can result in quite a speed-up in some applications, such as MD.

Also, I see that you are still using the 5.1.1 version of GROMACS despite Justin and Paul’s advice. You really should not do that, it is less efficient than newer versions, and it probably is not supported (some errors that you might have have been corrected in newer versions).

Download the newest GROMACS source

and run these commands in the same directory as your downloaded file

tar xfz gromacs-2020.2.tgz
cd gromacs-2020.2
mkdir build-gromacs
cd build-gromacs
cmake .. -DGMX_GPU=OFF -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DCMAKE_INSTALL_PREFIX=/opt/gromacs-2020.1/

make -j 4
make check -j 4
make install 

OR if the last command complains about permissions,

sudo make install

One last thing, if you run into trouble and want to start again, it is best to delete the whole folder and start from the tar xfz command. It might be overkill, but that way you make sure that there are no files that have been changed by you or your configuration process.

Let us know how it goes

Dear Mikel,

Thank you very much for your help. I was able to install gromacs-2020.2 in my Ubuntu terminal.
I did have to make some changed to the tar xfz line. I had to change it to tar xvzf groamcs-2020.2.tar.gz

Again, thank you for all of your help.

Best regards,
Rosa