The easy win

Move the non-bonded workonto the card

Most of a step is short-range non-bonded forces. Hand those to a GPU and the same run finishes several times sooner.

Non-bonded pairs

The largest slice of every step, and the part that maps most naturally onto a GPU.

PME on the grid

The long-range half of electrostatics, now able to run on the card rather than beside it.

Bonded terms stay

Bonds, angles and constraints are cheap, so the CPU keeps them and overlaps with the card.

The bottleneck

PME wasthe ceiling

Long-range electrostatics used to sit on one GPU no matter how many you had. That is what capped multi-GPU scaling.

Particle Mesh Ewald splits electrostatics into a short-range part, which decomposes cleanly across ranks, and a long-range part computed on a grid with FFTs. The FFT is global — every rank needs data from every other — so for years it stayed on a single GPU while the rest of the step spread out. Add more cards and that one grew into the whole runtime.

Recent GROMACS releases decompose PME across GPUs as well, with distributed FFTs and direct card-to-card communication instead of a round trip through host memory. On large systems across many nodes that is the difference between scaling stopping at a handful of GPUs and continuing well past it.

In practice

Where the gainactually lands

Multi-node PME decomposition matters at a scale most runs never reach. Knowing which side of that line you are on saves money.

Under 100k atomsOne GPU is almost always enough. Extra cards spend their time waiting on communication.
A few hundred thousandA second card can help if the run is long enough that the launch overhead disappears into it.
Millions of atomsThis is where distributed PME earns its keep, and where a single rented machine stops being the tool.
Renting it

One machineis usually the answer

We hand you a single machine, not a cluster. For the overwhelming majority of systems that is the right shape anyway.

2025.2GROMACS hereMPI and CUDA compiled in
4 · 32What it askscores and GB, plus an NVIDIA card
By the hourPaidstopped the moment the run ends

A protein in water — a hundred thousand atoms, give or take — saturates one good GPU long before it needs a second. The honest advice is to fill one card first: check that mdrun reports the GPU busy rather than waiting on the CPU, and only then think about more hardware.

On a machine

GROMACS isalready built

Nothing here needs compiling. Pick a machine, and these two commands put it on there.

hub://gromacs

$ dxflow workflow create --identity gromacs hub://gromacs

$ dxflow workflow start gromacs

Read it, then run itPrepaid and by the hour, on a machine that is yours about a minute after you ask.