Basic usage of MDBenchmark

Usage of MDBenchmark can be broken down into four points:

  1. generate
  2. submit
  3. analyze
  4. plot

We first generate benchmarks from an input file, e.g., .tpr in GROMACS. Afterwards we submit all generated benchmarks to the queuing system of your HPC. Finally, we analyze the performance of each run and generate a plot for easier readability.

MDBenchmark currently supports two MD engines: GROMACS and NAMD. Extensions for AMBER and LAMMPS is planned and help is appreciated. In the following, we will describe the usage of the supported MD engines.


Assuming your TPR file is called protein.tpr and you want to run benchmarks with the module gromacs/2018.3, run the following command:

mdbenchmark generate --name protein --module gromacs/2018.3

To run benchmarks on GPUs simply add the --gpu flag:

mdbenchmark generate --name protein --module gromacs/2018.3 --gpu

You can also create benchmarks for different versions of GROMACS:

mdbenchmark generate --name protein --module gromacs/2018.3 --module gromacs/2016.4 --gpu



NAMD support is experimental. If you encounter any problems or bugs, we
would appreciate to hear from you.

Generating benchmarks for NAMD follows a similar process to GROMACS. Assuming the NAMD configuration file is called protein.namd, you will also need the corresponding protein.pdb and protein.psf inside the same folder.


Please be aware that all paths given in the protein.namd file must be absolute paths. This ensures that MDBenchmark does not destroy paths when copying files around during benchmark generation.

In analogy to the GROMACS setup, you can execute the following command to generate benchmarks for a module named namd/2.12:

mdbenchmark generate --name protein --module namd/2.12

To run benchmarks on GPUs add the --gpu flag:

mdbenchmark generate --name protein --module namd/2.12-gpu --gpu

Be aware that you will need to use different NAMD modules when generating and running GPU and non-GPU benchmarks! To work with GPUs, NAMD needs to be compiled separately and will be probably named differently on the host of your choice. Using the --gpu option on non-GPU builds of NAMD may lead to poorer performance and erroneous results.

Usage with multiple modules

You can use this feature to compare multiple versions of one MD engine or different MD engines with each other. Note that the base name for the GROMACS and NAMD files (see above) must to be the same, e.g., protein.tpr and protein.namd:

mdbenchmark generate --name protein --module namd/2.12 --module gromacs/2018.3

Steps after benchmark generation

After you have generated your benchmarks, you can submit them to your queuing system:

mdbenchmark submit

When benchmarks have finished, you can retrieve the performance results:

mdbenchmark analyze

Finally, you can plot your benchmarks. For this you need to save your performance results to a CSV file via mdbenchmark analyze --save-csv results.csv and invoke the plot command on this file:

mdbenchmark plot --csv results.csv